From 214bc4ca3712a204fee2030ce59216a462cc31d0 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Fri, 13 Dec 2024 10:39:21 +0700 Subject: [PATCH] PackageInfo: Filter out more core AOSP system apps Most core AOSP system apps have Android version as versionName and SDK level as versionCode. Filter these system apps out. Signed-off-by: Aayush Gupta --- .../main/java/com/aurora/extensions/PackageInfo.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/aurora/extensions/PackageInfo.kt b/app/src/main/java/com/aurora/extensions/PackageInfo.kt index 9d3064488..4a57d3859 100644 --- a/app/src/main/java/com/aurora/extensions/PackageInfo.kt +++ b/app/src/main/java/com/aurora/extensions/PackageInfo.kt @@ -1,14 +1,23 @@ package com.aurora.extensions +import android.content.pm.ApplicationInfo import android.content.pm.PackageInfo import android.content.pm.PackageManager +import android.os.Build import android.os.Process +import androidx.core.content.pm.PackageInfoCompat fun PackageInfo.isValidApp(packageManager: PackageManager): Boolean { if (this.applicationInfo == null || this.packageName.isEmpty()) return false - // Most core AOSP system apps use their package name as label - if (this.applicationInfo!!.loadLabel(packageManager).startsWith(this.packageName)) return false + // Filter out core AOSP system apps + if (this.applicationInfo!!.flags and ApplicationInfo.FLAG_SYSTEM != 0) { + if (this.packageName.endsWith(".resources")) return false + if (this.applicationInfo!!.loadLabel(packageManager).startsWith(this.packageName)) return false + if (this.versionName?.endsWith("system image") == true) return false + if (this.versionName?.endsWith("-initial") == true) return false + if (this.versionName == Build.VERSION.RELEASE && PackageInfoCompat.getLongVersionCode(this) == Build.VERSION.SDK_INT.toLong()) return false + } return when { isQAndAbove -> {