我想了解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
在启动期间用于填充其内部内存数据库的默认值。因此,在运行时对文件的更改只有在重新启动后才能传播。setprop
和getprop
命令用于访问该数据库中的数据。除非属性名称以persist.
开头-否则该值将存储在/data/property
文件夹中。