我想了解adb shell setprop mypropertykey mypropertyvalue的工作原理。换句话说,我编辑了/system/build.prop文件,但是当我尝试使用getprop命令读回该值时,我似乎得到的是空白值。

但是,当我在root模式下通过adb shell setprop设置该属性,然后取消仿真器的root权限并使用代码读取值时,便能够获得正确的值。

我不明白的是,如果该值是通过adb shell setprop设置的,那么为什么不将其写入build.prop文件呢?然后getprop从哪里读取值?

最佳答案

Android系统属性由特殊的property_service管理。 /system/build.prop只是4-6个只读文件(取决于版本)中的一个,其中包含property_service在启动期间用于填充其内部内存数据库的默认值。因此,在运行时对文件的更改只有在重新启动后才能传播。
setpropgetprop命令用于访问该数据库中的数据。除非属性名称以persist.开头-否则该值将存储在/data/property文件夹中。

09-26 11:26