在项目的过程中,有可能会要实现类似360优化大师、安卓优化大师的软件搬家、静默安装等需要root权限的功能,或者类似SET_PREFERRED_APPLICATIONS、MOVE_PACKAGE 等需要系统的权限,必须要有系统签名。
咱们拿 软件搬家 来当例子(通过获取系统权限,而不是弹出系统的应用管理界面来搬家):
实现方式:
1、想办法获取系统权限,但是这个一般办不到,因为不同厂家出厂的手机系统签名都不一样
(
可以看看我很早的时候提的问题:
android系统权限SET_PREFERRED_APPLICATIONS怎么获取
)
2、在已经root过得手机,获取root权限(有root权限就可以为所欲为啦,嘿嘿)
第一种办法暂时不考虑,想了解的童鞋可以google Android如何获取系统权限。
我们说说第二种办法,
在已经root过得手机上获取root权限,简单
Java代码
Process process = Runtime.getRuntime().exec("su");
执行这一句,superuser.apk就会弹出授权对话框。
但是这样做就可以了吗.....肯定没这么简单啦!
当执行需要系统权限的操作时,系统还是回去检查应用程序是否拥有该权限。
所以我们要想办法绕过过系统检查权限这道关卡!
至于办法 可以参考下以下两篇博客:
1、android应用搬家的实现
2、如何在Android中启动java程序
大概思路是:

本文详细介绍了如何在已经root的Android设备上获取并永久保留Root权限。通过执行'su'命令启动Java程序并利用app_process,绕过系统权限检查。核心是编译一个名为main的可执行程序,替代su,首次获取权限后将其推送到/system/bin/目录,赋予4755权限,从而避免每次执行时请求权限。文章还提到了相关工具如Cygwin和NDK的使用,以及如何实现软件搬家功能。
最低0.47元/天 解锁文章
7367

被折叠的 条评论
为什么被折叠?



