1.1 多服务器编译 OTA 报错
Android7 以后引入了 jack-server 功能,也导致在公共服务器上 编译 Android7 以上的版本时,会出现 j ack-server 报错问题。
在多用户服务器上 编译 dist 时 会出现编译过程中 会将 port_service 和 port_admin 改为 默认的 8076 和 8077。
目前 没有发现什么好的解决方式:
1.尽量 避免在多用户服务器上 编译 dist 。
2.若是必须在多用户服务器上编译 dist 则需要将 jack-setting 和 jack-server 里的 config 文件中
将 port_service 改为相同的 8076 //改为默认值
将 port_admin 改为相同的 8077 //改为默认值
根目录下 vi .jack-setting 即可进行配置
1.2 OTA 升级时间戳校验报错
我们在 recovery 升级的时候,经常提示这样的错误:
Installingupdate…
Can’tinstall this package(TueJun2712:29:30CST2017)overnewerbuild(MonJun2617:20:32CST2017)
E:Errorin/udisk/xxxx.zip
(Status7)
意思就是,我们不能从新的版本升级到旧的系统,有个时间戳的比较。
针对此问题有如下解决方式:
1.每次编译 OTA包的时候 都应该先 make clean,之后重新编译,保证 update 包的 UTC 时间比需要升
级的基础版本的 UTC 时间要新。
2.去除时间戳校验(默认是不建议客户这么做):
./build/tools/releasetools/ota_from_target_files 传入参数–no_prereq 即可,那么编译生成的升级包不再包 含时间戳校验。 原因:如果时间戳校验失败,既 OTA包没有设备中的 recovery 的编译时间早
1.3 JDK 版本不匹配
Unsupported major.minor version 52.0: 看到 Unsupported 想到 jdk 高版本能兼容低版本,但是 低版本不能兼容高版本
修改方法: sudo update-alternatives --config java
1.4 手动 push update 包时候不要有 adb remount
在 ota 升级的时候不要有 adb remount 这样的动作
adb remount 会导致 system 发生改变,会导致升级的时候哈希值发生改变,升级失败