`
mmdev
  • 浏览: 12950736 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android 属性设置失败

 
阅读更多
今天想在system server进程下设置一个属性,ro.media.mine,发现没有设置成功。
后来查了下,原来设置属性之前,会做一个权限判断,判断依据就是一段一段的前缀。
判断用的结构体如下:
       struct  {
           const   char   * prefix;
          unsigned  int  uid;
      } property_perms[]  =  {
          {  " net.rmnet0. " ,    AID_RADIO },
          {  " net.gprs. " ,      AID_RADIO },
          {  " ril. " ,           AID_RADIO },
          {  " gsm. " ,           AID_RADIO },
          {  " net.dns " ,        AID_RADIO },
          {  " net.usb0 " ,       AID_RADIO },
          {  " net. " ,           AID_SYSTEM },
          {  " dev. " ,           AID_SYSTEM },
          {  " runtime. " ,       AID_SYSTEM },
          {  " hw. " ,            AID_SYSTEM },
          {  " sys. " ,        AID_SYSTEM },
          {  " service. " ,    AID_SYSTEM },
          {  " wlan. " ,        AID_SYSTEM },
          {  " dhcp. " ,        AID_SYSTEM },
          {  " dhcp. " ,        AID_DHCP },
          {  " debug. " ,        AID_SHELL },
          {  " log. " ,        AID_SHELL },
          {  " service.adb.root " ,    AID_SHELL },
          {  " persist.sys. " ,    AID_SYSTEM },
          {  " persist.service. " ,   AID_SYSTEM },
		  {  " media. " ,   AID_MEDIA },
          { NULL,  0  }
      };



从上述结构体可知,有media前缀的属性,只能被AID_MEDIA修改,而不能被AID_SYSTEM修改。
既然是想着system server中修改属性,只有改变属性的名称了。
将属性名称改为ro.sys.setroute,果然OK了。


参考了:http://carywei.iteye.com/blog/889482
分享到:
评论

相关推荐

    Android 解决sqlite无法创建新表的问题

    使用SQLite时,继承SQLiteOpenHelper, onCreate方法只有在第一次创建数据库的时候才会被调用, 因此,重新更改或者添加表时,需要在DDMS里面删掉原来的.db文件,重新运行,就可以~...属性名就会变成**“KEY_IDInteger

    TextView的autoLink属性设置超链接

    使用TextView的autoLink属性设置超链接,用工具类方式和自定义View方式两种方式修改超链接显示样式和链接地址的点击事件。

    Android代码-StickLayout

    Note:图1为设置属性wkp_canScrollToEndViewTop=true,图2没有;图3为设置滑动改变监听。 Gradle集成 dependencies{ compile 'com.wkp:StickLayout:1.0.6' //Android Studio3.0 可用以下方式 //implementation '...

    Android代码-SoftLinearLayout

    //Android Studio3.0 可用以下方式 //implementation 'com.wkp:SoftLinearLayout:1.0.3' } //如集成失败或不愿意等待,请加上我的maven仓库地址 maven { url "https://dl.bintray.com/wkp/maven" } Note:可能...

    Android中EditText 设置 imeOptions 无效问题的解决方法

    通常我们需要设置Android:imeOptions属性。Android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等 但是今天我发现设置了无效 那是因为我设置了 android:maxLines=”1″ 解决方法 就是去掉 ...

    Android代码-RadarView

    RadarView for Android 是一个雷达扫描动画后,然后展示得分效果的控件。 Gif 展示 引入 Maven: com.king.view radarview 1.0.2 pom Gradle: compile 'com.king.view:radarview:1.0.2' Lvy: 如果Gradle...

    Android MediaPlayer 音频倍速播放 调整播放速度问题

    从Android API 23 (Android M)开始,MediaPlayer支持调整播放速度。 使用的方法是setPlaybackParams,传入一个代表播放属性的类PlaybackParams。 本文介绍如何使用MediaPlayer调整播放速度。 MediaPlayer....

    Android代码-用 kotlin 编写的带进度条的自定义 View ,适用于提交或上传图片。

    属性也可以在代码中设置 val submitButton:SubmitButton = findViewById(R.id.submitbutton) submitButton.submitText = "开始上传" submitButton.completeText = "上传完成" submitButton.failureText = "上传...

    AndroidProgressLayout-可根据加载情况显示提示信息的控件.zip

    3. 通过progressLayout.showContent()来打开loading,或者你也可以使用属性:app:progress="true"mHandler.postDelayed(new Runnable() {  @Override  public void run() { //progressLayout.showContent...

    绑定服务BoundService详解之AIDL的使用(自定义属性也包含其中)

    代码比较简单,但是步骤结合博客还是很详细的,可以看我的博客http://blog.csdn.net/superbiglw/article/details/53156177

    Android图片框架Glide-3.7.0(最新,很强大)

    Activity 生命周期的集成: 当Activity暂停和重启时,Glide能够做到智能的暂停和重新开始请求,并且当Android设备的连接状态变化时,所有失败的请求能够自动重新请求 转码的支持: Glide的toBytes() 和transcode() ...

    COVID-19-app-Android-BETA:NHS COVID-19 Android应用程序Beta版的源代码

    要设置属性,请参阅 运行测试 设备设置 确保在运行测试的设备(不是仿真器)上关闭了所有动画。 还要确保在设备上启用了位置访问。 在推动代码运行之前- ./gradlew localBuild 这是默认任务,因此您也可以运行...

    如何安装系统认证签名过的APK

    如果你 repo sync 了 android 的整个源码,那么可以直接把你的 app 放到 /packages/apps 下面去 mm ,不过要记得在 Android.mk 中增加 LOCAL_CERTIFICATE 属性,这个属性具体有三个值: 系统中所有使用 android.uid....

    《Android应用开发》个人总结报告.doc

    要的布局(或者控件) ,在学习界面中,我发现Android为我们提供了很好的类似反射机制,通过Layout文件夹 下的配置文件,可以快速的形成界面,在配置文件可以设置属性或者样式都是很快捷方 便。对比较特殊的界面也可以...

    Android仿ios加载loading菊花图效果

    项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loading,一般用的比较多的是仿照ios 的菊花加载loading 图,当然一些条件下还会涉及到加载成功/ 失败情况的显示,还有显示文字。...

    android#as build/outputs目录的apk安装不上?#

    在run过程中,as会对apk使用debug签名来进行签名,所以我们直接在设备上安装失败的原因并不是签名问题,而是通过as run后,as会在apk的AndroidManifest文件中自动添加android:testOnly属性。正是由于这个属性导致...

    Android Studio报错Manifest merger failed with multiple errors

    AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误。 解决方法有以下2种: 方法1:在...

    Cordova框架简单样例

    下载失败解决方法,在android sdk manager 界面tools菜单 ->options 窗口,进行如下设置: http proxy server :mirrors.opencas.cn; http proxy port :80; 选项框选中 force ...

    wkp111_StickLayout-粘性控件,其任意一个子控件都可滑动停留,本质为NestedScrollView和LinearLayout的结合。.zip

    演示图 Note:图1为设置属性wkp_canScrollToEndViewTop=true,图2没有;图3为设置滑动改变监听。Gradle集成dependencies{  compile 'com.wkp:StickLayout:1.0.6'  //Android Studio3.0 可用以下方式  //...

    关于Android HTML5 audio autoplay无效问题的解决方案

    前言:在android HTML5 开发中有不少人遇到过 audio 标签 autoplay在某些设备上无效的问题,网上大多是讲怎么在js中操作,即在特定的时刻调用audio的play()方法,在android上还是无效。...// 设置4.2以

Global site tag (gtag.js) - Google Analytics