Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
96d6aea
Fix build issues
omeritzics Feb 12, 2026
02eb408
Update lib/pages/apps.dart
omeritzics Feb 12, 2026
0a62e0b
Fix
omeritzics Feb 12, 2026
f64e46e
Bump Material Color Utilities
omeritzics Feb 12, 2026
74cf14c
Merge pull request #133 from omeritzics/dev
omeritzics Feb 12, 2026
e6eaf12
Update strings
omeritzics Feb 12, 2026
c6bfeb5
Update strings
omeritzics Feb 12, 2026
ad6f74b
Fix
omeritzics Feb 12, 2026
0bef50a
Update lib/pages/apps.dart
omeritzics Feb 12, 2026
6922d46
Update lib/pages/import_export.dart
omeritzics Feb 12, 2026
0f003b4
style: auto-fix linting and formatting issues
omeritzics Feb 12, 2026
63ae8a3
Merge pull request #134 from omeritzics/dev
omeritzics Feb 12, 2026
9c89d8c
Update
omeritzics Feb 12, 2026
821d941
Merge branch 'dev' of https://github.com/omeritzics/Updatium into dev
omeritzics Feb 12, 2026
6a41340
Fix
omeritzics Feb 12, 2026
0435530
Merge pull request #136 from omeritzics/dev
omeritzics Feb 12, 2026
9e5f759
Fix #4
omeritzics Feb 12, 2026
d6affd3
Merge pull request #137 from omeritzics/dev
omeritzics Feb 12, 2026
35cadd8
Fix #5
omeritzics Feb 12, 2026
65538d8
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
0b35656
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
c18f144
Patches
omeritzics Feb 12, 2026
be02278
style: auto-fix linting and formatting issues
omeritzics Feb 12, 2026
acaa18b
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
e248f06
Update lib/services/enhanced_icon_prefetcher.dart
omeritzics Feb 12, 2026
b7a3d4f
Merge pull request #138 from omeritzics/dev
omeritzics Feb 12, 2026
4fa1a32
Update ci.yml
omeritzics Feb 12, 2026
be9c324
Merge pull request #139 from omeritzics/dev
omeritzics Feb 12, 2026
53a7db1
Fix build #6
omeritzics Feb 12, 2026
c61d6b0
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
0de1d97
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
4c6f0af
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
038f9fb
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
ce424a6
Update build.gradle.kts
omeritzics Feb 12, 2026
5c276d5
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
c8b74b9
Update android/app/build.gradle.kts
omeritzics Feb 12, 2026
d4717c4
Merge pull request #140 from omeritzics/dev
omeritzics Feb 12, 2026
4616d3b
Fix build issues
omeritzics Feb 12, 2026
7ce2090
Fix
omeritzics Feb 12, 2026
641307b
Update lib/pages/apps.dart
omeritzics Feb 12, 2026
8e92baf
Update strings
omeritzics Feb 12, 2026
1f2edc8
Update strings
omeritzics Feb 12, 2026
ca57e14
Update lib/pages/apps.dart
omeritzics Feb 12, 2026
6955045
Update ci.yml
omeritzics Feb 12, 2026
4a29b1f
Merge branch 'main' into cherry-pick-safe-commits
omeritzics Feb 14, 2026
60c79bd
Update home.dart
omeritzics Feb 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,7 @@ jobs:
# Handle both .gradle and .gradle.kts files
sed -i 's/signingConfig = signingConfigs.getByName("release")//g' android/app/build.gradle || true
sed -i 's/signingConfig = signingConfigs.getByName("release")//g' android/app/build.gradle.kts || true

- name: Analyze Code
run: |
flutter analyze


- name: Build APK (Debug with ABI Splitting)
run: |
# Inject the short SHA into the Application ID to allow side-by-side testing
Expand Down
47 changes: 35 additions & 12 deletions android/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ android {
targetCompatibility = JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
kotlin {
jvmToolchain(17)
}

defaultConfig {
Expand All @@ -51,6 +51,11 @@ android {
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInt()
versionName = flutterVersionName

// Enable split APKs for different ABIs
ndk {
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86_64")
}
}

flavorDimensions += "default"
Expand Down Expand Up @@ -111,20 +116,38 @@ android {
versionNameSuffix = "-debug"
}
}

// Configure split APK generation
splits {
abi {
isEnable = true
reset()
include("armeabi-v7a", "arm64-v8a", "x86_64")
isUniversalApk = true
}
}
}

