1 原理
- 主要是在Android OS中建立文件夾,通過腳本生成對應的platform.keystore的過程。
- 編譯出android.jar 這個jar包可以用於替換Android Studio中的相應文件,這樣就可以使用Android Framework中自己實現的服務接口了。
2 修改方案(Android O P Q)
@1 生成系統簽名
在文件夾build/make/target/product/security 中建立一個新的目錄 make_platformkey。
拷貝build/make/target/product/security/platform.pk8文件和build/make/target/product/security/platform.x509.pem文件 到該目錄下,之後執行命令:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey
提示password:輸入android
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore platform.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
中間生成文件爲:shared.priv.pem和shared.pk12,最後生成platform.keystore。至此,簽名生成。
@2 安卓源碼編譯自定義SDK android.jar
在源碼 AOSP目錄下執行命令:
souce build/envsetup.sh
lunch sdk-eng
make sdk
注意:
- 首先:這裏如果使用谷歌原生的源碼直接編譯是沒有問題的,難點是在高通平臺 或者是第三方平臺編譯時需要根據實際情況進行部分代碼的改動,否則會編譯出錯。
- 其次: 谷歌的源碼可以做相應的改動 來適配新的OS層的接口,不一定非要在第三方平臺上死磕的,因爲很多時候支持不到位 並不能直接解決問題,這時候是需要曲線救國的。