More improvements and fixes

This commit is contained in:
topjohnwu 2017-06-03 05:52:49 +08:00
parent 2cdbcc5666
commit ef8d9be633
3 changed files with 28 additions and 4 deletions

View File

@ -505,17 +505,30 @@ void post_fs_data(int client) {
if (access("/cache/data_bin", F_OK) == 0) { if (access("/cache/data_bin", F_OK) == 0) {
rm_rf(DATABIN); rm_rf(DATABIN);
rename("/cache/data_bin", DATABIN); rename("/cache/data_bin", DATABIN);
system("mv /cache/stock_boot* /data"); // Lazy.... use bash glob....
} }
// Magisk Manual Injector support
if (access("/data/local/tmp/magisk", F_OK) == 0) {
rm_rf(DATABIN);
rename("/data/local/tmp/magisk", DATABIN);
}
// Lazy.... use shell blob
system("mv /data/magisk/stock_boot* /data;");
// Merge images // Merge images
if (merge_img("/cache/magisk.img", MAINIMG)) if (merge_img("/cache/magisk.img", MAINIMG))
goto unblock; goto unblock;
if (merge_img("/data/magisk_merge.img", MAINIMG)) if (merge_img("/data/magisk_merge.img", MAINIMG))
goto unblock; goto unblock;
if (access(MAINIMG, F_OK) == -1 && create_img(MAINIMG, 64)) int new_img = 0;
if (access(MAINIMG, F_OK) == -1) {
if (create_img(MAINIMG, 64))
goto unblock; goto unblock;
new_img = 1;
}
LOGI("* Mounting " MAINIMG "\n"); LOGI("* Mounting " MAINIMG "\n");
// Mounting magisk image // Mounting magisk image
@ -523,6 +536,13 @@ void post_fs_data(int client) {
if (magiskloop == NULL) if (magiskloop == NULL)
goto unblock; goto unblock;
if (new_img) {
mkdir(COREDIR, 0755);
mkdir(COREDIR "/post-fs-data.d", 0755);
mkdir(COREDIR "/service.d", 0755);
mkdir(COREDIR "/props", 0755);
}
// Run common scripts // Run common scripts
LOGI("* Running post-fs-data.d scripts\n"); LOGI("* Running post-fs-data.d scripts\n");
exec_common_script("post-fs-data"); exec_common_script("post-fs-data");

View File

@ -141,7 +141,9 @@ int magiskhide_main(int argc, char *argv[]) {
} else if (strcmp(argv[1], "--rm") == 0 && argc > 2) { } else if (strcmp(argv[1], "--rm") == 0 && argc > 2) {
req = RM_HIDELIST; req = RM_HIDELIST;
} else if (strcmp(argv[1], "--ls") == 0) { } else if (strcmp(argv[1], "--ls") == 0) {
FILE *fp = xfopen(HIDELIST, "r"); FILE *fp = fopen(HIDELIST, "r");
if (fp == NULL)
return 1;
char buffer[512]; char buffer[512];
while (fgets(buffer, sizeof(buffer), fp)) { while (fgets(buffer, sizeof(buffer), fp)) {
printf("%s", buffer); printf("%s", buffer);

View File

@ -347,6 +347,8 @@ int clone_dir(const char *source, const char *target) {
} }
int rm_rf(const char *target) { int rm_rf(const char *target) {
if (access(target, F_OK) == -1)
return 0;
struct stat buf; struct stat buf;
xlstat(target, &buf); xlstat(target, &buf);
char *next; char *next;