Improve application startup

This commit is contained in:
topjohnwu 2020-02-27 12:54:42 -08:00
parent b90e0430f8
commit 758777111a

View File

@ -8,6 +8,8 @@ import com.topjohnwu.magisk.core.tasks.patchDTB
import com.topjohnwu.magisk.core.utils.Utils import com.topjohnwu.magisk.core.utils.Utils
import com.topjohnwu.magisk.core.view.Notifications import com.topjohnwu.magisk.core.view.Notifications
import com.topjohnwu.magisk.core.view.Shortcuts import com.topjohnwu.magisk.core.view.Shortcuts
import com.topjohnwu.magisk.data.network.GithubRawServices
import com.topjohnwu.magisk.extensions.get
import com.topjohnwu.magisk.model.navigation.Navigation import com.topjohnwu.magisk.model.navigation.Navigation
import com.topjohnwu.superuser.Shell import com.topjohnwu.superuser.Shell
@ -19,20 +21,20 @@ open class SplashActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
Shell.getShell { initAndStart() } Shell.getShell { Shell.EXECUTOR.execute(this::initAndStart) }
} }
private fun handleRepackage() { private fun handleRepackage() {
val pkg = Config.suManager val pkg = Config.suManager
if (Config.suManager.isNotEmpty() && packageName == BuildConfig.APPLICATION_ID) { if (Config.suManager.isNotEmpty() && packageName == BuildConfig.APPLICATION_ID) {
Config.suManager = "" Config.suManager = ""
Shell.su("pm uninstall $pkg").submit() Shell.su("(pm uninstall $pkg)& >/dev/null 2>&1").exec()
} }
if (pkg == packageName) { if (pkg == packageName) {
runCatching { runCatching {
// We are the manager, remove com.topjohnwu.magisk as it could be malware // We are the manager, remove com.topjohnwu.magisk as it could be malware
packageManager.getApplicationInfo(BuildConfig.APPLICATION_ID, 0) packageManager.getApplicationInfo(BuildConfig.APPLICATION_ID, 0)
Shell.su("pm uninstall " + BuildConfig.APPLICATION_ID).submit() Shell.su("(pm uninstall ${BuildConfig.APPLICATION_ID})& >/dev/null 2>&1").exec()
} }
} }
} }
@ -47,6 +49,9 @@ open class SplashActivity : Activity() {
// Patch DTB partitions if needed // Patch DTB partitions if needed
patchDTB(this) patchDTB(this)
// Pre-fetch network stuffs
get<GithubRawServices>()
DONE = true DONE = true
Navigation.start(intent, this) Navigation.start(intent, this)
finish() finish()