调用ServiceManager.addService报SecurityException

本文介绍了解决在调用ServiceManager.addService方法时出现的SecurityException问题的方法。通过在AndroidManifest.xml文件中添加特定属性,并使用系统签名重新安装应用,可以有效解决此安全异常。

 在调用ServiceManager.addService方法时(前提:已经将ServiceManager的hide标示删除并重新编译得出jar包),报SecurityException(并没有permission denied打印)。

解决方法:

第一步:在AndroidManifest.xml中,添加 android:sharedUserId="android.uid.system"

第二步:使用系统签名后再安装即可。

11-24 04:39:55.933: E/system_server(3294): Activity trigger handling disabled. 11-24 04:39:55.947: I/SystemServer(3294): Starting UUID Service 11-24 04:39:55.947: I/UuidService(3294): UuidService started 11-24 04:39:55.948: E/SELinux(307): avc: denied { add } for pid=3294 uid=1000 name=uuid scontext=u:r:system_server:s0 tcontext=u:object_r:uuid_service:s0 tclass=service_manager permissive=0 11-24 04:39:55.949: W/SystemServer(3294): *********************************************** 11-24 04:39:55.950: E/SystemServer(3294): BOOT FAILURE starting UUID Service 11-24 04:39:55.950: E/SystemServer(3294): java.lang.SecurityException: 11-24 04:39:55.950: E/SystemServer(3294): at android.os.Parcel.createExceptionOrNull(Parcel.java:2374) 11-24 04:39:55.950: E/SystemServer(3294): at android.os.Parcel.createException(Parcel.java:2358) 11-24 04:39:55.950: E/SystemServer(3294): at android.os.Parcel.readException(Parcel.java:2341) 11-24 04:39:55.950: E/SystemServer(3294): at android.os.Parcel.readException(Parcel.java:2283) 11-24 04:39:55.950: E/SystemServer(3294): at android.os.IServiceManager$Stub$Proxy.addService(IServiceManager.java:380) 11-24 04:39:55.950: E/SystemServer(3294): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:72) 11-24 04:39:55.950: E/SystemServer(3294): at android.os.ServiceManager.addService(ServiceManager.java:197) 11-24 04:39:55.950: E/SystemServer(3294): at android.os.ServiceManager.addService(ServiceManager.java:166) 11-24 04:39:55.950: E/SystemServer(3294): at com.android.server.SystemServer.run(SystemServer.java:576) 11-24 04:39:55.950: E/SystemServer(3294): at com.android.server.SystemServer.main(SystemServer.java:420) 11-24 04:39:55.950: E/SystemServer(3294): at java.lang.reflect.Method.invoke(Native Method) 11-24 04:39:55.950: E/SystemServer(3294): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 11-24 04:39:55.950: E/SystemServer(3294): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 11-24 04:39:55.952: E/AndroidRuntime(3294): Original WTF: 11-24 04:39:55.952: E/AndroidRuntime(3294): android.util.Log$TerribleFailure: BOOT FAILURE starting UUID Service 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.util.Log.wtf(Log.java:313) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.util.Slog.wtf(Slog.java:130) 11-24 04:39:55.952: E/AndroidRuntime(3294): at com.android.server.SystemServer.reportWtf(SystemServer.java:653) 11-24 04:39:55.952: E/AndroidRuntime(3294): at com.android.server.SystemServer.run(SystemServer.java:578) 11-24 04:39:55.952: E/AndroidRuntime(3294): at com.android.server.SystemServer.main(SystemServer.java:420) 11-24 04:39:55.952: E/AndroidRuntime(3294): at java.lang.reflect.Method.invoke(Native Method) 11-24 04:39:55.952: E/AndroidRuntime(3294): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 11-24 04:39:55.952: E/AndroidRuntime(3294): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 11-24 04:39:55.952: E/AndroidRuntime(3294): Caused by: java.lang.SecurityException: 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.Parcel.createExceptionOrNull(Parcel.java:2374) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.Parcel.createException(Parcel.java:2358) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.Parcel.readException(Parcel.java:2341) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.Parcel.readException(Parcel.java:2283) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.IServiceManager$Stub$Proxy.addService(IServiceManager.java:380) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:72) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.ServiceManager.addService(ServiceManager.java:197) 11-24 04:39:55.952: E/AndroidRuntime(3294): at android.os.ServiceManager.addService(ServiceManager.java:166) 11-24 04:39:55.952: E/AndroidRuntime(3294): at com.android.server.SystemServer.run(SystemServer.java:576) 11-24 04:39:55.952: E/AndroidRuntime(3294): ... 4 more
最新发布
11-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值