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


目录
相关文章
|
4天前
|
资源调度 前端开发
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
52 0
|
4天前
|
druid Java
Error attempting to get column ‘createTime‘ from result set的异常
Error attempting to get column ‘createTime‘ from result set的异常
|
4天前
|
XML Java 数据库连接
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
28 0
|
4天前
|
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.
47 1
|
7月前
|
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
110 0
|
4天前
|
关系型数据库 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
|
4天前
|
API Python Windows
[已解决] openai.error.AuthenticationError: No API key provided. You can set your API key in code using
[已解决] openai.error.AuthenticationError: No API key provided. You can set your API key in code using
137 0
|
5月前
|
分布式计算 Hadoop 大数据
|
11月前
|
分布式计算 Java Hadoop
Error: JAVA_HOME is incorrectly set. Please update C:\hadoop-2.5.1\conf\hadoop-env.cmd ‘
Error: JAVA_HOME is incorrectly set. Please update C:\hadoop-2.5.1\conf\hadoop-env.cmd ‘