val abiCodes = mapOf("x86_64" to 1, "armeabi-v7a" to 2, "arm64-v8a" to 3)
androidComponents {
onVariants { variant ->
variant.outputs.forEach { output ->
val abiFilter = output.filters.find {
it.filterType == com.android.build.api.variant.VariantOutputConfiguration.FilterType.ABI
}
val abiVersionCode = abiFilter?.identifier?.let { abiCodes[it] }

android.applicationVariants.configureEach {
val variant = this
variant.outputs.forEach { output ->
val abiVersionCode = abiCodes[output.filters.find { it.filterType == "ABI" }?.identifier]
if (abiVersionCode != null) {
// Create a version code within Android limits (max 2100000000)
// Use: (YYMMDDHH % 100000) * 100 + ABI to stay well under limits
val baseBuildNumber = flutterVersionCode.toLong()
val compressedCode = (baseBuildNumber % 100000) * 100 + abiVersionCode
(output as ApkVariantOutputImpl).versionCodeOverride = compressedCode.toInt()
if (abiVersionCode != null) {
// Create a version code within Android limits (max 2100000000)
// Use: (YYMMDDHH % 100000) * 100 + ABI to stay well under limits
val baseBuildNumber = requireNotNull(flutterVersionCode.toLongOrNull()) {
"Invalid flutter.versionCode='$flutterVersionCode' in local.properties; must be a number."
}
val compressedCode = (baseBuildNumber % 100000) * 100 + abiVersionCode
val maxPlayVersionCode = 2_100_000_000L
val safeVersionCode = compressedCode.coerceIn(1L, maxPlayVersionCode)
output.versionCode.set(safeVersionCode.toInt())
}
}
}
}
Comment on lines +132 to 153

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Assign version codes to all outputs

Suggested change
androidComponents {
onVariants { variant ->
variant.outputs.forEach { output ->
val abiFilter = output.filters.find {
it.filterType == com.android.build.api.variant.VariantOutputConfiguration.FilterType.ABI
}
val abiVersionCode = abiFilter?.identifier?.let { abiCodes[it] }
android.applicationVariants.configureEach {
val variant = this
variant.outputs.forEach { output ->
val abiVersionCode = abiCodes[output.filters.find { it.filterType == "ABI" }?.identifier]
if (abiVersionCode != null) {
// Create a version code within Android limits (max 2100000000)
// Use: (YYMMDDHH % 100000) * 100 + ABI to stay well under limits
val baseBuildNumber = flutterVersionCode.toLong()
val compressedCode = (baseBuildNumber % 100000) * 100 + abiVersionCode
(output as ApkVariantOutputImpl).versionCodeOverride = compressedCode.toInt()
if (abiVersionCode != null) {
// Create a version code within Android limits (max 2100000000)
// Use: (YYMMDDHH % 100000) * 100 + ABI to stay well under limits
val baseBuildNumber = requireNotNull(flutterVersionCode.toLongOrNull()) {
"Invalid flutter.versionCode='$flutterVersionCode' in local.properties; must be a number."
}
val compressedCode = (baseBuildNumber % 100000) * 100 + abiVersionCode
val maxPlayVersionCode = 2_100_000_000L
val safeVersionCode = compressedCode.coerceIn(1L, maxPlayVersionCode)
output.versionCode.set(safeVersionCode.toInt())
}
}
}
}
androidComponents {
onVariants { variant ->
variant.outputs.forEach { output ->
val abiFilter = output.filters.find {
it.filterType == com.android.build.api.variant.VariantOutputConfiguration.FilterType.ABI
}
val abiVersionCode = abiFilter?.identifier?.let { abiCodes[it] } ?: 0
// Create a version code within Android limits (max 2100000000)
// Use: (YYMMDDHH % 100000) * 100 + ABI to stay well under limits
val baseBuildNumber = requireNotNull(flutterVersionCode.toLongOrNull()) {
"Invalid flutter.versionCode='$flutterVersionCode' in local.properties; must be a number."
}
val compressedCode = (baseBuildNumber % 100000) * 100 + abiVersionCode
val maxPlayVersionCode = 2_100_000_000L
val safeVersionCode = compressedCode.coerceIn(1L, maxPlayVersionCode)
output.versionCode.set(safeVersionCode.toInt())
}
}
}

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update your branch, I can't merge it.

Expand Down
20 changes: 18 additions & 2 deletions assets/translations/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"color": "لون",
"standard": "قياسي",
"custom": "مخصّص",
"useMaterialYou": "استخدم Material You",
"useMaterialYou": "استخدم ألوان Material You",
"githubStarredRepos": "مستودعات GitHub المفضلة",
"uname": "اسم المستخدم",
"wrongArgNum": "عدد وسائط غير صحيح",
Expand Down Expand Up @@ -342,72 +342,88 @@
"GHReqPrefix": "نسخة \"sky22333/hubproxy\" لطلبات GitHub",
"includeZips": "ضمّن ملفات ZIP",
"zippedApkFilterRegEx": "تصفية ملفات APK داخل ZIP",
"googleVerificationWarningP1": "(جوجل) أعلن أنه، بدءاً من عام 2026/2027، كل التطبيقات على أجهزة (أندرويد) مصدقة ستطلب من المطور تقديم تفاصيل الهوية الشخصية مباشرة إلى (غوغل).\n\nوبما أن مطوري هذا التطبيق لا يوافقون على هذا الشرط، فإن Updatium لن يعمل بعد ذلك الوقت على أجهزة أندرويدية معتمدة.",
"googleVerificationWarningP1": "(جوجل) أعلن أنه، بدءاً من عام 2026/2027، كل التطبيقات على أجهزة (أندرويد) مصدقة ستطلب من المطور تقديم تفاصيل الهوية الشخصية مباشرة إلى (غوغل).\n\nبعد ذلك، قد يتوقف Updatium عن العمل على أجهزة أندرويدية معتمدة.",
"googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.",
"googleVerificationWarningP3": "ونلاحظ أنه في الأجل القصير، قد يظل من الممكن تركيب عملية \" غير متوافقة \" من خلال عملية \" تدفق سريع \" وعد غوغل بتنفيذها بعد رد فعل واسع النطاق على إعلانهم، ولكنهم لم يفصلوا كيف سينجح ذلك حتى لا يتضح ما إذا كان سيحافظ حقا على حريات المستعملين بأي طريقة عملية.\n\nعلى أية حال، حركة (جوجل) خطوة هامة نحو نهاية الحوسبة المجانية ذات الأغراض العامة للأفراد\n\nوينبغي ألا يتأثر هذا النظام غير المصدق عليه، مثل غرافينيوس، طالما يسمح له باستمرار وجوده.",
"multipleSigners": "عدد من الدول الموقعة",
"removeAppQuestion": {
"one": "إزالة التطبيق؟",
"two": "إزالة التطبيقين؟",
"other": "إزالة التطبيقات؟"
},
"tooManyRequestsTryAgainInMinutes": {
"one": "طلبات كثيرة جدًا (حُدد المعدل) - حاول مرة أخرى بعد {} دقيقة",
"two": "طلبات كثيرة جدًا (حُدد المعدل) - حاول مرة أخرى بعد {} دقيقتين",
"other": "طلبات كثيرة جدًا (حُدد المعدل) - حاول مرة أخرى بعد {} دقائق"
},
"bgUpdateGotErrorRetryInMinutes": {
"one": "واجه التحقق من التحديثات في الخلفية {}، سيتم جدولة محاولة أخرى بعد {} دقيقة",
"two": "واجه التحقق من التحديثات في الخلفية {}، سيتم جدولة محاولة أخرى بعد {} دقيقتين",
"other": "واجه التحقق من التحديثات في الخلفية {}، سيتم جدولة محاولة أخرى بعد {} دقائق"
},
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
"one": "وجد التحقق من التحديثات في الخلفية {} تحديث - سيتم إخطار المستخدم إذا لزم الأمر",
"two": "وجد التحقق من التحديثات في الخلفية {} تحديثين - سيتم إخطار المستخدم إذا لزم الأمر",
"other": "وجد التحقق من التحديثات في الخلفية {} تحديثات - سيتم إخطار المستخدم إذا لزم الأمر"
},
"apps": {
"one": "{} تطبيق",
"two": "تطبيقان",
"other": "{} تطبيقات"
},
"url": {
"one": "{} رابط",
"two": "رابطان",
"other": "{} روابط"
},
"minute": {
"one": "{} دقيقة",
"two": "دقيقتان",
"other": "{} دقائق"
},
"hour": {
"one": "{} ساعة",
"two": "ساعتان",
"other": "{} ساعات"
},
"day": {
"one": "{} يوم",
"two": "يومان",
"other": "{} أيام"
},
"clearedNLogsBeforeXAfterY": {
"one": "مُسح {n} سجل (قبل = {before}, بعد = {after})",
"two": "مُسح {n} سجلان (قبل = {before}, بعد = {after})",
"other": "مُسح {n} سجلات (قبل = {before}, بعد = {after})"
},
"xAndNMoreUpdatesAvailable": {
"one": "{} وتطبيق واحد آخر لديه تحديثات.",
"two": "{} وتطبيقان آخران لديهما تحديثات.",
"other": "{} و{} تطبيقات أخرى لديها تحديثات."
},
"xAndNMoreUpdatesInstalled": {
"one": "{} وتطبيق واحد آخر حُدث.",
"two": "{} وتطبيقان آخران حُدثا.",
"other": "{} و{} تطبيقات أخرى حُدثت."
},
"xAndNMoreUpdatesFailed": {
"one": "فشل تحديث {} وتطبيق واحد آخر.",
"two": "فشل تحديث {} وتطبيقان آخران.",
"other": "فشل تحديث {} و{} تطبيقات أخرى."
},
"xAndNMoreUpdatesPossiblyInstalled": {
"one": "{} وتطبيق واحد آخر قد حُدث.",
"two": "{} وتطبيقان آخران قد حُدثا.",
"other": "{} و{} تطبيقات أخرى قد حُدثت."
},
"apk": {
"one": "{} APK",
"two": "APKان",
"other": "{} APKs"
},
"certificateHash": {
"one": "بصمة الشهادة",
"two": "بصمتا الشهادة",
"other": "بصمات الشهادة"
},
"securityDisclaimerTitle": "إخلاء مسؤولية الأمان والقانوني",
Expand Down
4 changes: 2 additions & 2 deletions assets/translations/bs.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"color": "Boja",
"standard": "Standard",
"custom": "Custom",
"useMaterialYou": "Koristi Material You temu",
"useMaterialYou": "Koristi Material You boje",
"githubStarredRepos": "GitHub repo-i sa zvjezdicom",
"uname": "Korisničko ime",
"wrongArgNum": "Naveden je pogrešan broj argumenata",
Expand Down Expand Up @@ -342,7 +342,7 @@
"GHReqPrefix": "'sky22333/hubproxy' istanca za GitHub zahtjeve",
"includeZips": "Uključi i ZIP datoteke",
"zippedApkFilterRegEx": "Filtriraj APK-ove unutar ZIP datoteka",
"googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nSince the developers of this app do not agree to this requirement, Updatium will no longer work on certified Android devices after that time.",
"googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nAfter then, Updatium may stop working on certified Android devices.",
"googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.",
"googleVerificationWarningP3": "Note that in the short term, it may continue to be possible to install \"unverified\" (non-compliant) apps through an \"advanced flow\" process that Google has promised to implement after broad backlash to their announcement, but they have not detailed how this would work so it is unclear whether it will truly preserve user freedoms in any practical way.\n\nIn any case, Google's move is a significant step towards the end of free, general-purpose computing for individuals.\n\nNon-certified OSes, like GrapheneOS, should be unaffected by this for as long as they are allowed to continue to exist.",
"multipleSigners": "Multiple Signers",
Expand Down
4 changes: 2 additions & 2 deletions assets/translations/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"color": "Color",
"standard": "Estàndard",
"custom": "Personalitzat",
"useMaterialYou": "Usa 'Material You'",
"useMaterialYou": "Usar colors Material You",
"githubStarredRepos": "Repositoris favorits de GitHub",
"uname": "Nom d'usuari",
"wrongArgNum": "Nombre d'arguments proveït invàlid",
Expand Down Expand Up @@ -342,7 +342,7 @@
"GHReqPrefix": "exemple per a les peticions de GitHub",
"includeZips": "Inclou fitxers ZIPName",
"zippedApkFilterRegEx": "Filtre APKs dins ZIPName",
"googleVerificationWarningP1": "Google ha anunciat que, començant en 2026/2027, totes les aplicacions en dispositius d'Android \"que requereixen que el desenvolupador enviï els detalls personals directament a Google.\n\nDes que els desenvolupadors d'aquesta aplicació no estan d'acord amb aquest requisit, l' obtenció ja no funcionarà en els dispositius certificats d'Android.",
"googleVerificationWarningP1": "Google ha anunciat que, començant en 2026/2027, totes les aplicacions en dispositius d'Android \"certificats\" requeriran que el desenvolupador enviï els detalls personals directament a Google.\n\nDesprés d'això, Updatium pot deixar de funcionar en dispositius Android certificats.",
"googleVerificationWarningP2": "Aneu a https://buitandoideopen.org/ per a més informació.",
"googleVerificationWarningP3": "Tingueu en compte que en el terme curt, pot continuar sent possible instal· lar aplicacions \"inverificats\" (no compatible) mitjançant un procés de flux \"advince\" que Google ha promès implementar després d'una gran reacció al seu anunci, però no han detallat com funcionaria, de manera que és clar si es preservarà realment les llibertats dels usuaris de cap manera pràctica.\n\nEn qualsevol cas, el moviment de Google és un pas significatiu cap al final de la informàtica lliure i general deficient per als individus.\n\nEls SO no validats, com el GraphenOS, no haurien de ser afectats per això sempre que se'ls permeti continuar existint.",
"multipleSigners": "Signadors múltiples",
Expand Down
4 changes: 2 additions & 2 deletions assets/translations/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"color": "Barvu",
"standard": "Standardní",
"custom": "Vlastní",
"useMaterialYou": "Použít Material You",
"useMaterialYou": "Použít barvy Material You",
"githubStarredRepos": "Repozitáře na GitHubu označené hvězdičkou",
"uname": "Uživatelské jméno",
"wrongArgNum": "Nesprávný počet zadaných argumentů",
Expand Down Expand Up @@ -341,7 +341,7 @@
"GHReqPrefix": "instance 'sky22333/hubproxy' pro požadavky GitHubu",
"includeZips": "Zahrnout soubory ZIP",
"zippedApkFilterRegEx": "Filtrování souborů APK uvnitř ZIP",
"googleVerificationWarningP1": "Společnost Google oznámila, že počínaje rokem 2026 / 2027 budou všechny aplikace na \"certifikovaných\" zařízeních pro Android vyžadovat, aby vývojář předložil osobní údaje o identitě přímo společnosti Google.\n\nVzhledem k tomu, vývojáři této aplikace nesouhlasí s tímto požadavkem, Obstainium již nebude pracovat na certifikovaných Android zařízení po této době.",
"googleVerificationWarningP1": "Společnost Google oznámila, že počínaje rokem 2026 / 2027 budou všechny aplikace na \"certifikovaných\" zařízeních pro Android vyžadovat, aby vývojář předložil osobní údaje o identitě přímo společnosti Google.\n\nPo této době, Updatium může přestat pracovat na certifikovaných Android zařízeních.",
"googleVerificationWarningP2": "Další informace získáte na adrese https: / / keepandroidopen.org.",
"googleVerificationWarningP3": "Všimněte si, že v krátkodobém horizontu může být i nadále možné instalovat \"neověřené\" (nevyhovující) aplikace prostřednictvím procesu \"pokročilého toku\", který Google slíbil implementovat po širokém odporu k jejich oznámení, ale neupřesnili, jak by to mělo fungovat, takže není jasné, zda bude skutečně zachovávat uživatelskou svobodu jakýmkoli praktickým způsobem.\n\nV každém případě je krok společnosti Google významným krokem ke konci volného, všeobecného výpočetní techniky pro jednotlivce.\n\nNecertifikované Osy, jako je GrapheneOS, by tím neměly být ovlivněny, pokud budou nadále existovat.",
"multipleSigners": "Několik signers",
Expand Down
4 changes: 2 additions & 2 deletions assets/translations/da.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"color": "Farve",
"standard": "Standard",
"custom": "Brugerdefineret",
"useMaterialYou": "Brug Material You",
"useMaterialYou": "Brug Material You-farver",
"githubStarredRepos": "Stjernemarkeret GitHub-repos",
"uname": "Brugernavn",
"wrongArgNum": "Forkert antal argumenter angivet",
Expand Down Expand Up @@ -341,7 +341,7 @@
"GHReqPrefix": "'sky22333/hubproxy'-instans til GitHub-anmodninger",
"includeZips": "Inkluder ZIP-filer",
"zippedApkFilterRegEx": "Filtrer APK'er inde i ZIP",
"googleVerificationWarningP1": "Google har annonceret, at fra 2026 / 2027, alle apps på \"certificeret\" Android-enheder vil kræve, at udvikleren til at indsende personlige identitetsoplysninger direkte til Google.\n\nDa udviklerne af denne app ikke accepterer dette krav, Updatium vil ikke længere arbejde på certificerede Android-enheder efter dette tidspunkt.",
"googleVerificationWarningP1": "Google har annonceret, at fra 2026 / 2027, alle apps på \"certificeret\" Android-enheder vil kræve, at udvikleren til at indsende personlige identitetsoplysninger direkte til Google.\n\nEfter dette tidspunkt, kan Updatium holde op med at arbejde på certificerede Android-enheder.",
"googleVerificationWarningP2": "Gå til https: / / keepandroidopen.org / for mere information.",
"googleVerificationWarningP3": "Bemærk, at på kort sigt, kan det fortsætte med at være muligt at installere \"uverificerbare\" (ikke-overensstemmende) apps gennem en \"avanceret flow\" proces, som Google har lovet at gennemføre efter bred backlash til deres meddelelse, men de har ikke detaljeret, hvordan dette ville arbejde, så det er uklart, om det virkelig vil bevare brugernes friheder i praksis.\n\nUnder alle omstændigheder er Googles bevægelse et væsentligt skridt i retning af afslutningen af fri, generel-formål computing for enkeltpersoner.\n\nIkke-certificerede OS, som GrapheneOS, bør være upåvirket af dette, så længe de har lov til at fortsætte med at eksistere.",
"multipleSigners": "Flere signere",
Expand Down
4 changes: 2 additions & 2 deletions assets/translations/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"color": "Farbe",
"standard": "Standard",
"custom": "Benutzerdefiniert",
"useMaterialYou": "Material You verwenden",
"useMaterialYou": "Material You Farben verwenden",
"githubStarredRepos": "GitHub Starred Repos",
"uname": "Benutzername",
"wrongArgNum": "Falsche Anzahl von Argumenten (Parametern) übermittelt",
Expand Down Expand Up @@ -342,7 +342,7 @@
"GHReqPrefix": "sky22333/hubproxy'-Instanz für GitHub-Anfragen",
"includeZips": "ZIP-Dateien einbeziehen",
"zippedApkFilterRegEx": "APKs in ZIP filtern",
"googleVerificationWarningP1": "Google hat bekannt gegeben, dass, ab 2026/2027, alle Apps auf \"zertifizierten\" Android-Geräten den Entwickler benötigen, um persönliche Identitätsdetails direkt an Google einzureichen.\n\nDa die Entwickler dieser App dieser Anforderung nicht zustimmen, Updatium wird nicht mehr auf zertifizierten Android-Geräten nach dieser Zeit arbeiten.",
"googleVerificationWarningP1": "Google hat bekannt gegeben, dass, ab 2026/2027, alle Apps auf \"zertifizierten\" Android-Geräten den Entwickler benötigen, um persönliche Identitätsdetails direkt an Google einzureichen.\n\nDanach kann Updatium auf zertifizierten Android-Geräten aufhören zu funktionieren.",
"googleVerificationWarningP2": "Weitere Informationen finden Sie unter https://keepandroidopen.org/.",
"googleVerificationWarningP3": "Beachten Sie, dass es kurzfristig weiterhin möglich sein kann, \"unverifizierte\" (nicht-konforme) Apps durch einen \"fortgeschrittenen Flow\"-Prozess zu installieren, den Google versprochen hat, nach einem breiten Rückschluss auf ihre Ankündigung umzusetzen, aber sie haben nicht detailliert, wie dies funktioniert, so dass es unklar ist, ob es wirklich Benutzerfreiheiten in praktischer Weise erhalten wird.\n\nIn jedem Fall ist Googles Bewegung ein wesentlicher Schritt zum Ende des kostenlosen, universellen Computers für Einzelpersonen.\n\nNicht zertifizierte Betriebssysteme, wie GrapheneOS, sollten dadurch nicht beeinflusst werden, solange sie weiterhin existieren dürfen.",
"multipleSigners": "Mehrere Zeichen",
Expand Down
Loading
Loading