Final fixes

This commit is contained in:
topjohnwu 2017-02-06 08:16:48 +08:00
parent 6e28a26015
commit 45765e292d
4 changed files with 61 additions and 58 deletions

View File

@ -1,5 +1,6 @@
#!/system/bin/sh #!/system/bin/sh
[ -z $BOOTMODE ] && BOOTMODE=false
TMPDIR=/tmp TMPDIR=/tmp
($BOOTMODE) && TMPDIR=/dev/tmp ($BOOTMODE) && TMPDIR=/dev/tmp

View File

@ -82,44 +82,49 @@ public class InstallFragment extends Fragment implements CallbackHandler.EventLi
.setNegativeButton(R.string.no_thanks, null) .setNegativeButton(R.string.no_thanks, null)
.show(); .show();
}); });
uninstallButton.setOnClickListener(vi -> { if (Global.Info.magiskVersion < 10.3) {
Utils.getAlertDialogBuilder(getActivity()) uninstallButton.setVisibility(View.GONE);
.setTitle("Uninstall Magisk") } else {
.setMessage("This will remove all modules, MagiskSU, and potentially re-encrypt your device\nAre you sure to process?") uninstallButton.setOnClickListener(vi -> {
.setPositiveButton(R.string.yes, (dialogInterface, i) -> { Utils.getAlertDialogBuilder(getActivity())
try { .setTitle("Uninstall Magisk")
InputStream in = getActivity().getAssets().open(UNINSTALLER); .setMessage("This will remove all modules, MagiskSU, and potentially re-encrypt your device\nAre you sure to process?")
File uninstaller = new File(getActivity().getCacheDir().getAbsolutePath() + "/" + UNINSTALLER); .setPositiveButton(R.string.yes, (dialogInterface, i) -> {
FileOutputStream out = new FileOutputStream(uninstaller); try {
byte[] bytes = new byte[1024]; InputStream in = getActivity().getAssets().open(UNINSTALLER);
int read; File uninstaller = new File(getActivity().getCacheDir().getAbsolutePath() + "/" + UNINSTALLER);
while ((read = in.read(bytes)) != -1) FileOutputStream out = new FileOutputStream(uninstaller);
out.write(bytes, 0, read); byte[] bytes = new byte[1024];
in.close(); int read;
out.close(); while ((read = in.read(bytes)) != -1)
ProgressDialog progress = new ProgressDialog(getActivity()); out.write(bytes, 0, read);
progress.setTitle(R.string.reboot); in.close();
progress.show(); out.close();
new CountDownTimer(5000, 1000) { ProgressDialog progress = new ProgressDialog(getActivity());
@Override progress.setTitle(R.string.reboot);
public void onTick(long millisUntilFinished) { progress.show();
progress.setMessage(getString(R.string.reboot_countdown, millisUntilFinished / 1000)); new CountDownTimer(5000, 1000) {
} @Override
public void onTick(long millisUntilFinished) {
progress.setMessage(getString(R.string.reboot_countdown, millisUntilFinished / 1000));
}
@Override
public void onFinish() {
progress.setMessage(getString(R.string.reboot_countdown, 0));
Shell.su(true, "cp -af " + uninstaller + " /cache/" + UNINSTALLER,
"reboot");
}
}.start();
} catch (IOException e) {
e.printStackTrace();
}
})
.setNegativeButton(R.string.no_thanks, null)
.show();
});
}
@Override
public void onFinish() {
progress.setMessage(getString(R.string.reboot_countdown, 0));
Shell.su(true, "cp -af " + uninstaller + " /cache/" + UNINSTALLER,
"reboot");
}
}.start();
} catch (IOException e) {
e.printStackTrace();
}
})
.setNegativeButton(R.string.no_thanks, null)
.show();
});
if (Global.Events.blockDetectionDone.isTriggered) { if (Global.Events.blockDetectionDone.isTriggered) {
updateUI(); updateUI();
} }

View File

@ -16,14 +16,9 @@ public class SplashActivity extends AppCompatActivity {
// Init the info and configs and root shell // Init the info and configs and root shell
Global.init(getApplicationContext()); Global.init(getApplicationContext());
// Start MagiskHide if not started at boot
if (Global.Configs.magiskHide && !Global.Info.disabled && Global.Info.magiskVersion > 10.3)
new Async.MagiskHide().enable();
// Now fire all async tasks // Now fire all async tasks
new Async.LoadApps(getPackageManager()).exec();
new Async.GetBootBlocks().exec();
new Async.CheckUpdates().exec(); new Async.CheckUpdates().exec();
new Async.GetBootBlocks().exec();
new Async.LoadModules() { new Async.LoadModules() {
@Override @Override
protected void onPostExecute(Void v) { protected void onPostExecute(Void v) {
@ -31,6 +26,7 @@ public class SplashActivity extends AppCompatActivity {
new Async.LoadRepos(getApplicationContext()).exec(); new Async.LoadRepos(getApplicationContext()).exec();
} }
}.exec(); }.exec();
new Async.LoadApps(getPackageManager()).exec();
// Preparation done, now start main activity // Preparation done, now start main activity
Intent intent = new Intent(getApplicationContext(), MainActivity.class); Intent intent = new Intent(getApplicationContext(), MainActivity.class);

View File

@ -44,22 +44,23 @@ public class SuReceiver extends BroadcastReceiver {
SuLogEntry log = new SuLogEntry(policy); SuLogEntry log = new SuLogEntry(policy);
if (policy.notification && Global.Configs.suNotificationType == TOAST) { String message;
String message; switch (action) {
switch (action) { case "allow":
case "allow": message = context.getString(R.string.su_allow_toast, policy.appName);
message = context.getString(R.string.su_allow_toast, policy.appName); log.action = true;
log.action = true; break;
break; case "deny":
case "deny": message = context.getString(R.string.su_deny_toast, policy.appName);
message = context.getString(R.string.su_deny_toast, policy.appName); log.action = false;
log.action = false; break;
break; default:
default: return;
return;
}
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
} }
if (policy.notification && Global.Configs.suNotificationType == TOAST)
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
if (policy.logging) { if (policy.logging) {
toUid = intent.getIntExtra("to.uid", -1); toUid = intent.getIntExtra("to.uid", -1);
if (toUid < 0) return; if (toUid < 0) return;