寺廟建設(shè)網(wǎng)站的意義百度搜索引擎的原理
1.1 多服務(wù)器編譯 OTA 報(bào)錯(cuò)
Android7 以后引入了 jack-server 功能,也導(dǎo)致在公共服務(wù)器上 編譯 Android7 以上的版本時(shí),會(huì)出現(xiàn) j ack-server 報(bào)錯(cuò)問題。
在多用戶服務(wù)器上 編譯 dist 時(shí) 會(huì)出現(xiàn)編譯過程中 會(huì)將 port_service 和 port_admin 改為 默認(rèn)的 8076 和 8077。
目前 沒有發(fā)現(xiàn)什么好的解決方式:
1.盡量 避免在多用戶服務(wù)器上 編譯 dist 。
2.若是必須在多用戶服務(wù)器上編譯 dist 則需要將 jack-setting 和 jack-server 里的 config 文件中
將 port_service 改為相同的 8076 //改為默認(rèn)值
將 port_admin 改為相同的 8077 //改為默認(rèn)值
根目錄下 vi .jack-setting 即可進(jìn)行配置
1.2 OTA 升級(jí)時(shí)間戳校驗(yàn)報(bào)錯(cuò)
我們?cè)?recovery 升級(jí)的時(shí)候,經(jīng)常提示這樣的錯(cuò)誤:
Installingupdate…
Can’tinstall this package(TueJun2712:29:30CST2017)overnewerbuild(MonJun2617:20:32CST2017)
E:Errorin/udisk/xxxx.zip
(Status7)
意思就是,我們不能從新的版本升級(jí)到舊的系統(tǒng),有個(gè)時(shí)間戳的比較。
針對(duì)此問題有如下解決方式:
1.每次編譯 OTA包的時(shí)候 都應(yīng)該先 make clean,之后重新編譯,保證 update 包的 UTC 時(shí)間比需要升
級(jí)的基礎(chǔ)版本的 UTC 時(shí)間要新。
2.去除時(shí)間戳校驗(yàn)(默認(rèn)是不建議客戶這么做):
./build/tools/releasetools/ota_from_target_files 傳入?yún)?shù)–no_prereq 即可,那么編譯生成的升級(jí)包不再包 含時(shí)間戳校驗(yàn)。 原因:如果時(shí)間戳校驗(yàn)失敗,既 OTA包沒有設(shè)備中的 recovery 的編譯時(shí)間早
1.3 JDK 版本不匹配
Unsupported major.minor version 52.0: 看到 Unsupported 想到 jdk 高版本能兼容低版本,但是 低版本不能兼容高版本
修改方法: sudo update-alternatives --config java
1.4 手動(dòng) push update 包時(shí)候不要有 adb remount
在 ota 升級(jí)的時(shí)候不要有 adb remount 這樣的動(dòng)作
adb remount 會(huì)導(dǎo)致 system 發(fā)生改變,會(huì)導(dǎo)致升級(jí)的時(shí)候哈希值發(fā)生改變,升級(jí)失敗