code -结合实例总结代码下拉流程
1.查看手机需要的版本
1)如果手机本来就可以正常工作,可以使用指令
zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note/plan$ adb shell getrepo | grep flavor
这个可以看到手机需要的详细版本名称
2)如果手机不能够连接电脑,这时候只能根据你的手机信息(问题概述的代码)到仓库中寻中看起来像的版本了
这时候你首先需要知道你手机的代码平台,然后通过指令
zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note/plan$ repo init -u ssh://vanzo/platform_92/manifest.git -m tphone.xml
就可以在当前目录下生成.repo目录,然后执行如下操作,就可以看到platform_92平台下的所有代码了
zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note/plan$ ll;cd .repo;cd manifests;ls
接下来你只需要从里面找到跟你手机平台信息相一致的项目就行了
解释下repo init -u ssh://vanzo/platform_92/manifest.git -m tphone.xml的意义
repo init -u :这个是初始化仓库操作
ssh://vanzo/platform_92/manifest.git:这个应该是服务器地址,其中platform_92是平台信息,你可以通过下面的命令来查看仓库下所有平台
zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note/plan$ ssh vanzo gerrit ls-projects
当我们修改redmine上的问题的时候,我们往往能通过那个问题概述看到关于手机项目的模糊信息(项目名并不是严格正确的,大小写有时候会错论)。这时候我们知道的也就是平台信息(95,92等)
我们就可以通过上面的命令,查看所有平台信息,然后从这个平台下,查找相符的项目名。
-m tphone.xml:这个是下拉项目的信息,当然后面也可以直接跟项目名的,如下
zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note$ repo init -u ssh://vanzo/platform_82/manifest.git -m mt92_s9_c065_pulid_wcdma_jb9_ldata.xml Getting repo ... from ssh://vanzo/tools/repo.git remote: Counting objects: 1194, done remote: Finding sources: 100% (1201/1201) remote: Total 1201 (delta 804), reused 1201 (delta 804) Receiving objects: 100% (1201/1201), 329.93 KiB, done. Resolving deltas: 100% (804/804), done. From ssh://vanzo/tools/repo * [new branch] maint -> origin/maint * [new branch] master -> origin/master * [new branch] stable -> origin/stable * [new tag] v1.7.4.2 -> v1.7.4.2 From ssh://vanzo/tools/repo * [new tag] v1.7 -> v1.7 * [new tag] v1.7.1 -> v1.7.1 * [new tag] v1.7.2 -> v1.7.2 * [new tag] v1.7.3 -> v1.7.3 * [new tag] v1.7.3.1 -> v1.7.3.1 * [new tag] v1.7.4 -> v1.7.4 * [new tag] v1.7.4.1 -> v1.7.4.1 Getting manifest ... from ssh://vanzo/platform_82/manifest.git remote: Counting objects: 1424, done remote: Finding sources: 100% (1424/1424) remote: Total 1424 (delta 721), reused 1424 (delta 721) Receiving objects: 100% (1424/1424), 171.71 KiB, done. Resolving deltas: 100% (721/721), done. From ssh://vanzo/platform_82/manifest * [new branch] master -> origin/master fatal: manifest 'mt92_s9_c065_pulid_wcdma_jb9_ldata.xml' not available fatal: manifest mt92_s9_c065_pulid_wcdma_jb9_ldata.xml not found
你会发现提示错误,这是因为,我的mt92_s9_c065_pulid_wcdma_jb9_ldata.xml 项目实在92平台下的,82下并没有。把platform-82 换成platfrom_92就可以了
2.下拉代码 repo sync -j32
既然已经知道了手机的具体项目名称,你可以使用
repo init -u ssh://vanzo/platform_82/manifest.git -m mt92_s9_c065_pulid_wcdma_jb9_ldata.xml
建立.repo仓库以后直接下拉代码,repo sync -j32就行了
如果你是使用的
repo init -u ssh://vanzo/platform_82/manifest.git -m tphone.xml
你还需要进行如下两个操作
zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note/plan/.repo$ ln -sf manifests/mt92_s9_g7_ousheng_wcdma_jb9_cphone.xml manifest.xml zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note/plan/.repo/manifests$ ln -sf tphone.xml mt92_s9_g7_ousheng_wcdma_jb9_cphone.xml
这两个操作就是分别更改下拉项目的名称跟下拉项目的类型,这两个信息决定了repo sync的时候,从仓库下拉的具体内容,因为不同版本肯定是有差异的,下拉的时候,肯定是选择性的拉
3.准备编译的工具
zhangshuli@zhangshuli-MS-7817:~/Desktop/day_note/plan/.repo$ cp /home/zhangshuli/build_projects/prebuilt/prebuilt-44 ./prebuilts -a;cp /home/zhangshuli/build_projects/scripts/update_overlay_files.py build/toos
4.正式编译
./makeMtk listp
./makeMtk vanzo6752_lwt_kk new
这样就成功的编译了一个项目
5.烧录
打开烧录工具
zhangshuli@zhangshuli-MS-7817:~/Desktop/SP_Flash_Tool_exe_Linux_v5.1452.00.100$ cd /home/zhangshuli/Desktop/SP_Flash_Tool_exe_Linux_v5.1452.00.100/;./flash_tool
然后选择 out/target/product/vanzo6752_lwt_kk/MT6752_Android_scatter.txt 就可以烧录了