aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2016-12-27 12:17:50 -0800
committerRob Landley <rob@landley.net>2016-12-28 22:49:26 -0600
commit45c6b12a0a0f09054ab1fee9197860aee27b2e8a (patch)
treeb7344397bfec65ea96d8f0ef6220bde442e661ec
parent6bce3be4a3fcb1c3b01d86ffaec2b605c692822d (diff)
downloadtoybox-45c6b12a0a0f09054ab1fee9197860aee27b2e8a.tar.gz
Switch to bionic <sys/system_properties.h>.
Removes the dependency on libcutils for everything except ps.
-rw-r--r--toys/android/getprop.c17
-rw-r--r--toys/android/setprop.c4
-rw-r--r--toys/android/start.c4
3 files changed, 16 insertions, 9 deletions
diff --git a/toys/android/getprop.c b/toys/android/getprop.c
index 2df6c0a8..305a7a96 100644
--- a/toys/android/getprop.c
+++ b/toys/android/getprop.c
@@ -17,7 +17,7 @@ config GETPROP
#define FOR_getprop
#include "toys.h"
-#include <cutils/properties.h>
+#include <sys/system_properties.h>
#include <selinux/android.h>
#include <selinux/label.h>
@@ -39,8 +39,13 @@ static char *get_property_context(char *property)
return context;
}
-static void add_property(char *name, char *value, void *unused)
+static void add_property(const prop_info *pi, void *unused)
{
+ char name[PROP_NAME_MAX];
+ char value[PROP_VALUE_MAX];
+
+ __system_property_read(pi, name, value);
+
if (!(TT.size&31)) TT.nv = xrealloc(TT.nv, (TT.size+32)*2*sizeof(char *));
TT.nv[2*TT.size] = xstrdup(name);
@@ -58,7 +63,7 @@ static int selinux_log_callback_local(int type, const char *fmt, ...)
if (type == SELINUX_INFO) return 0;
va_start(ap, fmt);
- verror_msg(fmt, 0, ap);
+ verror_msg((char *)fmt, 0, ap);
va_end(ap);
return 0;
}
@@ -81,13 +86,15 @@ void getprop_main(void)
puts(context);
if (CFG_TOYBOX_FREE) free(context);
} else {
- property_get(*toys.optargs, toybuf, toys.optargs[1] ? toys.optargs[1] : "");
+ if (__system_property_get(*toys.optargs, toybuf) <= 0)
+ strcpy(toybuf, toys.optargs[1] ? toys.optargs[1] : "");
puts(toybuf);
}
} else {
size_t i;
- if (property_list((void *)add_property, 0)) error_exit("property_list");
+ if (__system_property_foreach(add_property, NULL))
+ error_exit("property_list");
qsort(TT.nv, TT.size, 2*sizeof(char *), qstrcmp);
for (i = 0; i<TT.size; i++) printf("[%s]: [%s]\n", TT.nv[i*2],TT.nv[1+i*2]);
if (CFG_TOYBOX_FREE) {
diff --git a/toys/android/setprop.c b/toys/android/setprop.c
index f29a868a..2af314aa 100644
--- a/toys/android/setprop.c
+++ b/toys/android/setprop.c
@@ -17,7 +17,7 @@ config SETPROP
#define FOR_setprop
#include "toys.h"
-#include <cutils/properties.h>
+#include <sys/system_properties.h>
void setprop_main(void)
{
@@ -44,6 +44,6 @@ void setprop_main(void)
if (!isalnum(*p) && !strchr("@_.-", *p))
error_exit("invalid character '%c' in name '%s'", *p, name);
- if (property_set(name, value))
+ if (__system_property_set(name, value))
error_msg("failed to set property '%s' to '%s'", name, value);
}
diff --git a/toys/android/start.c b/toys/android/start.c
index 20fa2b9e..f6b3c379 100644
--- a/toys/android/start.c
+++ b/toys/android/start.c
@@ -27,7 +27,7 @@ config STOP
#define FOR_start
#include "toys.h"
-#include <cutils/properties.h>
+#include <sys/system_properties.h>
static void start_stop(int start)
{
@@ -46,7 +46,7 @@ static void start_stop(int start)
}
for (; *ss; ss += direction)
- if (property_set(property, *ss))
+ if (__system_property_set(property, *ss))
error_exit("failed to set property '%s' to '%s'", property, *ss);
}