Improve: Dont Check Root Permission Recursively

This commit is contained in:
LooKeR 2021-11-12 19:39:46 +05:30
parent df8dc09897
commit 06f6d2b56c

View File

@ -3,7 +3,6 @@ package com.looker.droidify.installer
import android.content.Context import android.content.Context
import android.util.Log import android.util.Log
import com.looker.droidify.content.Cache import com.looker.droidify.content.Cache
import com.looker.droidify.utility.Utils.rootInstallerEnabled
import com.looker.droidify.utility.extension.android.Android import com.looker.droidify.utility.extension.android.Android
import com.topjohnwu.superuser.Shell import com.topjohnwu.superuser.Shell
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -23,36 +22,32 @@ class RootInstaller(context: Context) : BaseInstaller(context) {
override suspend fun uninstall(packageName: String) = mRootUninstaller(packageName) override suspend fun uninstall(packageName: String) = mRootUninstaller(packageName)
private suspend fun mRootInstaller(cacheFile: File) { private suspend fun mRootInstaller(cacheFile: File) {
if (rootInstallerEnabled) { val installCommand =
val installCommand = String.format(
String.format( ROOT_INSTALL_PACKAGE,
ROOT_INSTALL_PACKAGE, cacheFile.absolutePath,
cacheFile.absolutePath, getCurrentUserState,
getCurrentUserState, cacheFile.length()
cacheFile.length() )
) val deleteCommand =
val deleteCommand = String.format(
String.format( DELETE_PACKAGE,
DELETE_PACKAGE, getUtilBoxPath,
getUtilBoxPath, cacheFile.absolutePath.quote
cacheFile.absolutePath.quote )
) withContext(Dispatchers.IO) {
withContext(Dispatchers.IO) { launch {
launch { Shell.su(installCommand).submit {
Shell.su(installCommand).submit { if (it.isSuccess) Shell.su(deleteCommand).submit()
if (it.isSuccess) Shell.su(deleteCommand).submit()
}
} }
} }
} }
} }
private suspend fun mRootUninstaller(packageName: String) { private suspend fun mRootUninstaller(packageName: String) {
if (rootInstallerEnabled) { val uninstallCommand =
val uninstallCommand = String.format(ROOT_UNINSTALL_PACKAGE, getCurrentUserState, packageName)
String.format(ROOT_UNINSTALL_PACKAGE, getCurrentUserState, packageName) withContext(Dispatchers.IO) { launch { Shell.su(uninstallCommand).submit() } }
withContext(Dispatchers.IO) { launch { Shell.su(uninstallCommand).submit() } }
}
} }
private val getCurrentUserState: String = private val getCurrentUserState: String =