From fe89f9e55ea4818827e28634f7bbd47d4e767505 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Mon, 17 Apr 2017 00:35:34 +0800 Subject: [PATCH] Update to newer functions in resetprop --- jni/resetprop/resetprop.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/jni/resetprop/resetprop.cpp b/jni/resetprop/resetprop.cpp index 2b57bdaad..84617b9cc 100644 --- a/jni/resetprop/resetprop.cpp +++ b/jni/resetprop/resetprop.cpp @@ -80,7 +80,6 @@ int main(int argc, char *argv[]) { static int verbose = 0; static bool is_legal_property_name(const char* name, size_t namelen) { - if (namelen >= PROP_NAME_MAX) return false; if (namelen < 1) return false; if (name[0] == '.') return false; if (name[namelen - 1] == '.') return false; @@ -126,14 +125,20 @@ int init_resetprop() { return 0; } +static void read_prop_info(void* cookie, const char *name, const char *value, uint32_t serial) { + strcpy((char *) cookie, value); +} + // Get prop by name, return string (should free manually!) char *getprop(const char *name) { - char value[PROP_VALUE_MAX]; - LOGD("restprop: getprop [%s]\n", name); - if (__system_property_get(name, value) == 0) { + const prop_info *pi = __system_property_find(name); + if (pi == NULL) { LOGE("resetprop: prop not found: [%s]\n", name); return NULL; } + char value[PROP_VALUE_MAX]; + __system_property_read_callback(pi, read_prop_info, value); + LOGD("resetprop: getprop [%s]: [%s]\n", name, value); return strdup(value); } @@ -146,7 +151,6 @@ int setprop2(const char *name, const char *value, int trigger) { char *check = getprop(name); if (check) { - LOGD("resetprop: prop [%s] has existing value [%s]\n", name, value); free(check); if (trigger) { if (!strncmp(name, "ro.", 3)) deleteprop(name);