init: Add support for writing system property value to a file in init.rc
The write command will write a property value if the value starts with a "$' For example: write /sys/class/android_usb/iSerial $ro.serialno Use double leading '$' if you need to write a string that starts with '$': write /data/foo $$hello to write "$hello" to /data/foo Change-Id: I55431ac7715a5347bb95c3a15aee97c575444dde
This commit is contained in:
parent
b36f136738
commit
2c4d5dc415
1 changed files with 17 additions and 1 deletions
|
@ -527,7 +527,23 @@ int do_sysclktz(int nargs, char **args)
|
|||
|
||||
int do_write(int nargs, char **args)
|
||||
{
|
||||
return write_file(args[1], args[2]);
|
||||
char *path = args[1];
|
||||
char *value = args[2];
|
||||
if (value[0] == '$') {
|
||||
/* Write the value of a system property if value starts with '$' */
|
||||
value++;
|
||||
if (value[0] != '$') {
|
||||
value = property_get(value);
|
||||
if (!value) {
|
||||
ERROR("property %s has no value for writing to %s\n", value, path);
|
||||
return -EINVAL;
|
||||
}
|
||||
} /* else fall through to support double '$' prefix for writing
|
||||
* string literals that start with '$'
|
||||
*/
|
||||
}
|
||||
|
||||
return write_file(path, value);
|
||||
}
|
||||
|
||||
int do_copy(int nargs, char **args)
|
||||
|
|
Loading…
Reference in a new issue