1首先说一下我的需求。项目中需要后台下发策略,可以人为的添加APN节点。但是在android4.0以上,官方已经不允许非系统app进行这个操作。于是,我就在将app变成系统apk的道路上越走越远。
2再来说一下过程。在代码的manifest文件中,你只需要添加
记住一定不要写android:sharedUserId=”android.uid.system”这一句。不然,你根本连安装都装不上。因为写上这一句,就代表你这个是系统app,有的手机在安装时,如果你声明是系统app他会从他的白名单上去对比,如果没有,那么禁止你安装,当然你不是生产手机的厂商,你写的代码也肯定不在那个列表中。
3下一步,按照常规安装。接下来就需要使用到adb指令了。
a:adb shell
b: su
c: pm path 包名(这一句可以得到一个你安装apk在你手机中的路径)
d:cd /system/app(如果系统说你没有权限进入不要着急敲下面的指令)
e: shell@android:/ # mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
shell@android:/ # chmod 777 /system
shell@android:/ # cd system
shell@android:/system # chmod 777 app
shell@android:/system # cd app
shell@android:/system/app # exit
shell@android:/ $ exit
此时system/app可读可写
f:此时再敲 cd /system/app就可以进入。
g:接下来就是复制语句,退出到最开始su语句。敲 cp apk地址 /system/app
此时进入到/system/app下面敲df或者ls可以查到文件下的内容,此时apk已经复制进来了。
h:然后敲chmod 777 apk名字,这个指令后再敲ls可以看到原apk前面加上了32
i:然后敲reboot重启即可变为系统apk。
下面是图片。
下面还有两句指令没截图,chmod 777 apk名 reboot
这两句命令都要记得写啊。