From 36c575023eae67bba30690c49e641f8344b80e50 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Tue, 23 Aug 2016 03:50:46 +0800 Subject: [PATCH] Remove unnecessary root calls --- app/src/main/AndroidManifest.xml | 12 +++++------ .../com/topjohnwu/magisk/WelcomeActivity.java | 4 ++++ .../com/topjohnwu/magisk/ui/LogFragment.java | 10 +++++++-- .../topjohnwu/magisk/ui/ModulesFragment.java | 10 +++++++-- .../com/topjohnwu/magisk/ui/utils/Utils.java | 21 ++++++++++++++++--- 5 files changed, 44 insertions(+), 13 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0344417bc..007ea3fdc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,13 +12,13 @@ android:supportsRtl="true" android:theme="@style/AppTheme" tools:ignore="AllowBackup,GoogleAppIndexingWarning"> - - - + + + - - - + + + diff --git a/app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java b/app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java index d5b64b2ed..141f2329a 100644 --- a/app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java +++ b/app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java @@ -19,6 +19,7 @@ import android.view.View; import com.topjohnwu.magisk.ui.LogFragment; import com.topjohnwu.magisk.ui.ModulesFragment; import com.topjohnwu.magisk.ui.RootFragment; +import com.topjohnwu.magisk.ui.utils.Utils; import butterknife.BindView; import butterknife.ButterKnife; @@ -44,6 +45,9 @@ public class WelcomeActivity extends AppCompatActivity implements NavigationView getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } + Utils.initialize.execute(); + + setSupportActionBar(toolbar); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) { diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/LogFragment.java b/app/src/main/java/com/topjohnwu/magisk/ui/LogFragment.java index 4616ad4d6..a5235d785 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/LogFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/ui/LogFragment.java @@ -35,6 +35,7 @@ import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.util.Calendar; +import java.util.concurrent.ExecutionException; import butterknife.BindView; import butterknife.ButterKnife; @@ -226,13 +227,18 @@ public class LogFragment extends Fragment { @Override protected void onPreExecute() { - Utils.su("chmod 755 /cache"); - Utils.su("chmod 644 /cache/magisk.log"); txtLog.setText(""); } @Override protected String doInBackground(File... log) { + // Ensure initialize is done + try { + Utils.initialize.get(); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + Thread.currentThread().setPriority(Thread.NORM_PRIORITY + 2); StringBuilder llog = new StringBuilder(15 * 10 * 1024); diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/ModulesFragment.java b/app/src/main/java/com/topjohnwu/magisk/ui/ModulesFragment.java index 2b3027803..4dee33a3b 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/ModulesFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/ui/ModulesFragment.java @@ -21,6 +21,7 @@ import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutionException; import butterknife.BindView; import butterknife.ButterKnife; @@ -81,6 +82,13 @@ public class ModulesFragment extends Fragment { @Override protected Boolean doInBackground(Void... voids) { + // Ensure initialize is done + try { + Utils.initialize.get(); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + File[] magisk = new File(MAGISK_PATH).listFiles(new FileFilter() { @Override public boolean accept(File file) { @@ -88,8 +96,6 @@ public class ModulesFragment extends Fragment { } }); - Utils.su("chmod 755 /cache"); - File[] magiskCache = new File(MAGISK_CACHE_PATH).listFiles(new FileFilter() { @Override public boolean accept(File file) { diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/utils/Utils.java b/app/src/main/java/com/topjohnwu/magisk/ui/utils/Utils.java index 48588823f..f4572f487 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/utils/Utils.java +++ b/app/src/main/java/com/topjohnwu/magisk/ui/utils/Utils.java @@ -1,5 +1,7 @@ package com.topjohnwu.magisk.ui.utils; +import android.os.AsyncTask; + import java.util.List; import eu.chainfire.libsuperuser.Shell; @@ -7,7 +9,22 @@ import eu.chainfire.libsuperuser.Shell; public class Utils { public static final String suPath = sh("getprop magisk.supath"); - public static final boolean rootAccess = isRoot(); + public static boolean rootAccess = false; + public static Init initialize = new Init(); + + public static class Init extends AsyncTask { + + @Override + protected Void doInBackground(Void... voids) { + // Check root access + rootAccess = isRoot(); + // Permission for java code to read /cache files + if (rootAccess) { + su("chmod 755 /cache", "chmod 644 /cache/magisk.log"); + } + return null; + } + } public static String sh(String... commands) { List result = Shell.SH.run(commands); @@ -28,8 +45,6 @@ public class Utils { builder.append(s); } - Shell.SU.available(); - return builder.toString(); }