diff --git a/src/main/kotlin/app/revanced/library/adb/AdbManager.kt b/src/main/kotlin/app/revanced/library/adb/AdbManager.kt index 1628a8a..632b30f 100644 --- a/src/main/kotlin/app/revanced/library/adb/AdbManager.kt +++ b/src/main/kotlin/app/revanced/library/adb/AdbManager.kt @@ -3,6 +3,7 @@ package app.revanced.library.adb import app.revanced.library.adb.AdbManager.Apk import app.revanced.library.adb.Constants.CREATE_DIR import app.revanced.library.adb.Constants.DELETE +import app.revanced.library.adb.Constants.GET_INSTALLED_PATH import app.revanced.library.adb.Constants.INSTALLATION_PATH import app.revanced.library.adb.Constants.INSTALL_MOUNT import app.revanced.library.adb.Constants.INSTALL_PATCHED_APK @@ -10,7 +11,6 @@ import app.revanced.library.adb.Constants.MOUNT_PATH import app.revanced.library.adb.Constants.MOUNT_SCRIPT import app.revanced.library.adb.Constants.PATCHED_APK_PATH import app.revanced.library.adb.Constants.PLACEHOLDER -import app.revanced.library.adb.Constants.RESOLVE_ACTIVITY import app.revanced.library.adb.Constants.RESTART import app.revanced.library.adb.Constants.TMP_PATH import app.revanced.library.adb.Constants.UMOUNT @@ -77,8 +77,8 @@ sealed class AdbManager private constructor(deviceSerial: String? = null) { val packageName = apk.packageName ?: throw PackageNameRequiredException() - device.run(RESOLVE_ACTIVITY, packageName).inputStream.bufferedReader().readLine().let { line -> - if (line != "No activity found") return@let + device.run(GET_INSTALLED_PATH, packageName).inputStream.bufferedReader().readLine().let { line -> + if (line != null) return@let throw throw FailedToFindInstalledPackageException(packageName) } @@ -105,6 +105,7 @@ sealed class AdbManager private constructor(deviceSerial: String? = null) { device.run(DELETE.applyReplacement(PATCHED_APK_PATH), packageName) device.run(DELETE, MOUNT_PATH.applyReplacement(packageName)) device.run(DELETE, TMP_PATH) + device.run(RESTART, packageName) super.uninstall(packageName) } diff --git a/src/main/kotlin/app/revanced/library/adb/Constants.kt b/src/main/kotlin/app/revanced/library/adb/Constants.kt index e190fe3..6c0181d 100644 --- a/src/main/kotlin/app/revanced/library/adb/Constants.kt +++ b/src/main/kotlin/app/revanced/library/adb/Constants.kt @@ -10,9 +10,8 @@ internal object Constants { internal const val DELETE = "rm -rf $PLACEHOLDER" internal const val CREATE_DIR = "mkdir -p" - internal const val RESOLVE_ACTIVITY = "pm resolve-activity --brief $PLACEHOLDER" - internal const val RESTART = "$RESOLVE_ACTIVITY | tail -n 1 | " + - "xargs am start -n && kill ${'$'}(pidof -s $PLACEHOLDER)" + internal const val RESTART = "am start -S $PLACEHOLDER" + internal const val GET_INSTALLED_PATH = "pm path $PLACEHOLDER" internal const val INSTALL_PATCHED_APK = "base_path=\"$PATCHED_APK_PATH\" && " + "mv $TMP_PATH ${'$'}base_path && " +