(一)
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
如果上述方法仍然无法解决问题,可以提供更多详细信息,例如错误消息或其他相关上下文,以便更好地诊断和解决问题。