版本编译
source build/envsetup.sh
lunch project_name
make -j4
make otapackage
不管用google原生脚本还是其他脚本,都要先编译完整版本,再编译otapackage,打包img的过程一定要在make otapackage 之后
差分包制作
./build/tools/releasetools/ota_from_target_files -i <A
包
> <B
包
> <
差分包名
>
编译过程分析参考:Android OTA 升级之一:编译升级包
真机测试
MTK工具:SN writer.exe
COM Port:
USB VCOM
Target Type:
Smart Phone
点击System Config
Write Option
选择IMEI
IMEI Option
根据IMEI号选择,Dual IMEI为两个IMEI号,如果是相同的则还要选择DUAL IMEI Same
DataBase File
MD1_DB
选择版本的BPLGUInfoCustomAppSrcP_MT6582_S00_MOLY_WR8_W1449_MD_WG_MP_V1_1_wg_n文件,以BP开头的文件
AP_DB
选择版本的APDB_MT6582_S01_L0.MP2_W15.03,以AP开头的文件
SAVE
START
输入IMEI号,15位
OK
手机保持关机,连接手机,手机会到META MODE模式
软件出现pass则表示烧写IMEI成功
以上为自己工作时烧写步骤
可以参考:http://jingyan.baidu.com/article/e6c8503c0677cee54f1a18f6.html
遇到的问题
初步认为是由ota包中fat分区地址与手机端fat分区地址不匹配
查看ota包中fat分区地址为1311c0000
手机版本scatter中fat的linear_start_addr也为1311c0000
这个问题是由于mtk的一个宏控制的
CONFIG_MTK_SHARED_SDCARD=n
这样就不会出现上述问题
但在这个问题解决之后又出现另一问题
直接提示update.zip is not correct
查看log:显示无法挂载/data,导致abort
god,这TM怎么回事
ok,让驱动组的同事看了下,这是因为在normal mode启动时,data是挂载到dm-0分区,查了下资料
加密,god
好吧,这就是recovery不能挂载data的原因了
可以你们做这个ota的apk的时候能不能TM挂载个别的分区呀0^0!
经过沟通,他们决定放在sdcard,在recovery模式下挂载这个分区
好吧,这个应该没有问题,sdcard指向的一般都是/data/media
问题解决了,不过还要学深入学下这几个模式下,系统都做了什么
META MODE
FASTBOOT MODE
NORMAL MODE
RECOVERY MODE
FACTORY MODE