Add option to use ro.serialno for generating device id
On some devices (e.g. ASUS Zenfone) the serial number of the device is stored in a file in the /factory partition. Consequently, the only way to load it is using a user space application during the init process, and to update the ro.serialno system property. In most places, TWRP already uses the system property to get the serial number of the device. However, when generating the device ID used for the backup folder name it checks the boot command line directly. On these devices, the serialno is not included on the command line. Add a TW_USE_SERIALNO_PROPERTY_FOR_DEVICE_ID option that enables usage of ro.serialno for generating the device id. It is disabled by default to avoid changing the device id on existing ports. Change-Id: I4a2eeca883f38fdaeb1209507fd8ebe44b1b04a0
This commit is contained in:
10
data.cpp
10
data.cpp
@@ -146,6 +146,16 @@ void DataManager::get_device_id(void) {
|
||||
#endif
|
||||
|
||||
#ifndef TW_FORCE_CPUINFO_FOR_DEVICE_ID
|
||||
#ifdef TW_USE_SERIALNO_PROPERTY_FOR_DEVICE_ID
|
||||
// Check serial number system property
|
||||
if (property_get("ro.serialno", line, "")) {
|
||||
snprintf(device_id, DEVID_MAX, "%s", line);
|
||||
sanitize_device_id(device_id);
|
||||
mConst.SetValue("device_id", device_id);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Check the cmdline to see if the serial number was supplied
|
||||
fp = fopen("/proc/cmdline", "rt");
|
||||
if (fp != NULL) {
|
||||
|
||||
Reference in New Issue
Block a user