美文网首页Android Framework开发
Ubuntu repo sync Android 代码老是会断闪

Ubuntu repo sync Android 代码老是会断闪

作者: 为自己代颜_ | 来源:发表于2023-09-16 01:03 被阅读0次

    (一)
    1、问题描述
    在下载Android 的open source 的时候,repo sync 老是会断掉,然后我们又不能老是盯着它,导致下载Android代码的时间长,而且下得比较痛苦。
    那有没有办法让repo sync断掉的时候再自己repo sync呢?当然有办法了,写个简单的shell脚本就可以ko它了。
    2、脚本
    脚本内容如下:

    #!/bin/bash   
    #FileName  repo_sync.sh  
    PATH=~/bin:$PATH   
    repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.1_r28
    repo sync   
    while [ $? = 1 ]; do   
    echo "================sync failed, re-sync again ====="   
    sleep 3   
    repo sync   
    done
    ``
    
    然后添加可执行权限并执行:
    
    命令行创建文件:sudo mkdir  repo_sync.sh  
    sudo  vi  repo_sync
    将脚本内容复制到打开的repo_sync
    shift+I 回车 copy内容 然后esc 然后:wq! 然后回车即可保存
    之后执行以下命令:
    

    chmod 777 repo_sync
    ./repo_sync

    然后就开始自动同步repo sync了
    
    报错信息整理:
    1:curl: (6) Couldn't resolve host 'xxxx'报错问题解决
    
    修改或添加dns(dns服务器地址可网上查询)
    
    

    vi /etc/resolv.conf

    nameserver 114.114.114.114
    nameserver 223.5.5.5

    (二)
    如果依旧还是下载不了,则另一种实现方案:
    命令行使用wget下载wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar 如果报错403 错误代码表示您在该网页上“未被授权”。
    由于您还没有提到有关身份验证的任何内容,因此我假设服务器上没有身份验证,请检查是否有一个。
    
    另一个问题可能是由于旧服务器上的某些过滤/防火墙“阻止”了您的请求。
    
    如果您的请求在浏览器中有效并且在wget或curl上失败,请尝试使用用户代理
    

    wget --user-agent="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12" -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar

    (三) 代码同步更新
    
     我们将aosp-latest.tar放到大小写敏感的文件系统中,使用tar命令进行解压
    
    tar xf aosp-latest.tar
    
    cd AOSP
    可以获得一个AOSP目录,里面包含一个隐藏的.repo目录,我们需要将镜像站的地址更新到里面的配置文件中。打开.repo/manifest.xml,找到里面的
    
    <remote name="aosp"
    
           fetch="https://android.googlesource.com"
    
           review="android-review.googlesource.com"/>
    将   fetch="https://android.googlesource.com" 改成 fetch="https://aosp.tuna.tsinghua.edu.cn"
    
    另外,打开.repo/manifests.git/config,将url = https://android.googlesource.com/platform/manifest 修改为url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest。
    
    做完这些之后,我们将Terminal定位到AOSP目录,输入
    
    repo sync
    注意:使用清华镜像的需要注意的是,因为我们有修改manifest文件,而.repo整个文件也是通过git进行管理的,所以首次sync会提示文件没有commit,所以需要先到.repo目录下执行git 的 add、commit操作。
    
    sync操作需要一个漫长到等待过程,成功后就可以在AOSP目录看到最新的源码资源。
    
    使用Repo一个比较好的地方是,即使更新中途断网了也没关系,因为其有记忆功能,重新输入该命令,会跳过已经更新的资源。
    详细链接可参考:https://www.jianshu.com/p/19aa1afeee10?utm_campaign=maleskine
    (四)
    问题:如果在命令行执行 tar xf aosp-latest.tar 没有任何反应,可能有几个原因导致这种情况。以下是一些可能的解决方法和排除故障步骤:
    
    文件不存在或路径错误:首先确保 aosp-latest.tar 文件位于你执行命令的当前工作目录下,或者提供正确的文件路径。你可以使用 ls 命令检查当前目录中是否存在该文件。
    
    bash
    Copy code
    ls aosp-latest.tar
    如果文件不在当前目录,你需要提供正确的路径或切换到包含文件的目录。
    
    权限问题:确保你有读取该文件的权限。你可以使用 ls -l 命令来查看文件的权限。
    
    ls -l aosp-latest.tar
    如果你没有读取权限,你可以使用 chmod 命令来添加适当的权限:
    
    chmod +r aosp-latest.tar
    文件损坏:如果 aosp-latest.tar 文件已损坏或不完整,解压缩操作可能会失败而不显示错误消息。你可以尝试重新下载文件或从其他来源获取它。
    
    磁盘空间:确保你的磁盘有足够的可用空间来解压缩文件。使用 df -h 命令来检查磁盘使用情况。
    
    解压选项:你可以尝试添加 -v 选项来在解压缩时显示详细信息,以便查看解压缩进程是否在进行中。
    
    tar xvf aosp-latest.tar
    如果上述方法仍然无法解决问题,可以提供更多详细信息,例如错误消息或其他相关上下文,以便更好地诊断和解决问题。
    

    相关文章

      网友评论

        本文标题:Ubuntu repo sync Android 代码老是会断闪

        本文链接:https://www.haomeiwen.com/subject/whmbvdtx.html