编译安卓4.4.4源码同时root不成功
步骤:
1.把ChainDD的最新su,Superuser源码下载到源码目录的system/extras/su和packages/apps/Superuser下,
2.修改Superuser/Android.mk,把LOCAL_CERTIFICATE设置成platform
3.把源码里所有的init.rc文件都加了一句:symlink /system/xbin/su /system/bin/su
4.编译源码,将生成的img烧录进设备
效果:
1.设备的system/xbin有su
2.设备里已经安装了Superuser.apk
错误:
在设备里打开终端执行su,提示:
chown(/data/data/com.noshufou.android.su/cache,1000,1000) failed with 1: Operation not permitted
java.lang.SecurityException: Permission Denial: broadcast asks to run as user -1 but is calling from user 0. this requires
android.permission.INTERACT_ACROSSS_USERS_FULL or android.permission.INTERACT_ACROSS_USERS
at: android.os.Parcel.readException(Parcel.java:1465)
at: android.os.Parcel.readException(Parcel.java:1419)
at: android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:2373)
at: com.android.commands.am.Am.sendBroadcast(Am.java 802)
at: com.android.commands.am.Am.onRun(Am.java 284)
at: com.android.internal.os.BaseCommand.run(BaseCommand.java 47)
at: com.android.commands.am.Am.main(Am.java 76)
at: com.android.internal.os.RuntimeInit.nativeFinishInit(Native method)
at: com.android.internal.os.RuntimeInit.main(RuntimeInit.java 243)
at: dalvik.system.NativeStart.main(Native Method)
request rejected (10047->0 /system/bin/sh)Permission denied
分析:
先以为是Superuser.apk没有配置INTERACT_ACROSSS_USERS_FULL权限,后来发现只要是签名成platform就应该自带这个权限。根据错误提示,查看ChainDD的su.c文件,也只能定位到是哪里执行的chown。我想应该还是哪里的配置不对,请老司机带带我