I would like to understand how adb shell setprop mypropertykey mypropertyvalue
works. In other words, I edited the /system/build.prop
file, but when I try to use getprop
command to read the value back I seem to be getting a blank value instead.
However, when I set the property via adb shell setprop
in the root mode and then unroot the emulator and read the value using code, I am able to get the proper value.
What I don't understand is, if the value is set via adb shell setprop
then why does it not get written to the build.prop
file? Then where does getprop
read the values from?
Android system properties are being managed by special property_service
. The /system/build.prop
is just one out of 4-6 (depending on the version) read-only files containing the default values that property_service
uses to populate its internal in-memory database with during start-up. So changes to the files during run time would not propagate until after reboot.
The setprop
and getprop
commands are used to access the data in that database. Unless the property name starts with persist.
- then the value gets stored in /data/property
folder.