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