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


目录
相关文章
|
21天前
|
Windows
网页制作- Code Page,Character Set,语种对应列表
网页制作- Code Page,Character Set,语种对应列表
|
5月前
|
资源调度 前端开发
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
411 0
|
2月前
|
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.
|
5月前
|
数据采集 SQL DataWorks
DataWorks操作报错合集之在DataWorks中出现"Please submit specific code instead of only 'set' or 'use'"这样的异常提示,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
95 0
|
5月前
|
druid Java
Error attempting to get column ‘createTime‘ from result set的异常
Error attempting to get column ‘createTime‘ from result set的异常
370 0
|
5月前
|
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.
152 1
|
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
258 0
|
5月前
|
XML Java 数据库连接
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
141 0
|
5月前
|
关系型数据库 PostgreSQL
PostgreSQL 的哪些参数不能通过ALTER SYSTEM SET 修改
在 PostgreSQL 中,有一些参数是不能通过 `ALTER SYSTEM SET` 语句进行动态修改的,这些参数通常需要在 PostgreSQL 的配置文件中进行手动修改。以下是一些不能通过 `ALTER SYSTEM SET` 修改的常见参数: 1. **track_activities** 2. **track_counts** 3. **track_io_timing** 4. **track_functions** 5. **track_activity_query_size** 6. **track_commit_timestamp** 7. **shared_preload
106 0