From 38ab6858f08a29fc061aced749a6227f5b7b527a Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Tue, 23 Aug 2022 05:10:18 -0700 Subject: [PATCH] Do not crash root service in stub --- .../java/com/topjohnwu/magisk/DynLoad.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/stub/src/main/java/com/topjohnwu/magisk/DynLoad.java b/stub/src/main/java/com/topjohnwu/magisk/DynLoad.java index 700ae089c..2807bade9 100644 --- a/stub/src/main/java/com/topjohnwu/magisk/DynLoad.java +++ b/stub/src/main/java/com/topjohnwu/magisk/DynLoad.java @@ -60,20 +60,24 @@ public class DynLoad { // Copy from external for easier development if (BuildConfig.DEBUG) { - File external = new File(context.getExternalFilesDir(null), "magisk.apk"); - if (external.exists()) { - try { - var in = new FileInputStream(external); - var out = new FileOutputStream(apk); - try (in; out) { - APKInstall.transfer(in, out); + try { + File external = new File(context.getExternalFilesDir(null), "magisk.apk"); + if (external.exists()) { + try { + var in = new FileInputStream(external); + var out = new FileOutputStream(apk); + try (in; out) { + APKInstall.transfer(in, out); + } + } catch (IOException e) { + Log.e(DynLoad.class.getSimpleName(), "", e); + apk.delete(); + } finally { + external.delete(); } - } catch (IOException e) { - Log.e(DynLoad.class.getSimpleName(), "", e); - apk.delete(); - } finally { - external.delete(); } + } catch (SecurityException e) { + // Do not crash in root service } }