Add TW_USE_MODEL_HADWARE_ID_FOR_DEVICE_ID parameter for correct model identification
Change-Id: Ic6440c624b5cfbdb0f24681461748a0da16bf95e
diff --git a/Android.mk b/Android.mk
index 7582bb1..1ad1e0d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -222,9 +222,11 @@
LOCAL_SRC_FILES += crypto/jb/cryptfs.c
LOCAL_C_INCLUDES += system/extras/ext4_utils external/openssl/include
endif
-
+ifeq ($(TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID), true)
+ LOCAL_CFLAGS += -DTW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID
+endif
ifeq ($(TARGET_BOARD_PLATFORM),rk30xx)
-LOCAL_CFLAGS += -DRK3066
+ LOCAL_CFLAGS += -DRK3066
endif
include $(BUILD_EXECUTABLE)
diff --git a/data.cpp b/data.cpp
index 56df350..9e9120c 100644
--- a/data.cpp
+++ b/data.cpp
@@ -41,6 +41,10 @@
#include "partitions.hpp"
#include "twrp-functions.hpp"
+#ifdef TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID
+ #include "cutils/properties.h"
+#endif
+
extern "C"
{
#include "common.h"
@@ -90,6 +94,30 @@
// Assign a blank device_id to start with
device_id[0] = 0;
+
+#ifdef TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID
+ // Now we'll use product_model_hardwareid as device id
+ char model_id[PROPERTY_VALUE_MAX];
+ property_get("ro.product.model", model_id, "error");
+ if (strcmp(model_id,"error") != 0) {
+ LOGI("=> product model: '%s'\n", model_id);
+ // Replace spaces with underscores
+ for(int i = 0; i < strlen(model_id); i++) {
+ if(model_id[i] == ' ')
+ model_id[i] = '_';
+ }
+ strcpy(device_id, model_id);
+ if (hardware_id[0] != 0) {
+ strcat(device_id, "_");
+ strcat(device_id, hardware_id);
+ }
+ sanitize_device_id((char *)device_id);
+ mConstValues.insert(make_pair("device_id", device_id));
+ LOGI("=> using device id: '%s'\n", device_id);
+ return;
+ }
+#endif
+
#ifndef TW_FORCE_CPUINFO_FOR_DEVICE_ID
// First, try the cmdline to see if the serial number was supplied
fp = fopen("/proc/cmdline", "rt");