reposync脚本
Ⅰ 如何编译android sdk
如果没有真正开发板,又想深入到android framework里,或kernel里的话,就只能用android 的emulator了。 但是我们下载的android SDK没有源代码,我们没办法跟踪修改framework和kernel里的东西。
所以有了想尝试自己从头生成SDK的想法。
1. 首先下载编译android所有source code.
具体步骤这里不再赘述,参考ht tp:/ /source.and roid.c om/download
cd mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync
一点小提示: 有时候google的android服务器老是断,总不能让我们守在电脑旁边一直手工重新repo sync吧,这可是需要N个小时才能下载完的啊。
我们就写个小脚本让电脑自动repo sync,直到下载成功为止:
#!/bin/sh
count=0
ret=1
while [ $ret -ne 0 ]
do
repo sync
ret=$?
count=$(( $count + 1))
echo "try $count, ret: $ret"
done
echo "try $count, ret: $ret"
把上面的内容复制到一个文件里tryrepo.sh
然后修改tryrepo.sh的属性,开始自动工作吧。第二点早上应该就大功告成了
chmod a+x tryrepo.sh
./tryrepo.sh
2. 编译android, 生成SDK
make sdk
漫长的等待之后,SDK生成了,在目录:mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\
在linux下面可以直接运行mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\tools\android 就可以看到熟悉的android emulator启动界面。
如果想在windows XP下使用这个SDK和emulator, 最简单的方法是:
(1)自己下载一个最新的windows版本的android 2.0 SDK。
(2)把mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\下的东西复制到windows版SDK的platforms下。
(3) 然后把platforms下android-2.0下tools目录下的几个.exe文件复制到自己编译的SDK目录下的tools目录下。
Ⅱ repo网络意思是
网络意思是:报告。
repo这个词语就是report的意思,中文含义就是报告,前面可以写上某位明星的名字、节目的名字等等,就是关于某位艺人或者是节目的报告。主要指代的就是参与了某档节目的现场录制、观看了某场演唱会、观看了某场舞台剧音乐剧之后对于节目的介绍。
(2)reposync脚本扩展阅读:
一般来说会做repo报告的人都是粉丝,通过这样的信息介绍自己的偶像,也会起到对于偶像的一个推广宣传的作用。相当于对于节目还是比较的详细的介绍,比如说节目的流程、观看之后的心得体会、节目中出现的状况和人物等等,有时候还会通过透露一些图片帮助讲述repo的内容,让更多的粉丝们更快了解到偶像的动态。
Ⅲ 为什么repo sync下来的代码处于no branch的状态
不了解你之前做过什么操作,本地是否有未提交到服务器的代码。因此,下面的说法仅供参考。 感觉你们组长说反了。 git fetch是指更新本地的远程分支 如果远程分支确实有更新,且本地有未提交到服务器的提交,再执行git rebase ,这样本地的提交就会更新到新的base上,再提交到服务器时不会因为base不同而报错。 repo sync实际是执行了两个操作,先git fetch,再基于最新base checkout出代码,也就更新了本地分支。 一般情况下,我们是建议研发直接repo sync 。不过,实际研发会碰到什么问题,比如因为woring tree不干净导致同步失败一类的,就不是特别清楚了。还是要具体情况具体分析。
Ⅳ 自己可以编译安卓源码吗
用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:
sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”
其中[email protected]为你自己的邮箱.
简要说明
android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.
源码下载
由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)
repo工具下载及安装
通过执行以下命令实现repo工具的下载和安装
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:
我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:
这里写图片描述
执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.
错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:
通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)
如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.
结束吧
到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.
Ⅳ 下载android源码卡住了,怎么办我都repo sync好几次了,每次都卡在了这里。
没办法,只能 ctrl+c 或者ctrl+z 中断重新 repo sync 一次,我也是这样。
还有 一个办法,我已经找到解决方法了,直接挂全局代理,在网络里设置代理,让代理全局化。然后在repo sync 一次成功。至于用什么,最理想的自然是goagent
Ⅵ 如何使用VirtualBox的安装Android 4.4奇巧在Windows
按照下面的方法开打终端命令行工具或者使用快捷键:Ctrl + Alt + T
应用程序-----附件----终端
这里先新建一个文件夹名称为 android4.4 ,用来保存Android下载源代码
在终端中输入并执行下面的命令来新建 android4.4 文件夹:
mkdir android4.4
之后用下面的命令进入到android4.4文件夹中
cd android4.4
之前小编有讲述过下载repo工具,当时小编是保存在终端工具打开的默认位置即宿主目录,为了方便使用repo工具,使用下面的命令将它到源码下载的目录中来:
cp /home/xyh666168/repo ./
或
cp ../repo ./
说明:
../ 表示上一级目录
./ 表示当前目录
下面的4、5、6步主要讲述初始化android源码,这个初始化简单的说就是:下载一些关于源代码的配置文件,之后按照这个配置文件来下载Android源代码
目前关于Android最新的分支代码是:android-4.4_r1
可以使用下面的命令来初始化最新android 源代码
./repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1
输入上面的命令后回车执行
因为各种网络方面的原因,可能执行上面点初始化命令会失败,提示一些类似网络连接失败的信息,那么不用理会,继续执行上面的初始化命令,若是很多次都都提示失败,那么可以做用以下方法来尝试:
1、使用命令:rm -rf * -R 删除android 4.4文件中的缓存文件,然后重新执行初始化命令
2、隔一段时间或者晚上特别是凌晨的时候下载初始化,一般这个时候网络环境容易下载Android 源代码
3、可能是宽带运行商对Android源代码下载网站都控制,尝试让它们打开,不行就考虑更换网络宽带或者换个不同的宽带下载
若是看到类似下面的信息,表示连接成功,正在初始化
根据网络的速度,初始化的时间也不同,正常网络情况下,2分钟之内就可以完成初始化,完成初始化后,可以看到如下面的提示信息:
repo has been initialized in ......
这个信息表示初始化成功,下面就可以开始同步下载源代码了
输入并执行下面的命令开始执行源代码的同步下载
./repo sync
同样,若是因为网络原因,下载过程自动中断,那么继续使用这个命令,直到源代码下载完
若是看到类似下面的信息不停的滚动或者一些数字闪烁,那么表示源代码正在下载,请耐心等待
下载的过程中,可能会看到类似红色方便标示的信息而发生中断,停止下载,那么可以继续使用./repo sync命令来下载,源代码的下载过程普通网络可能要数个甚至十几个小时,为了防止中断停止下载,那么最好使用一个自动恢复下载的脚本来下载源代码,请参考小编关于“Android 4.3源码的下载和编译环境的安装及编译”或者“Android 4.4 源码下载之下载环境准备”中介绍的方法
最后源码下载完后,提示信息如打红色方框所示,checking out files 表示从“临时文件”中导出源码
“临时文件” .repo14775M
“临时文件” .repo和导出的源码一共24335M(23G)
下载过程中若不知道下载了多少,可以在源码目录使用命令: -sh 或 -sm 来查看已经下载了多少,然后和小编这里的对比,这样就能够计算还需要多久可以下载完
其它一些事项说明:
1、在源代码下载过程中,在源代码下载目录看不到任何文件,打开“显示隐藏”,会看到一个名为.repo的文件夹,这个文件夹是用来保存Android源代码的“临时文件”
2、文件最后下载接近完成时,会从.repo文件夹中导出Android源代码
3、Android源代码下载完成后,可以看到Android源代码下载目录中会有
bionic、bootable、build、cts、dalvik......这些文件夹,这些就是Android源代码
4、若是必须关闭电脑停止下载,那么可以在源代码下载的终端中按Ctrl + C 或者 Ctrl + Z 停止源代码的下载,不会造成源代码的丢失或损坏
5、自动或者手动停止源代码的下载,可以使用命令: repo sync 继续下载
Ⅶ 如何从国内镜像获取android源代码
首先按帮助中的步骤下载repo工具:
[plain] view plain print?
curl https://storage-googleapis.lug.ustc.e.cn/git-repo-downloads/repo > ~/bin/repo
此时查看下载下来的repo文件可以发现其中的REPO_URL已经指向中科大镜像的地址,因此应该不需要修改:
[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
接下来运行如下命令初始化仓库
[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
发现没有反应,很长时间后应该是超时才退出,报错说无法访问https://gerrit-googlesource.lug.ustc.e.cn/git-repo/clone.bundle
把这个地址放到浏览器上尝试发现也是超时无法访问,最后好像还是指到google的官网去了,感觉应该是因为缺了什么东西,没仔细研究。
但我发现中科大镜像的Git-repo实际上是可以正常访问的,因此最后使用如下方法:
1. 使用git clone命令直接从中科大镜像下载repo工具:
[plain] view plain print?
git clone https://gerrit-googlesource.lug.ustc.e.cn/git-repo
git clone成功后可以在git-repo目录下看到repo以及其他相关的脚本。
修改PATH环境变量将git-repo目录加入PATH
2. 修改REPO_URL
此时查看git clone下来的repo文件可以发现其中的REPO_URL还是指向google官网的,因此需要修改该文件指向中科大镜像:
[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
3. 初始化仓库
修改完repo文件后再运行repo init命令初始化仓库就可以成功了:
[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
以后就可以使用repo sync命令同步源代码了,速度很快。
你试试看看
Ⅷ php执行sync命令时如何自动输入密码
使用脚本来实现执行repo sync命令时自动输入口令
_ync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。
_ync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。
_绻蝗ナ侄氖淙_ync命令来真正的去写磁盘,linux系统也会周期性的去sync数据。.
Ⅸ REPO是什么意思
1、repo指的是报告。一般是指fans参加现场节目录制,观看演唱会,舞台剧之后的对此的介绍。歌笑录制REPO就是这个同学参加了歌笑节目的录制,就是去现场观看了以后对节目流程的报告.可以包括心得.
2、REPO也指附条件买回协议,交易标的物卖方同意在某特定日期,以特定价格再买回其所卖出交易标的物的协议。卖方提供交易标的物给买方作担保,若卖方不履行协议,则买方持有此交易标的物。
repo协议主要是用于管理多个git项目,同一产品可能包含多个git项目,不同的git项目集合,可能形成不同产品,通过repo可以实现方便的管理。repo主要包含repo配置信息、以及repo所管理的git项目集合。
对于所有git管理的项目,例如mygitproject,其中mygitproject/.git是git目录(或git库);mygitproject/中除.git之外的内容为git工作目录,来自相应git目录中的某个版本。
对于所有repo管理的项目,例如myrepoproject,其中myrepoproject/.repo是repo目录(或repo库);myrepoproject/中除.repo之外的内容为repo工作目录,来自相应repo目录中的某个版本。
1、repo init:
作用是下载或更新好repo配置和脚本集(相当于对repo配置和repo脚本集进行git pull,但是它还额外做了更多的事情),repo配置和脚本本身又是由git管理的,repo配置指定使用哪些git项目,脚本是repo命令本身的实现。
2、repo sync
作用是下载当前repo配置的所有项目,并生成对应的repo工作目录。
(9)reposync脚本扩展阅读:
关于分支
以上描述,有几个分支的概念需要明确。
(1)repo分支:这里通过repo init -b,中的-b所指定的分支,是manifests的分支,不同分支,其中的文件清单内容有所不同。
(2)清单文件指定的分支:通过清单文件manifest.xml中的default实体的revision属性,指定版本库默认的分支为revision属性值,该属性值做为repo sync之后工作目录中所有git项目的公共起点分支。
也就是说,该manifest对应所有的git项目都有一个以revision属性值为名的分支,repo sync之后,在任意一个repo工作目录下的git库中。
使用git branch或者repo start创建的分支,都是基于该git库中revision属性值为名的分支来创建。我们可以将这个分支设置为和repo分支类似的名字。
(3)git分支:除了repo管理的用于repo配置的repo分支,和用于设置工作目录起点的清单文件分支,每个工作目录对应的git库,也可设置自己的工作分支,和平时使用git时的含义一样。
参考资料来源:网络-repo