diff --git a/jni/Android.mk b/jni/Android.mk
index fcd85108a..49654ca31 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -16,16 +16,16 @@ LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/selinux/libsepol/include
LOCAL_SRC_FILES := \
- main.c \
+ daemon/magisk.c \
+ daemon/daemon.c \
+ daemon/socket_trans.c \
+ daemon/log_monitor.c \
+ daemon/bootstages.c \
utils/misc.c \
utils/vector.c \
utils/xwrap.c \
utils/list.c \
utils/img.c \
- daemon/daemon.c \
- daemon/socket_trans.c \
- daemon/log_monitor.c \
- daemon/bootstages.c \
magiskhide/magiskhide.c \
magiskhide/proc_monitor.c \
magiskhide/hide_utils.c \
diff --git a/jni/main.c b/jni/daemon/magisk.c
similarity index 88%
rename from jni/main.c
rename to jni/daemon/magisk.c
index 7d7c5f771..b3f1bcafb 100644
--- a/jni/main.c
+++ b/jni/daemon/magisk.c
@@ -25,34 +25,35 @@ static void usage() {
"Magisk v" xstr(MAGISK_VERSION) "(" xstr(MAGISK_VER_CODE) ") (by topjohnwu) multi-call binary\n"
"\n"
"Usage: %s [applet [arguments]...]\n"
- " or: %s --install [SOURCE]
\n"
+ " or: %s --install [SOURCE] DIR\n"
+ " if SOURCE not provided, will link itself\n"
" or: %s --list\n"
- " or: %s --createimg \n"
+ " or: %s --createimg IMG SIZE\n"
" create ext4 image, SIZE is interpreted in MB\n"
- " or: %s --imgsize \n"
- " or: %s --resizeimg \n"
+ " or: %s --imgsize IMG\n"
+ " or: %s --resizeimg IMG SIZE\n"
" SIZE is interpreted in MB\n"
- " or: %s --mountimg \n"
- " Prints out the loop device\n"
- " or: %s --umountimg \n"
+ " or: %s --mountimg IMG PATH\n"
+ " mount IMG to PATH and prints the loop device\n"
+ " or: %s --umountimg PATH LOOP\n"
" or: %s --[boot stage]\n"
" start boot stage service\n"
" or: %s [options]\n"
" or: applet [arguments]...\n"
"\n"
"Supported boot stages:\n"
- " post-fs, post-fs-data, service\n"
+ " post-fs, post-fs-data, service\n"
"\n"
"Options:\n"
- " -c print client version\n"
- " -v print daemon version\n"
- " -V print daemon version code\n"
+ " -c print client version\n"
+ " -v print daemon version\n"
+ " -V print daemon version code\n"
"\n"
"Supported applets:\n"
, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0, argv0);
for (int i = 0; applet[i]; ++i) {
- fprintf(stderr, i ? ", %s" : " %s", applet[i]);
+ fprintf(stderr, i ? ", %s" : " %s", applet[i]);
}
fprintf(stderr, "\n");
exit(1);
diff --git a/jni/magiskhide/magiskhide.c b/jni/magiskhide/magiskhide.c
index 5969010b1..d93b29819 100644
--- a/jni/magiskhide/magiskhide.c
+++ b/jni/magiskhide/magiskhide.c
@@ -29,13 +29,13 @@ void kill_proc(int pid) {
static void usage(char *arg0) {
fprintf(stderr,
"MagiskHide v" xstr(MAGISK_VERSION) "(" xstr(MAGISK_VER_CODE) ") (by topjohnwu) - Hide Magisk!\n\n"
- "%s [--options [arguments...] ]\n\n"
+ "Usage: %s [--options [arguments...] ]\n\n"
"Options:\n"
- " --enable: Start the magiskhide daemon\n"
- " --disable: Stop the magiskhide daemon\n"
- " --add : Add to the list\n"
- " --rm : Remove from the list\n"
- " --ls: Print out the current hide list\n"
+ " --enable Start magiskhide\n"
+ " --disable Stop magiskhide\n"
+ " --add PROCESS Add PROCESS to the hide list\n"
+ " --rm PROCESS Remove PROCESS from the hide list\n"
+ " --ls Print out the current hide list\n"
, arg0);
exit(1);
}
diff --git a/jni/magiskpolicy b/jni/magiskpolicy
index a0be47ab8..93b66d26f 160000
--- a/jni/magiskpolicy
+++ b/jni/magiskpolicy
@@ -1 +1 @@
-Subproject commit a0be47ab8b2e1d7778a73a5b5a8122b1881368b5
+Subproject commit 93b66d26ff86a22dec12cec862a7cdd1db50a454
diff --git a/jni/resetprop/resetprop.cpp b/jni/resetprop/resetprop.cpp
index 4ac9cd81c..458b4a750 100644
--- a/jni/resetprop/resetprop.cpp
+++ b/jni/resetprop/resetprop.cpp
@@ -1,10 +1,10 @@
/* resetprop.cpp - Manipulate any system props
- *
+ *
* Copyright 2016 nkk71
* Copyright 2016 topjohnwu
- *
+ *
* Info:
- *
+ *
* all changes are in
*
* bionic/libc/bionic/system_properties.cpp
@@ -26,23 +26,23 @@
*
* static prop_area* map_fd_ro(const int fd)
* we dont want this read only so change: 'PROT_READ' to 'PROT_READ | PROT_WRITE'
- *
+ *
*
* Copy the code of prop_info *prop_area::find_property, and modify to delete props
* const prop_info *prop_area::find_property_and_del(prop_bt *const trie, const char *name)
* {
- * ...
+ * ...
* ... Do not alloc a new prop_bt here, remove all code involve alloc_if_needed
* ...
- *
+ *
* if (prop_offset != 0) {
* atomic_store_explicit(¤t->prop, 0, memory_order_release); // Add this line to nullify the prop entry
* return to_prop_info(¤t->prop);
* } else {
- *
+ *
* ....
* }
- *
+ *
*
* by patching just those functions directly, all other functions should be ok
* as is.
@@ -98,14 +98,16 @@ static int usage(char* arg0) {
fprintf(stderr,
"resetprop v" xstr(MAGISK_VERSION) "(" xstr(MAGISK_VER_CODE) ") (by topjohnwu & nkk71) - System Props Modification Tool\n\n"
"Usage: %s [options] [args...]\n"
- "%s : Set property entry with \n"
- "%s --file : Load props from \n"
- "%s --delete : Remove prop entry \n"
"\n"
"Options:\n"
- " -v verbose output\n"
- " -n don't trigger events when changing props\n"
- " if used with deleteprop determines whether remove persist prop file\n"
+ " -v show verbose output\n"
+ " -n only modify property in memory\n"
+ "\n"
+ "%s NAME VALUE set property entry NAME with VALUE\n"
+ "%s --file FILE load props from FILE\n"
+ "%s --delete NAME remove prop entry NAME\n"
+ "\n"
+
, arg0, arg0, arg0, arg0);
return 1;
}
@@ -164,7 +166,7 @@ int setprop(const char *name, const char *value) {
int setprop2(const char *name, const char *value, const int trigger) {
if (init_resetprop()) return -1;
int ret;
-
+
prop_info *pi = (prop_info*) __system_property_find2(name);
if (pi != NULL) {
if (trigger) {
@@ -250,7 +252,7 @@ int read_prop_file(const char* filename, const int trigger) {
int resetprop_main(int argc, char *argv[]) {
int del = 0, file = 0, trigger = 1;
-
+
int exp_arg = 2;
char *name, *value, *filename;