Skip to content

Commit 88ada1f

Browse files
committed
Adjust chmod and add restorecon to app_process/libdaemonize
This may prevent some EACCESS issues and allow the non-root app to clear left-over files.
1 parent 89360b4 commit 88ada1f

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

librootjava/src/main/java/eu/chainfire/librootjava/AppProcess.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,14 +321,17 @@ public static String getAppProcessRelocate(Context context, String appProcessBas
321321
}
322322
}
323323

324+
boolean onData = path.startsWith("/data/");
325+
324326
String appProcessCopy;
325327
if (guessIfAppProcessIs64Bits(appProcessBase)) {
326328
appProcessCopy = path + "/.app_process64_" + uuid;
327329
} else {
328330
appProcessCopy = path + "/.app_process32_" + uuid;
329331
}
330332
preLaunch.add(String.format(Locale.ENGLISH, "%s cp %s %s >/dev/null 2>/dev/null", box, appProcessBase, appProcessCopy));
331-
preLaunch.add(String.format(Locale.ENGLISH, "%s chmod 0700 %s >/dev/null 2>/dev/null", box, appProcessCopy));
333+
preLaunch.add(String.format(Locale.ENGLISH, "%s chmod %s %s >/dev/null 2>/dev/null", box, onData ? "0766" : "0700", appProcessCopy));
334+
if (onData) preLaunch.add(String.format(Locale.ENGLISH, "restorecon %s >/dev/null 2>/dev/null", appProcessCopy));
332335
postExecution.add(String.format(Locale.ENGLISH, "%s rm %s >/dev/null 2>/dev/null", box, appProcessCopy));
333336
return appProcessCopy;
334337
}

librootjavadaemon/src/main/java/eu/chainfire/librootjavadaemon/RootDaemon.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,11 @@ public static List<String> patchLaunchScript(Context context, List<String> scrip
7676
// copy our executable
7777
String libSrc = RootJava.getLibraryPath(context, "daemonize");
7878
String libDest = app_process_path + "/.daemonize_" + AppProcess.uuid;
79+
boolean onData = libDest.startsWith("/data/");
80+
7981
ret.add(String.format(Locale.ENGLISH, "%s cp %s %s >/dev/null 2>/dev/null", AppProcess.box, libSrc, libDest));
80-
ret.add(String.format(Locale.ENGLISH, "%s chmod 0700 %s >/dev/null 2>/dev/null", AppProcess.box, libDest));
82+
ret.add(String.format(Locale.ENGLISH, "%s chmod %s %s >/dev/null 2>/dev/null", AppProcess.box, onData ? "0766" : "0700", libDest));
83+
if (onData) ret.add(String.format(Locale.ENGLISH, "restorecon %s >/dev/null 2>/dev/null", libDest));
8184

8285
// inject executable into command
8386
int idx = line.indexOf(app_process);

0 commit comments

Comments
 (0)