Skip to content

Commit c1a5f4f

Browse files
committed
feat: Improve patcher detection using know packages names
Cleanup method and strings
1 parent c963d6e commit c1a5f4f

File tree

14 files changed

+70
-79
lines changed

14 files changed

+70
-79
lines changed

play-services-base/core/src/main/kotlin/org/microg/gms/ui/AppPreference.kt

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import androidx.appcompat.content.res.AppCompatResources
1515
import androidx.preference.Preference
1616
import androidx.preference.PreferenceViewHolder
1717
import org.microg.gms.base.core.R
18-
import java.util.Locale
18+
import org.microg.gms.utils.AppPatcherDetector
1919

2020
abstract class AppPreference : Preference {
2121
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
@@ -39,12 +39,12 @@ abstract class AppPreference : Preference {
3939
appVersion = null
4040
} else if (value != null) {
4141
val pm = context.packageManager
42-
title = value.loadLabel(pm) ?: value.packageName
42+
title = value.loadLabel(pm)
4343
icon = value.loadIcon(pm) ?: AppCompatResources.getDrawable(context, android.R.mipmap.sym_def_app_icon)
4444

4545
appVersion = try {
4646
pm.getPackageInfo(value.packageName, 0)?.versionName
47-
} catch (e: PackageManager.NameNotFoundException) {
47+
} catch (_: PackageManager.NameNotFoundException) {
4848
null
4949
}
5050
}
@@ -66,7 +66,7 @@ abstract class AppPreference : Preference {
6666

6767
appVersion = try {
6868
pm.getPackageInfo(value, 0)?.versionName
69-
} catch (e: PackageManager.NameNotFoundException) {
69+
} catch (_: PackageManager.NameNotFoundException) {
7070
null
7171
}
7272
}
@@ -76,39 +76,19 @@ abstract class AppPreference : Preference {
7676
override fun onBindViewHolder(holder: PreferenceViewHolder) {
7777
super.onBindViewHolder(holder)
7878

79-
val packageNameTextView: TextView? = holder.itemView.findViewById(R.id.package_name)
80-
val appVersionTextView: TextView? = holder.itemView.findViewById(R.id.version_name)
81-
val appPatcherTextView: TextView? = holder.itemView.findViewById(R.id.patcher_name)
79+
val packageNameTextView = holder.itemView.findViewById<TextView>(R.id.package_name)
80+
val appVersionTextView = holder.itemView.findViewById<TextView>(R.id.version_name)
81+
val appPatcherTextView = holder.itemView.findViewById<TextView>(R.id.patcher_name)
8282

83-
if (packageNameTextView != null && packageNameField != null) {
84-
packageNameTextView.text = packageNameField
85-
} else {
86-
packageNameTextView?.text = ""
87-
}
88-
89-
if (appVersionTextView != null && appVersion != null) {
90-
appVersionTextView.text = appVersion
91-
} else {
92-
appVersionTextView?.text = ""
93-
}
83+
packageNameTextView?.text = packageNameField ?: ""
84+
appVersionTextView?.text = appVersion ?: ""
9485

95-
val packageName = packageNameField.orEmpty().lowercase(Locale.ROOT)
96-
97-
val patcherText = when {
98-
packageName.contains(".vanced.android") -> context.getString(R.string.vanced)
99-
packageName.contains(".revanced.android") -> context.getString(R.string.revanced)
100-
packageName.contains(".rvx.android") -> context.getString(R.string.revanced_extended)
101-
packageName.contains(".rex.android") -> context.getString(R.string.youtube_advanced)
102-
packageName.contains(".rve.android") -> context.getString(R.string.revanced_extended_rufusin)
103-
packageName.contains("anddea.youtube") -> context.getString(R.string.revanced_extended_anddea)
104-
packageName.contains("bill.youtube") -> context.getString(R.string.revanced_extended_anddea)
105-
else -> ""
106-
}
86+
val patcherSource = AppPatcherDetector.getUsingPackageName(packageNameField)
10787

10888
appPatcherTextView?.let {
109-
if (patcherText.isNotEmpty()) {
89+
if (patcherSource != null) {
90+
it.text = context.getString(patcherSource)
11091
it.visibility = View.VISIBLE
111-
it.text = patcherText
11292
} else {
11393
it.visibility = View.GONE
11494
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.microg.gms.utils
2+
3+
import org.microg.gms.base.core.R
4+
import java.util.Locale
5+
6+
object AppPatcherDetector {
7+
8+
// TODO: Also need implement detection using apk signature.
9+
10+
private val KNOWN_PACKAGES = listOf(
11+
".morphe.android" to R.string.morphe,
12+
".vanced.android" to R.string.vanced,
13+
".revanced.android" to R.string.revanced,
14+
".rex.android" to R.string.youtube_advanced,
15+
".rvx.android" to R.string.revanced_extended,
16+
".rve.android" to R.string.revanced_extended_rufusin,
17+
"anddea.youtube" to R.string.revanced_extended_anddea,
18+
"bill.youtube" to R.string.revanced_extended_anddea
19+
)
20+
21+
fun getUsingPackageName(packageName: String?): Int? {
22+
if (packageName.isNullOrEmpty()) return null
23+
val pkgLower = packageName.lowercase(Locale.ROOT)
24+
return KNOWN_PACKAGES.firstOrNull { pkgLower.contains(it.first) }?.second
25+
}
26+
}

play-services-base/core/src/main/res/values/strings.xml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@
2424
<string name="service_status_enabled_short">On</string>
2525
<string name="service_status_disabled_short">Off</string>
2626

27-
<!-- Patchers names-->
27+
<!--patchers names-->
2828

29-
<string name="vanced">Vanced</string>
30-
<string name="revanced">ReVanced</string>
31-
<string name="youtube_advanced">YT Advanced</string>
32-
<string name="revanced_extended">ReVanced Extended</string>
33-
<string name="revanced_extended_anddea">ReVanced Extended (Anddea)</string>
34-
<string name="revanced_extended_rufusin">ReVanced Extended (Rufusin)</string>
29+
<string name="morphe" translatable="false">Morphe</string>
30+
<string name="vanced" translatable="false">Vanced</string>
31+
<string name="revanced" translatable="false">ReVanced</string>
32+
<string name="youtube_advanced" translatable="false">YT Advanced</string>
33+
<string name="revanced_extended" translatable="false">ReVanced Extended</string>
34+
<string name="revanced_extended_anddea" translatable="false">ReVanced Extended (Anddea)</string>
35+
<string name="revanced_extended_rufusin" translatable="false">ReVanced Extended (Rufusin)</string>
3536
</resources>

play-services-core/src/main/java/org/microg/tools/selfcheck/InstalledPackagesChecks.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public void doChecks(Context context, ResultCollector collector) {
4747
// addPackageInstalledAndSignedResult(context, collector, context.getString(R.string.self_check_pkg_gms), Constants.GMS_PACKAGE_NAME, Constants.GMS_PACKAGE_SIGNATURE_SHA1);
4848
// addPackageInstalledResult(context, collector, context.getString(R.string.self_check_pkg_vending), "com.android.vending");
4949
// addPackageInstalledResult(context, collector, context.getString(R.string.self_check_pkg_gsf), Constants.GSF_PACKAGE_NAME);
50+
checkInstalledPackage(context, collector, context.getString(R.string.morphe), ".morphe.android");
5051
checkInstalledPackage(context, collector, context.getString(R.string.revanced), ".revanced.android");
5152
checkInstalledPackage(context, collector, context.getString(R.string.revanced_extended), ".rvx.android");
5253
checkInstalledPackage(context, collector, context.getString(R.string.youtube_advanced), ".rex.android");
@@ -57,9 +58,9 @@ public void doChecks(Context context, ResultCollector collector) {
5758

5859
private void checkInstalledPackage(Context context, ResultCollector collector, String nicePackageName, String packageNameSubstring) {
5960
boolean packageExists = isPackageInstalled(context, packageNameSubstring);
60-
collector.addResult(context.getString(R.string.self_check_revanced_name_app_installed, nicePackageName),
61+
collector.addResult(context.getString(R.string.self_check_patched_app_installed, nicePackageName),
6162
packageExists ? Positive : Negative,
62-
context.getString(R.string.self_check_revanced_resolution_app_installed, nicePackageName));
63+
context.getString(R.string.self_check_resolution_patched_app_installed, nicePackageName));
6364
}
6465

6566
private boolean isPackageInstalled(Context context, String packageNameSubstring) {
@@ -80,13 +81,12 @@ private void addPackageInstalledAndSignedResult(Context context, ResultCollector
8081
}
8182
}
8283

83-
private boolean addPackageSignedResult(Context context, ResultCollector collector, String nicePackageName, String androidPackageName, String signatureHash) {
84+
private void addPackageSignedResult(Context context, ResultCollector collector, String nicePackageName, String androidPackageName, String signatureHash) {
8485
boolean hashMatches = signatureHash.equals(PackageUtils.firstSignatureDigest(context, androidPackageName));
8586
collector.addResult(context.getString(R.string.self_check_name_correct_sig, nicePackageName),
8687
hashMatches ? Positive : Negative,
8788
context.getString(R.string.self_check_resolution_correct_sig, nicePackageName),
8889
fragment -> tryGrantFakeSignaturePermissionActivity(fragment, androidPackageName));
89-
return hashMatches;
9090
}
9191

9292
private void tryGrantFakeSignaturePermissionActivity(Fragment fragment, String androidPackageName) {

play-services-core/src/main/res/values-ar/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@
8383
<string name="self_check_name_battery_optimizations">تجاهل تحسينات البطارية</string>
8484
<string name="self_check_resolution_battery_optimizations">اضغط هنا لتعطيل تحسينات البطارية. عدم القيام بذلك قد يؤدي إلى مشاكل في تلقي الإشعارات من YouTube والتطبيقات الأخرى المسجلة</string>
8585

86-
<string name="self_check_revanced_name_app_installed">تشغيل مع <xliff:g example="F-Droid">%1$s</xliff:g></string>
87-
<string name="self_check_revanced_resolution_app_installed">تطبيقات <xliff:g example="F-Droid">%1$s</xliff:g> غير موجودة، قم بتجميع أو تثبيت ملف apk معدل</string>
86+
<string name="self_check_patched_app_installed">تشغيل مع <xliff:g example="F-Droid">%1$s</xliff:g></string>
87+
<string name="self_check_resolution_patched_app_installed">تطبيقات <xliff:g example="F-Droid">%1$s</xliff:g> غير موجودة، قم بتجميع أو تثبيت ملف apk معدل</string>
8888

8989
<!-- Settings strings -->
9090

play-services-core/src/main/res/values-in/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ Ini mungkin memerlukan beberapa menit"</string>
8181
<string name="self_check_name_battery_optimizations">Optimasi baterai diabaikan</string>
8282
<string name="self_check_resolution_battery_optimizations">Ketuk di sini untuk menonaktifkan optimasi baterai. Tidak melakukannya dapat menyebabkan masalah dalam menerima notifikasi dari YouTube dan aplikasi terdaftar lainnya</string>
8383

84-
<string name="self_check_revanced_name_app_installed">Berjalan dengan <xliff:g example="F-Droid">%1$s</xliff:g></string>
85-
<string name="self_check_revanced_resolution_app_installed">Aplikasi <xliff:g example="F-Droid">%1$s</xliff:g> tidak ditemukan, kompilasi atau instal apk yang dimodifikasi</string>
84+
<string name="self_check_patched_app_installed">Berjalan dengan <xliff:g example="F-Droid">%1$s</xliff:g></string>
85+
<string name="self_check_resolution_patched_app_installed">Aplikasi <xliff:g example="F-Droid">%1$s</xliff:g> tidak ditemukan, kompilasi atau instal apk yang dimodifikasi</string>
8686

8787
<!-- Settings strings -->
8888

play-services-core/src/main/res/values-it/strings.xml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,8 @@ Questo potrebbe richiedere qualche minuto"</string>
8484
<string name="self_check_name_battery_optimizations">Ottimizzazioni batteria ignorate</string>
8585
<string name="self_check_resolution_battery_optimizations">Tocca qui per ignorare le ottimizzazioni della batteria. Continuare a concederle potrebbe impedire la ricezione di notifiche da YouTube o da altre app registrate</string>
8686

87-
<string name="self_check_pkg_revanced">ReVanced</string>
88-
<string name="self_check_pkg_revanced_extended">ReVanced Extended</string>
89-
<string name="self_check_pkg_youtube_advanced">YT Advanced</string>
90-
<string name="self_check_pkg_vanced">Vanced</string>
91-
<string name="self_check_revanced_name_app_installed">In esecuzione su <xliff:g example="F-Droid">%1$s</xliff:g></string>
92-
<string name="self_check_revanced_resolution_app_installed">App <xliff:g example="F-Droid">%1$s</xliff:g> non trovata, compila o installa una versione modificata</string>
87+
<string name="self_check_patched_app_installed">In esecuzione su <xliff:g example="F-Droid">%1$s</xliff:g></string>
88+
<string name="self_check_resolution_patched_app_installed">App <xliff:g example="F-Droid">%1$s</xliff:g> non trovata, compila o installa una versione modificata</string>
9389

9490
<!-- Settings strings -->
9591

play-services-core/src/main/res/values-pl/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@
7070
<string name="self_check_name_battery_optimizations">Ignorowanie optymalizacji baterii</string>
7171
<string name="self_check_resolution_battery_optimizations">Stuknij tutaj, aby wyłączyć optymalizację baterii. W przeciwnym razie mogą wystąpić problemy z otrzymywaniem powiadomień z YouTube i innych zarejestrowanych aplikacji</string>
7272

73-
<string name="self_check_revanced_name_app_installed">Uruchamianie <xliff:g example="F-Droid">%1$s</xliff:g></string>
74-
<string name="self_check_revanced_resolution_app_installed"><xliff:g example="F-Droid">Aplikacja %1$s</xliff:g> nie została znaleziona, skompiluj lub zainstaluj zmodyfikowany apk</string>
73+
<string name="self_check_patched_app_installed">Uruchamianie <xliff:g example="F-Droid">%1$s</xliff:g></string>
74+
<string name="self_check_resolution_patched_app_installed"><xliff:g example="F-Droid">Aplikacja %1$s</xliff:g> nie została znaleziona, skompiluj lub zainstaluj zmodyfikowany apk</string>
7575

7676
<!-- Ustawienia -->
7777

play-services-core/src/main/res/values-pt-rBR/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ Isso pode levar alguns minutos. Por favor, seja paciente."</string>
8181
<string name="self_check_name_battery_optimizations">Otimização de bateria ignorada</string>
8282
<string name="self_check_resolution_battery_optimizations">Toque aqui para desativar as otimizações de bateria. Não fazer isso pode resultar em problemas no recebimento de notificações do YouTube e outros aplicativos registrados</string>
8383

84-
<string name="self_check_revanced_name_app_installed">Executando com <xliff:g example="F-Droid">%1$s</xliff:g></string>
85-
<string name="self_check_revanced_resolution_app_installed">Aplicativos <xliff:g example="F-Droid">%1$s</xliff:g> não encontrados, compile ou instale um apk modificado</string>
84+
<string name="self_check_patched_app_installed">Executando com <xliff:g example="F-Droid">%1$s</xliff:g></string>
85+
<string name="self_check_resolution_patched_app_installed">Aplicativos <xliff:g example="F-Droid">%1$s</xliff:g> não encontrados, compile ou instale um apk modificado</string>
8686

8787
<!-- Settings strings -->
8888

play-services-core/src/main/res/values-ru/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@
8282
<string name="self_check_name_battery_optimizations">Игнорирование оптимизаций батареи</string>
8383
<string name="self_check_resolution_battery_optimizations">Нажмите здесь, чтобы отключить оптимизации батареи. Без этого вы можете не получать уведомления от YouTube и других зарегистрированных приложений</string>
8484

85-
<string name="self_check_revanced_name_app_installed">Запущено с <xliff:g example="F-Droid">%1$s</xliff:g></string>
86-
<string name="self_check_revanced_resolution_app_installed"><xliff:g example="F-Droid">%1$s</xliff:g> приложения не найдены, скомпилируйте или установите модифицированный apk</string>
85+
<string name="self_check_patched_app_installed">Запущено с <xliff:g example="F-Droid">%1$s</xliff:g></string>
86+
<string name="self_check_resolution_patched_app_installed"><xliff:g example="F-Droid">%1$s</xliff:g> приложения не найдены, скомпилируйте или установите модифицированный apk</string>
8787

8888
<!-- Settings strings -->
8989

0 commit comments

Comments
 (0)