AppInstaller: Check if microG services enable app installer or not
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -25,7 +25,10 @@ import android.content.Intent
|
|||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.util.Log
|
||||||
import androidx.core.content.pm.PackageInfoCompat
|
import androidx.core.content.pm.PackageInfoCompat
|
||||||
|
import com.aurora.Constants.PACKAGE_NAME_GMS
|
||||||
|
import com.aurora.Constants.PACKAGE_NAME_PLAY_STORE
|
||||||
import com.aurora.extensions.getUpdateOwnerPackageNameCompat
|
import com.aurora.extensions.getUpdateOwnerPackageNameCompat
|
||||||
import com.aurora.extensions.isOAndAbove
|
import com.aurora.extensions.isOAndAbove
|
||||||
import com.aurora.extensions.isPAndAbove
|
import com.aurora.extensions.isPAndAbove
|
||||||
@@ -36,7 +39,6 @@ import com.aurora.store.data.installer.base.IInstaller
|
|||||||
import com.aurora.store.data.model.Installer
|
import com.aurora.store.data.model.Installer
|
||||||
import com.aurora.store.data.model.InstallerInfo
|
import com.aurora.store.data.model.InstallerInfo
|
||||||
import com.aurora.store.util.PackageUtil
|
import com.aurora.store.util.PackageUtil
|
||||||
import com.aurora.store.util.PackageUtil.hasMicroGCompanion
|
|
||||||
import com.aurora.store.util.Preferences
|
import com.aurora.store.util.Preferences
|
||||||
import com.aurora.store.util.Preferences.PREFERENCE_INSTALLER_ID
|
import com.aurora.store.util.Preferences.PREFERENCE_INSTALLER_ID
|
||||||
import com.topjohnwu.superuser.Shell
|
import com.topjohnwu.superuser.Shell
|
||||||
@@ -79,7 +81,7 @@ class AppInstaller @Inject constructor(
|
|||||||
if (hasAuroraService(context)) ServiceInstaller.installerInfo else null,
|
if (hasAuroraService(context)) ServiceInstaller.installerInfo else null,
|
||||||
if (hasAppManager(context)) AMInstaller.installerInfo else null,
|
if (hasAppManager(context)) AMInstaller.installerInfo else null,
|
||||||
if (hasShizukuOrSui(context)) ShizukuInstaller.installerInfo else null,
|
if (hasShizukuOrSui(context)) ShizukuInstaller.installerInfo else null,
|
||||||
if (hasMicroGCompanion(context)) MicroGInstaller.installerInfo else null
|
if (hasMicroGInstaller(context)) MicroGInstaller.installerInfo else null
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -150,6 +152,21 @@ class AppInstaller @Inject constructor(
|
|||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun hasMicroGInstaller(context: Context): Boolean {
|
||||||
|
if (!PackageUtil.hasMicroGCompanion(context)) return false
|
||||||
|
return try {
|
||||||
|
val metadata = PackageUtil.getPackageInfo(
|
||||||
|
context,
|
||||||
|
PACKAGE_NAME_GMS,
|
||||||
|
PackageManager.GET_META_DATA
|
||||||
|
).applicationInfo?.metaData
|
||||||
|
|
||||||
|
metadata?.getBoolean("org.microg.gms.settings.vending_apps_install", false) ?: false
|
||||||
|
} catch (_: Exception) {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun hasAppManager(context: Context): Boolean =
|
fun hasAppManager(context: Context): Boolean =
|
||||||
PackageUtil.isInstalled(context, AMInstaller.AM_PACKAGE_NAME) or
|
PackageUtil.isInstalled(context, AMInstaller.AM_PACKAGE_NAME) or
|
||||||
PackageUtil.isInstalled(context, AMInstaller.AM_DEBUG_PACKAGE_NAME)
|
PackageUtil.isInstalled(context, AMInstaller.AM_DEBUG_PACKAGE_NAME)
|
||||||
@@ -202,7 +219,7 @@ class AppInstaller @Inject constructor(
|
|||||||
defaultInstaller
|
defaultInstaller
|
||||||
}
|
}
|
||||||
|
|
||||||
Installer.MICROG -> if (hasMicroGCompanion(context)) {
|
Installer.MICROG -> if (hasMicroGInstaller(context)) {
|
||||||
microGInstaller
|
microGInstaller
|
||||||
} else {
|
} else {
|
||||||
defaultInstaller
|
defaultInstaller
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import com.aurora.store.data.installer.base.InstallerBase
|
|||||||
import com.aurora.store.data.model.Installer
|
import com.aurora.store.data.model.Installer
|
||||||
import com.aurora.store.data.model.InstallerInfo
|
import com.aurora.store.data.model.InstallerInfo
|
||||||
import com.aurora.store.data.room.download.Download
|
import com.aurora.store.data.room.download.Download
|
||||||
import com.aurora.store.util.PackageUtil.hasMicroGCompanion
|
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -69,7 +68,7 @@ class MicroGInstaller @Inject constructor(
|
|||||||
Log.i(TAG, "${download.packageName} already queued")
|
Log.i(TAG, "${download.packageName} already queued")
|
||||||
}
|
}
|
||||||
|
|
||||||
hasMicroGCompanion(context) -> {
|
AppInstaller.hasMicroGInstaller(context) -> {
|
||||||
Log.i(TAG, "Received microG install request for ${download.packageName}")
|
Log.i(TAG, "Received microG install request for ${download.packageName}")
|
||||||
|
|
||||||
val files = getFiles(download.packageName, download.versionCode)
|
val files = getFiles(download.packageName, download.versionCode)
|
||||||
|
|||||||
Reference in New Issue
Block a user