diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/Async.java b/app/src/main/java/com/topjohnwu/magisk/utils/Async.java index 5989c324e..f408e3dff 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/Async.java +++ b/app/src/main/java/com/topjohnwu/magisk/utils/Async.java @@ -218,9 +218,8 @@ public class Async { protected boolean unzipAndCheck() { ZipUtils.unzip(mCachedFile, mCachedFile.getParentFile(), "META-INF/com/google/android"); - List ret; - ret = Utils.readFile(mCachedFile.getParent() + "/META-INF/com/google/android/updater-script"); - return Utils.isValidShellResponse(ret) && ret.get(0).contains("#MAGISK"); + String line = Utils.readFirstLine(mCachedFile.getParent() + "/META-INF/com/google/android/updater-script"); + return line != null && line.contains("#MAGISK"); } @Override diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java b/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java index 36a90e652..08aeddd1a 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java +++ b/app/src/main/java/com/topjohnwu/magisk/utils/Utils.java @@ -75,6 +75,17 @@ public class Utils { return ret; } + public static String readFirstLine(String path) { + List ret; + String command = "head -1 " + path; + if (Shell.rootAccess()) { + ret = Shell.su(command); + } else { + ret = Shell.sh(command); + } + return isValidShellResponse(ret) ? ret.get(0) : null; + } + public static void dlAndReceive(Context context, DownloadReceiver receiver, String link, String filename) { if (isDownloading) { return;