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层的接口,不一定非要在第三方平台上死磕的,因为很多时候支持不到位 并不能直接解决问题,这时候是需要曲线救国的。