文档说明
本文档以SC826-CN-01(MSM8953平台)为例,描述如何解决APK签名问题。
问题现象
上层APK调用了重启函数 rebootSystem(),如下图:
提示无权限,也没有相应的重启动作。
reboot动作属于系统层面接口,需要赋予相应的系统签名。
尝试在app对应的AndroidManifest.xml中添加REBOOT权限:
<uses-permission android:name="android.permission.REBOOT" />
还是无权限,提示如下信息:
Package com.zxt.bcm_systemtest has no signatures that match those in shared user android.uid.system; ignoring!]
上述问题,可以通过上层添加系统签名来解决。
这里我们采用另外一种方式来解决签名问题:把android studio编译生成的APK文件放到ubuntu环境下,把APK编译到内核里面。
内核编译APK
把APK名字改成znz.apk
/packages/apps 在这里新建一个文件夹Test,把APK文件放进去。
另外在该目录下新建一个Android.mk,如下图:
APK文件和Android.mk文件见下面附件:
https://uploader.shimo.im/f/6QD2uyaxVREUbbtO.rar?attname=APK%E7%BC%96%E8%AF%91.rar&download
然后返回到Android源码根目录,编译,mmm packages/apps/Test
编译之后,在/out/target/product/msm8953_64/system/app/znz 会生成一个新的znz.apk文件
安装新的znz.apk,执行重启动作,模块重启,不再提示无权限。