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 就可以烧录了



posted @ 2015-02-27 17:08  小白屋  阅读(455)  评论(0编辑  收藏  举报