summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk6
-rw-r--r--data.cpp28
2 files changed, 32 insertions, 2 deletions
diff --git a/Android.mk b/Android.mk
index 7582bb11d..1ad1e0dc9 100644
--- a/Android.mk
+++ b/Android.mk
@@ -222,9 +222,11 @@ ifeq ($(TW_INCLUDE_JB_CRYPTO), true)
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 56df3504b..9e9120cb8 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 @@ void DataManager::get_device_id(void) {
// 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");