Android 使用 platform key 给apk签名

如果使用Android Studio对代码进行make project后,将输出的app-debug.apk部署到手机/system/app下,虽然该apk能作为系统 app 自动安装并无法删除,但他在 selinux 中属于 u:r:untrusted_app:s0标签(域),只有访问 ASEC、SD卡、TCP/UDP socket、PTY的权限,且受制于neverallow规则的限制,在源码中无法对其开放驱动节点访问的权限。
若要在seLinux开放app访问特定的驱动节点,我们需要将app进行platform_app签名:

  • 将xxx.apk文件放到aosp根目录,在aosp根目录执行以下命令:
java -Djava.library.path="out/host/linux-x86/lib64" -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/platform.x509.pem build/target/product/security/platform.pk8 xxx.apk xxx-signed.apk

签名后安装至Android机器中,现其在SELinux中的标签(域)为:u:r:platform_app:s0

参考文献

  [1] lei7143. O apk 签名[EB/OL].CSDN博客,2018.06.01

你可能感兴趣的:(Android)