网上有两个办法,一个是修改AndroidManifest.xml和Android.mk,并且要在系统源码的环境下用make来编译,另一个是用目标系统的密钥来签名,这两种方法都需要把APK拷贝到系统目录再重启手机才能用,我现在都是用eclips编译后,安装到普通的市面手机来进行代码调试,这两种提权方法都不适合我。
研究了一下RE管理器,仿造RE的做法,把手机root后,在程序中加入了 process = Runtime.getRuntime().exec("/system/xbin/su");这么一段,运行时,superuser会提示超级用户请求,选择允许后,是不是就表示这个APK在运行时具有了最高的root权限,能做一切操作?很疑惑的是,我在后续的代码中打开GPS设备时,运行到GPSIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 这一段,安卓仍然会报错并提示requires permission android.permission write_settings。
请各位大神指点一下。
------解决方案--------------------
原理上只要机子给了APK的ROOT权限就会有,你最好下载一个root管理器,看下apk什么申请了root权限,如果不行,那就还要在xml里面配置,http://blog.csdn.net/superkris/article/details/7709504
------解决方案--------------------
学习中……会不会是你的这个功能,还需要开通其他的权限?试试以下在编译试试
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />