Don't overwrite persistent property files
This fixes a bug introduced by I81b6bd984aad8f7ddec93ce74f4543e4f71be508 In the original CL, setting a sysprop `next_boot.<name>` and then rebooting the device could remove all the persistent properties stored in /data/property/persistent_properties. It happened because the function `WritePersistentProperty` is called with a properties set which is initialized as an empty set and then added with the properties which had the next_boot prefix. As a result... Before the boot: * persist.a = 1 * next_boot.b = 2 * next_boot.persist.c = 3 After the reboot: * b = 2 * persist.c = 3 persist.a gets lost. This change fixes the issue by populating properties set from the memory and then save it to the file. Bug: 306062513 Bug: 300111812 Test: do the following. $ adb root $ adb shell setprop persist.a 1 $ adb shell setprop next_boot.b 1 $ adb shell setprop next_boot.persist.c 1 $ adb reboot $ adb shell getprop persist.a 1 // was (none) before this change $ adb shell getprop b 1 $ adb shell getprop persist.c 1 $ adb reboot $ adb shell getprop persist.a 1 // was (none) before this change $ adb shell getprop b // (none) because b isn't persisted. WAI. $ adb shell getprop persist.c 1 Change-Id: I85d3777f9b32523b010e49b8ca53f4319dd2ce05
Loading
Please register or sign in to comment