Add root install back

This commit is contained in:
vvb2060 2022-02-17 17:40:30 +08:00 committed by John Wu
parent 563a587882
commit 237794b05c

View File

@ -14,6 +14,7 @@ import com.topjohnwu.magisk.core.Provider
import com.topjohnwu.magisk.core.utils.AXML
import com.topjohnwu.magisk.core.utils.Keygen
import com.topjohnwu.magisk.di.ServiceLocator
import com.topjohnwu.magisk.ktx.await
import com.topjohnwu.magisk.ktx.writeTo
import com.topjohnwu.magisk.signing.JarMap
import com.topjohnwu.magisk.signing.SignApk
@ -25,6 +26,7 @@ import kotlinx.coroutines.Runnable
import kotlinx.coroutines.withContext
import timber.log.Timber
import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.io.OutputStream
import java.security.SecureRandom
@ -115,18 +117,23 @@ object HideAPK {
}
// Generate a new random package name and signature
val repack = File(activity.cacheDir, "patched.apk")
val pkg = genPackageName()
Config.keyStoreRaw = ""
if (!patch(activity, stub, FileOutputStream(repack), pkg, label))
return false
// Install and auto launch app
val session = APKInstall.startSession(activity, pkg, onFailure) {
launchApp(activity, pkg)
}
val cmd = "adb_pm_install $repack ${activity.applicationInfo.uid}"
if (Shell.su(cmd).exec().isSuccess) return true
try {
val success = session.openStream(activity).use {
patch(activity, stub, it, pkg, label)
}
if (!success) return false
session.install(activity, repack)
} catch (e: IOException) {
Timber.e(e)
return false
@ -170,6 +177,8 @@ object HideAPK {
launchApp(activity, APPLICATION_ID)
dialog.dismiss()
}
val cmd = "adb_pm_install $apk ${activity.applicationInfo.uid}"
if (Shell.su(cmd).await().isSuccess) return
val success = withContext(Dispatchers.IO) {
try {
session.install(activity, apk)