failed to set system property error code: 0x18

简介: failed to set system property error code: 0x18

在对Android操作系统进行开发的过程中,经常需要使用到Android的隐藏API SystemProperties.set(String key, String value) 这个接口,写入一些属性值存放到系统共享内存,配合SystemProperties.get(String key) 这个接口可以很方便的实现某些功能。由于是android:sharedUserId=“android.uid.system” 的系统级应用,有权限操作类似的隐藏接口。我们可以自定义属性节点,以方便第三方应用开发者获取。

  在Android5.0之前,系统级应用可以很方便的写入规范(比如属性key、value的长度有一定限制等)的属性,在这之后,Android系统引入了SELinux,所有的操作都有相应的权限组,任意写入一个属性也会抛出错误,即使是系统级应用。

报错如下:

W libc    : Unable to set property "persist.test.meid" to "test value": error code: 0x18
12-06 14:22:19.255  2870  2887 E JavaBinder: *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
12-06 14:22:19.255  2870  2887 E JavaBinder: java.lang.RuntimeException: failed to set system property
12-06 14:22:19.255  2870  2887 E JavaBinder:  at android.os.SystemProperties.native_set(Native Method)
12-06 14:22:19.255  2870  2887 E JavaBinder:  at android.os.SystemProperties.set(SystemProperties.java:155)
12-06 14:22:19.255  2870  2887 E JavaBinder:  at com.action.tool.mdm.provider.ActionMdmProvider.tv(:251)
12-06 14:22:19.255  2870  2887 E JavaBinder:  at com.action.tool.mdm.provider.ActionMdmProvider.call(:109)
12-06 14:22:19.255  2870  2887 E JavaBinder:  at android.content.ContentProvider$Transport.call(ContentProvider.java:401)
12-06 14:22:19.255  2870  2887 E JavaBinder:  at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:272)
12-06 14:22:19.255  2870  2887 E JavaBinder:  at android.os.Binder.execTransact(Binder.java:697)
12-06 14:22:19.256  3882  3882 D AndroidRuntime: Shutting down VM

解决方法:

1、关闭selinux ,具体步骤

adb shell

setenforce 0

2、修改签名方式以及key的前缀,具体步骤

属性值以persist.sys.开头

AndroidManifest.xml 声明android:sharedUserId="android.uid.system"

平台签名apk

3.在property_contexts文件中添加权限声明即可(系统源码里)

  • \system\sepolicy\public\property_contexts
persist.vendor.       u:object_r:system_prop:s0


目录
相关文章
|
2月前
|
并行计算 Python
Python错误笔记(一):CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up env
这篇文章讨论了CUDA初始化时出现的未知错误及其解决方案,包括重启系统和安装nvidia-modprobe。
183 0
|
7月前
|
资源调度 前端开发
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
495 0
|
3月前
|
Windows
网页制作- Code Page,Character Set,语种对应列表
网页制作- Code Page,Character Set,语种对应列表
|
4月前
|
XML 缓存 API
【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
|
JavaScript API
【Vue】Cannot set reactive property on undefined,null,or primitive value:undefined
【Vue】Cannot set reactive property on undefined,null,or primitive value:undefined
386 0
|
7月前
|
Python
gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
181 1
|
7月前
|
数据采集 SQL DataWorks
DataWorks操作报错合集之在DataWorks中出现"Please submit specific code instead of only 'set' or 'use'"这样的异常提示,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
158 0
|
7月前
|
druid Java
Error attempting to get column ‘createTime‘ from result set的异常
Error attempting to get column ‘createTime‘ from result set的异常
442 0
|
7月前
|
XML Java 数据库连接
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
193 0