From c880e710a6f26801d5f09a17ac9cfe61197580a9 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 14 Apr 2025 22:15:06 +0200 Subject: [PATCH] added Duolingo --- metadata/com.duolingo.yml | 9 ++ repo/categories.txt | 0 repo/entry.jar | Bin 0 -> 2752 bytes repo/entry.json | 1 + repo/icons/icon.png | Bin 0 -> 715 bytes repo/index-v1.jar | Bin 0 -> 3941 bytes repo/index-v1.json | 1 + repo/index-v2.json | 1 + repo/index.css | 228 ++++++++++++++++++++++++++++++++++++ repo/index.html | 56 +++++++++ repo/index.jar | Bin 0 -> 5601 bytes repo/index.png | Bin 0 -> 1155 bytes repo/index.xml | 1 + repo/status/running.json | 1 + repo/status/update.json | 1 + tmp/apkcache.json | 159 +++++++++++++++++++++++++ tmp/repo_1744661681000.json | 1 + 17 files changed, 459 insertions(+) create mode 100644 metadata/com.duolingo.yml create mode 100644 repo/categories.txt create mode 100644 repo/entry.jar create mode 100644 repo/entry.json create mode 100644 repo/icons/icon.png create mode 100644 repo/index-v1.jar create mode 100644 repo/index-v1.json create mode 100644 repo/index-v2.json create mode 100644 repo/index.css create mode 100644 repo/index.html create mode 100644 repo/index.jar create mode 100644 repo/index.png create mode 100644 repo/index.xml create mode 100644 repo/status/running.json create mode 100644 repo/status/update.json create mode 100644 tmp/apkcache.json create mode 100644 tmp/repo_1744661681000.json diff --git a/metadata/com.duolingo.yml b/metadata/com.duolingo.yml new file mode 100644 index 0000000..6ca79f0 --- /dev/null +++ b/metadata/com.duolingo.yml @@ -0,0 +1,9 @@ +AuthorName: '' +Categories: +- html +CurrentVersionCode: 2147483647 +IssueTracker: '' +Name: Duolingo +SourceCode: '' +Summary: '' +WebSite: '' diff --git a/repo/categories.txt b/repo/categories.txt new file mode 100644 index 0000000..e69de29 diff --git a/repo/entry.jar b/repo/entry.jar new file mode 100644 index 0000000000000000000000000000000000000000..e1b5f19d9d001f8a9295332843430a024855403f GIT binary patch literal 2752 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 YB>qQ0Lp1RTel6qOTsXh@OV literal 0 HcmV?d00001 diff --git a/repo/index-v1.json b/repo/index-v1.json new file mode 100644 index 0000000..48ed170 --- /dev/null +++ b/repo/index-v1.json @@ -0,0 +1 @@ +{"repo": {"timestamp": 1744661681000, "version": 20002, "name": "My First F-Droid Repo Demo", "icon": "icon.png", "address": "https://MyFirstFDroidRepo.org/fdroid/repo", "description": "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."}, "requests": {"install": [], "uninstall": []}, "apps": [{"categories": ["html"], "suggestedVersionCode": "2147483647", "license": "Unknown", "name": "Duolingo", "added": 1744661681000, "packageName": "com.duolingo", "lastUpdated": 1744661681000}], "packages": {"com.duolingo": [{"added": 1744661681000, "apkName": "Duolingo v6.25.3 (Premium).apk", "features": ["android.hardware.screen.portrait", "android.hardware.screen.landscape"], "hash": "8d8457a0790ccdc92db03d4fe40cb5ca2da345b0c511d6e37e1f95af290e472e", "hashType": "sha256", "minSdkVersion": 29, "nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "packageName": "com.duolingo", "sig": "ff9398c3885347ddf2e631518d00e072", "signer": "3b61c2a82aff9f7652ffe0b04be3c8f248b5e1aa7063f1a3846f0cf5c778628a", "size": 86455373, "targetSdkVersion": 34, "uses-permission": [["android.permission.INTERNET", null], ["android.permission.ACCESS_NETWORK_STATE", null], ["android.permission.FOREGROUND_SERVICE", null], ["android.permission.VIBRATE", null], ["android.permission.RECEIVE_BOOT_COMPLETED", null], ["android.permission.GET_ACCOUNTS", null], ["android.permission.RECORD_AUDIO", null], ["android.permission.POST_NOTIFICATIONS", null], ["android.permission.READ_EXTERNAL_STORAGE", 32], ["android.permission.READ_CONTACTS", null], ["com.google.android.c2dm.permission.RECEIVE", null], ["android.permission.MODIFY_AUDIO_SETTINGS", null], ["com.google.android.providers.gsf.permission.READ_GSERVICES", null], ["android.permission.WAKE_LOCK", null], ["com.duolingo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION", null], ["com.sec.android.provider.badge.permission.READ", null], ["com.sec.android.provider.badge.permission.WRITE", null], ["com.htc.launcher.permission.READ_SETTINGS", null], ["com.htc.launcher.permission.UPDATE_SHORTCUT", null], ["com.sonyericsson.home.permission.BROADCAST_BADGE", null], ["com.sonymobile.home.permission.PROVIDER_INSERT_BADGE", null], ["com.anddoes.launcher.permission.UPDATE_COUNT", null], ["com.majeur.launcher.permission.UPDATE_BADGE", null], ["com.huawei.android.launcher.permission.CHANGE_BADGE", null], ["com.huawei.android.launcher.permission.READ_SETTINGS", null], ["com.huawei.android.launcher.permission.WRITE_SETTINGS", null], ["android.permission.READ_APP_BADGE", null], ["com.oppo.launcher.permission.READ_SETTINGS", null], ["com.oppo.launcher.permission.WRITE_SETTINGS", null], ["me.everything.badger.permission.BADGE_COUNT_READ", null], ["me.everything.badger.permission.BADGE_COUNT_WRITE", null]], "versionCode": 2074, "versionName": "6.25.3"}]}} \ No newline at end of file diff --git a/repo/index-v2.json b/repo/index-v2.json new file mode 100644 index 0000000..507fd5e --- /dev/null +++ b/repo/index-v2.json @@ -0,0 +1 @@ +{"repo": {"name": {"en-US": "My First F-Droid Repo Demo"}, "description": {"en-US": "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."}, "icon": {"en-US": {"name": "/icons/icon.png", "sha256": "b1f27fa87f8cabca50cdcd462a0f500d79d883b965a498d0e49eea560b39be1f", "size": 715}}, "address": "https://MyFirstFDroidRepo.org/fdroid/repo", "timestamp": 1744661681000}, "packages": {"com.duolingo": {"metadata": {"added": 1744661681000, "categories": ["html"], "lastUpdated": 1744661681000, "name": {"en-US": "Duolingo"}, "preferredSigner": "3b61c2a82aff9f7652ffe0b04be3c8f248b5e1aa7063f1a3846f0cf5c778628a"}, "versions": {"8d8457a0790ccdc92db03d4fe40cb5ca2da345b0c511d6e37e1f95af290e472e": {"added": 1744661681000, "file": {"name": "/Duolingo v6.25.3 (Premium).apk", "sha256": "8d8457a0790ccdc92db03d4fe40cb5ca2da345b0c511d6e37e1f95af290e472e", "size": 86455373}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "6.25.3", "versionCode": 2074, "features": [{"name": "android.hardware.screen.portrait"}, {"name": "android.hardware.screen.landscape"}], "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 34}, "signer": {"sha256": ["3b61c2a82aff9f7652ffe0b04be3c8f248b5e1aa7063f1a3846f0cf5c778628a"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.GET_ACCOUNTS"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_CONTACTS"}, {"name": "com.google.android.c2dm.permission.RECEIVE"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "com.google.android.providers.gsf.permission.READ_GSERVICES"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.duolingo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "com.sec.android.provider.badge.permission.READ"}, {"name": "com.sec.android.provider.badge.permission.WRITE"}, {"name": "com.htc.launcher.permission.READ_SETTINGS"}, {"name": "com.htc.launcher.permission.UPDATE_SHORTCUT"}, {"name": "com.sonyericsson.home.permission.BROADCAST_BADGE"}, {"name": "com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"}, {"name": "com.anddoes.launcher.permission.UPDATE_COUNT"}, {"name": "com.majeur.launcher.permission.UPDATE_BADGE"}, {"name": "com.huawei.android.launcher.permission.CHANGE_BADGE"}, {"name": "com.huawei.android.launcher.permission.READ_SETTINGS"}, {"name": "com.huawei.android.launcher.permission.WRITE_SETTINGS"}, {"name": "android.permission.READ_APP_BADGE"}, {"name": "com.oppo.launcher.permission.READ_SETTINGS"}, {"name": "com.oppo.launcher.permission.WRITE_SETTINGS"}, {"name": "me.everything.badger.permission.BADGE_COUNT_READ"}, {"name": "me.everything.badger.permission.BADGE_COUNT_WRITE"}]}}}}}} \ No newline at end of file diff --git a/repo/index.css b/repo/index.css new file mode 100644 index 0000000..6255e28 --- /dev/null +++ b/repo/index.css @@ -0,0 +1,228 @@ +/* auto-generated - fdroid index updates will overwrite this file */ +BODY { + font-family : Arial, Helvetica, Sans-Serif; + color : #0000ee; + background-color : #ffffff; +} +p { + text-align : justify; +} +p.center { + text-align : center; +} +TD { + font-family : Arial, Helvetica, Sans-Serif; + color : #0000ee; +} +body,td { + font-size : 14px; +} +TH { + font-family : Arial, Helvetica, Sans-Serif; + color : #0000ee; + background-color : #F5EAD4; +} +a:link { + color : #bb0000; +} +a:visited { + color : #ff0000; +} +.zitat { + margin-left : 1cm; + margin-right : 1cm; + font-style : italic; +} +#intro { + border-spacing : 1em; + border : 1px solid gray; + border-radius : 0.5em; + box-shadow : 10px 10px 5px #888; + margin : 1.5em; + font-size : .9em; + width : 600px; + max-width : 90%; + display : table; + margin-left : auto; + margin-right : auto; + font-size : .8em; + color : #555555; +} +#intro > p { + margin-top : 0; +} +#intro p:last-child { + margin-bottom : 0; +} +.last { + border-bottom : 1px solid black; + padding-bottom : .5em; + text-align : center; +} +table { + border-collapse : collapse; +} +h2 { + text-align : center; +} +.perms { + font-family : monospace; + font-size : .8em; +} +.repoapplist { + display : table; + border-collapse : collapse; + margin-left : auto; + margin-right : auto; + width : 600px; + max-width : 90%; +} +.approw, appdetailrow { + display : table-row; +} +.appdetailrow { + display : flex; + padding : .5em; +} +.appiconbig, .appdetailblock, .appdetailcell { + display : table-cell +} +.appiconbig { + vertical-align : middle; + text-align : center; +} +.appdetailinner { + width : 100%; +} +.applinkcell { + text-align : center; + float : right; + width : 100%; + margin-bottom : .1em; +} +.paddedlink { + margin : 1em; +} +.approw { + border-spacing : 1em; + border : 1px solid gray; + border-radius : 0.5em; + padding : 0.5em; + margin : 1.5em; +} +.appdetailinner .appdetailrow:first-child { + background-color : #d5d5d5; +} +.appdetailinner .appdetailrow:first-child .appdetailcell { + min-width : 33%; + flex : 1 33%; + text-align : center; +} +.appdetailinner .appdetailrow:first-child .appdetailcell:first-child { + text-align : left; +} +.appdetailinner .appdetailrow:first-child .appdetailcell:last-child { + float : none; + text-align : right; +} +.minor-details { + font-size : .8em; + color : #555555; +} +.boldname { + font-weight : bold; +} +#appcount { + text-align : center; + margin-bottom : .5em; +} +kbd { + padding : 0.1em 0.6em; + border : 1px solid #CCC; + background-color : #F7F7F7; + color : #333; + box-shadow : 0px 1px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 2px #FFF inset; + border-radius : 3px; + display : inline-block; + margin : 0px 0.1em; + text-shadow : 0px 1px 0px #FFF; + white-space : nowrap; +} +div.filterline, div.repoline { + display : table; + margin-left : auto; + margin-right : auto; + margin-bottom : 1em; + vertical-align : middle; + display : table; + font-size : .8em; +} +.filterline form { + display : table-row; +} +.filterline .filtercell { + display : table-cell; + vertical-align : middle; +} +fieldset { + float : left; +} +fieldset select, fieldset input, #reposelect select, #reposelect input { + font-size : .9em; +} +.pager { + display : table; + margin-left : auto; + margin-right : auto; + width : 600px; + max-width : 90%; + padding-top : .6em; +} +/* should correspond to .repoapplist */ +.pagerrow { + display : table-row; +} +.pagercell { + display : table-cell; +} +.pagercell.left { + text-align : left; + padding-right : 1em; +} +.pagercell.middle { + text-align : center; + font-size : .9em; + color : #555; +} +.pagercell.right { + text-align : right; + padding-left : 1em; +} +.anti { + color : peru; +} +.antibold { + color : crimson; +} +#footer { + text-align : center; + margin-top : 1em; + font-size : 11px; + color : #555; +} +#footer img { + vertical-align : middle; +} +@media (max-width: 600px) { + .repoapplist { + display : block; + } + .appdetailinner, .appdetailrow { + display : block; + } + .appdetailcell { + display : block; + float : left; + line-height : 1.5em; + } +} \ No newline at end of file diff --git a/repo/index.html b/repo/index.html new file mode 100644 index 0000000..5c0862d --- /dev/null +++ b/repo/index.html @@ -0,0 +1,56 @@ + + + + + + + + My First F-Droid Repo Demo + + + + + + + + + + + + +

+ My First F-Droid Repo Demo +

+
+

+ + + QR: test + + + This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid. +
+
+ Currently it serves + + 1 + + apps. To add it to your F-Droid client, scan the QR code (click it to enlarge) or use this URL: +

+

+ + + https://MyFirstFDroidRepo.org/fdroid/repo + + +

+

+ If you would like to manually verify the fingerprint (SHA-256) of the repository signing key, here it is: +
+ + 5C BE F8 C2 57 80 8D 20 B6 56 53 CB C8 96 F0 8F 0A 93 F4 76 59 85 9F CD 9A 6B 75 FC AD DA 61 7D + +

+
+ + diff --git a/repo/index.jar b/repo/index.jar new file mode 100644 index 0000000000000000000000000000000000000000..6a4a8e574fa67e692962c9076724d471663868d0 GIT binary patch literal 5601 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 I{k7Ns1NSoNYybcN literal 0 HcmV?d00001 diff --git a/repo/index.png b/repo/index.png new file mode 100644 index 0000000000000000000000000000000000000000..6906d204c660353d5d720e4a53e00f271d16c03c GIT binary patch literal 1155 zcmV-}1bq96P) zL5`z35Qe{cAobEnIY1wU++dD0dPkZYz)^C5k?=AS=zj~_;B?OlkTQ9xTA&u;lR+w# zU4NC`CJxy6&k-6NcieHu9e3Pu#~nWxw`?sCTNt~=?8;)mVs?!!<=67)^}Nv?e>WUS z61^m8YNR1Z(ge~3^qSE?Bl>i&QAG?d{q2rF3ol+b0sYhnf}{b8!-Y9NH-x!7LgQZN z_yKFb-spcB^wVXA*a7iF)(=Zde`^u()X^P(PyBnV10c*P)}?@_6a+oiIerdaVqFlV zKo%y9_#q=+1o0vx+)aQCpw^XN`r93UGCrD_SqJpDmK6E`>>!3;LYr03+egFt_R#PC$C%&$8 ze4l0aSrY_lrjkzxt6nFiL}C-|-0K|QXIos`RN|DXZkPJGndF$B!#cj-vNr*_EU`_l ze9ngvsNzL>l{Ch+cm89RThKTV)i*BB{ijy zUBlh%r{?oVcl?d;uj{%}jLo4>Qk}V$=hh_TrN7@fhVU25La!tvt zd!6G4acKg(Ml%RA_A@Q+?w04(lDVdYgV>TaSv?l@sa|8|Q3jnejSw@@dtY}(wgq5Un{fPyRj2D%e`{v}SiUsS3sRE_+$}%%>*8IVjvp~SS~>~LL6Wq#+l7Z% z2Y9S={D_ro0=Dg8+i9>=-6v~=t7;f8{q2rF3;%XjXF9r$(&?G|JHh&?GmSrfx4DLK z#^{c}C;r{*0Kwd9{LzT@5002ovPDHLkV1gK-Oa%Y{ literal 0 HcmV?d00001 diff --git a/repo/index.xml b/repo/index.xml new file mode 100644 index 0000000..f7815a4 --- /dev/null +++ b/repo/index.xml @@ -0,0 +1 @@ +This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid.com.duolingo2025-04-142025-04-14DuolingoNo description availableUnknownhtmlhtml21474836476.25.32074Duolingo v6.25.3 (Premium).apk8d8457a0790ccdc92db03d4fe40cb5ca2da345b0c511d6e37e1f95af290e472e8645537329342025-04-14ff9398c3885347ddf2e631518d00e072ACCESS_NETWORK_STATE,FOREGROUND_SERVICE,GET_ACCOUNTS,INTERNET,MODIFY_AUDIO_SETTINGS,POST_NOTIFICATIONS,READ_APP_BADGE,READ_CONTACTS,READ_EXTERNAL_STORAGE,RECEIVE_BOOT_COMPLETED,RECORD_AUDIO,VIBRATE,WAKE_LOCK,com.anddoes.launcher.permission.UPDATE_COUNT,com.duolingo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION,com.google.android.c2dm.permission.RECEIVE,com.google.android.providers.gsf.permission.READ_GSERVICES,com.htc.launcher.permission.READ_SETTINGS,com.htc.launcher.permission.UPDATE_SHORTCUT,com.huawei.android.launcher.permission.CHANGE_BADGE,com.huawei.android.launcher.permission.READ_SETTINGS,com.huawei.android.launcher.permission.WRITE_SETTINGS,com.majeur.launcher.permission.UPDATE_BADGE,com.oppo.launcher.permission.READ_SETTINGS,com.oppo.launcher.permission.WRITE_SETTINGS,com.sec.android.provider.badge.permission.READ,com.sec.android.provider.badge.permission.WRITE,com.sonyericsson.home.permission.BROADCAST_BADGE,com.sonymobile.home.permission.PROVIDER_INSERT_BADGE,me.everything.badger.permission.BADGE_COUNT_READ,me.everything.badger.permission.BADGE_COUNT_WRITEarm64-v8a,armeabi-v7a,x86,x86_64android.hardware.screen.landscape,android.hardware.screen.portrait \ No newline at end of file diff --git a/repo/status/running.json b/repo/status/running.json new file mode 100644 index 0000000..50d06e2 --- /dev/null +++ b/repo/status/running.json @@ -0,0 +1 @@ +{"/etc/issue.net":"Debian GNU/Linux 12","antiFeatures":{},"apksigner":"/usr/bin/apksigner","archivePolicy0":[],"commandLine":["/usr/bin/fdroid update","-c"],"disabled":[],"endTimestamp":1744661684199,"failedBuilds":{},"fdroiddata":{"commitId":"4eda801d545a17909ebc6f5d589e6d9c78ccfb51","isDirty":false,"modifiedFiles":[],"untrackedFiles":["metadata/com.duolingo.yml","repo/categories.txt","repo/entry.jar","repo/entry.json","repo/icons/icon.png","repo/index-v1.jar","repo/index-v1.json","repo/index-v2.json","repo/index.css","repo/index.html","repo/index.jar","repo/index.png","repo/index.xml","tmp/apkcache.json","tmp/repo_1744661681000.json"]},"jarsigner":"/usr/lib/jvm/default-java/bin/jarsigner","keytool":"/usr/lib/jvm/default-java/bin/keytool","needsUpdate":["com.duolingo"],"noPackages":["com.duolingo"],"noUpdateCheck":["com.duolingo"],"startTimestamp":1744658079000,"subcommand":"update"} \ No newline at end of file diff --git a/repo/status/update.json b/repo/status/update.json new file mode 100644 index 0000000..50d06e2 --- /dev/null +++ b/repo/status/update.json @@ -0,0 +1 @@ +{"/etc/issue.net":"Debian GNU/Linux 12","antiFeatures":{},"apksigner":"/usr/bin/apksigner","archivePolicy0":[],"commandLine":["/usr/bin/fdroid update","-c"],"disabled":[],"endTimestamp":1744661684199,"failedBuilds":{},"fdroiddata":{"commitId":"4eda801d545a17909ebc6f5d589e6d9c78ccfb51","isDirty":false,"modifiedFiles":[],"untrackedFiles":["metadata/com.duolingo.yml","repo/categories.txt","repo/entry.jar","repo/entry.json","repo/icons/icon.png","repo/index-v1.jar","repo/index-v1.json","repo/index-v2.json","repo/index.css","repo/index.html","repo/index.jar","repo/index.png","repo/index.xml","tmp/apkcache.json","tmp/repo_1744661681000.json"]},"jarsigner":"/usr/lib/jvm/default-java/bin/jarsigner","keytool":"/usr/lib/jvm/default-java/bin/keytool","needsUpdate":["com.duolingo"],"noPackages":["com.duolingo"],"noUpdateCheck":["com.duolingo"],"startTimestamp":1744658079000,"subcommand":"update"} \ No newline at end of file diff --git a/tmp/apkcache.json b/tmp/apkcache.json new file mode 100644 index 0000000..1e98957 --- /dev/null +++ b/tmp/apkcache.json @@ -0,0 +1,159 @@ +{ + "METADATA_VERSION": 20002, + "allow_disabled_algorithms": false, + "Duolingo v6.25.3 (Premium).apk": { + "hash": "8d8457a0790ccdc92db03d4fe40cb5ca2da345b0c511d6e37e1f95af290e472e", + "hashType": "sha256", + "uses-permission": [ + [ + "android.permission.INTERNET", + null + ], + [ + "android.permission.ACCESS_NETWORK_STATE", + null + ], + [ + "android.permission.FOREGROUND_SERVICE", + null + ], + [ + "android.permission.VIBRATE", + null + ], + [ + "android.permission.RECEIVE_BOOT_COMPLETED", + null + ], + [ + "android.permission.GET_ACCOUNTS", + null + ], + [ + "android.permission.RECORD_AUDIO", + null + ], + [ + "android.permission.POST_NOTIFICATIONS", + null + ], + [ + "android.permission.READ_EXTERNAL_STORAGE", + 32 + ], + [ + "android.permission.READ_CONTACTS", + null + ], + [ + "com.google.android.c2dm.permission.RECEIVE", + null + ], + [ + "android.permission.MODIFY_AUDIO_SETTINGS", + null + ], + [ + "com.google.android.providers.gsf.permission.READ_GSERVICES", + null + ], + [ + "android.permission.WAKE_LOCK", + null + ], + [ + "com.duolingo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION", + null + ], + [ + "com.sec.android.provider.badge.permission.READ", + null + ], + [ + "com.sec.android.provider.badge.permission.WRITE", + null + ], + [ + "com.htc.launcher.permission.READ_SETTINGS", + null + ], + [ + "com.htc.launcher.permission.UPDATE_SHORTCUT", + null + ], + [ + "com.sonyericsson.home.permission.BROADCAST_BADGE", + null + ], + [ + "com.sonymobile.home.permission.PROVIDER_INSERT_BADGE", + null + ], + [ + "com.anddoes.launcher.permission.UPDATE_COUNT", + null + ], + [ + "com.majeur.launcher.permission.UPDATE_BADGE", + null + ], + [ + "com.huawei.android.launcher.permission.CHANGE_BADGE", + null + ], + [ + "com.huawei.android.launcher.permission.READ_SETTINGS", + null + ], + [ + "com.huawei.android.launcher.permission.WRITE_SETTINGS", + null + ], + [ + "android.permission.READ_APP_BADGE", + null + ], + [ + "com.oppo.launcher.permission.READ_SETTINGS", + null + ], + [ + "com.oppo.launcher.permission.WRITE_SETTINGS", + null + ], + [ + "me.everything.badger.permission.BADGE_COUNT_READ", + null + ], + [ + "me.everything.badger.permission.BADGE_COUNT_WRITE", + null + ] + ], + "uses-permission-sdk-23": [], + "features": [ + "android.hardware.screen.portrait", + "android.hardware.screen.landscape" + ], + "icons_src": {}, + "icons": {}, + "antiFeatures": [], + "packageName": "com.duolingo", + "versionCode": 2074, + "name": "Duolingo", + "versionName": "6.25.3", + "minSdkVersion": 29, + "targetSdkVersion": 34, + "nativecode": [ + "arm64-v8a", + "armeabi-v7a", + "x86", + "x86_64" + ], + "sig": "ff9398c3885347ddf2e631518d00e072", + "signer": "3b61c2a82aff9f7652ffe0b04be3c8f248b5e1aa7063f1a3846f0cf5c778628a", + "size": 86455373, + "apkName": "Duolingo v6.25.3 (Premium).apk", + "added": 1744654481.162982 + } +} \ No newline at end of file diff --git a/tmp/repo_1744661681000.json b/tmp/repo_1744661681000.json new file mode 100644 index 0000000..507fd5e --- /dev/null +++ b/tmp/repo_1744661681000.json @@ -0,0 +1 @@ +{"repo": {"name": {"en-US": "My First F-Droid Repo Demo"}, "description": {"en-US": "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid."}, "icon": {"en-US": {"name": "/icons/icon.png", "sha256": "b1f27fa87f8cabca50cdcd462a0f500d79d883b965a498d0e49eea560b39be1f", "size": 715}}, "address": "https://MyFirstFDroidRepo.org/fdroid/repo", "timestamp": 1744661681000}, "packages": {"com.duolingo": {"metadata": {"added": 1744661681000, "categories": ["html"], "lastUpdated": 1744661681000, "name": {"en-US": "Duolingo"}, "preferredSigner": "3b61c2a82aff9f7652ffe0b04be3c8f248b5e1aa7063f1a3846f0cf5c778628a"}, "versions": {"8d8457a0790ccdc92db03d4fe40cb5ca2da345b0c511d6e37e1f95af290e472e": {"added": 1744661681000, "file": {"name": "/Duolingo v6.25.3 (Premium).apk", "sha256": "8d8457a0790ccdc92db03d4fe40cb5ca2da345b0c511d6e37e1f95af290e472e", "size": 86455373}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "6.25.3", "versionCode": 2074, "features": [{"name": "android.hardware.screen.portrait"}, {"name": "android.hardware.screen.landscape"}], "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 34}, "signer": {"sha256": ["3b61c2a82aff9f7652ffe0b04be3c8f248b5e1aa7063f1a3846f0cf5c778628a"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.GET_ACCOUNTS"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_CONTACTS"}, {"name": "com.google.android.c2dm.permission.RECEIVE"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "com.google.android.providers.gsf.permission.READ_GSERVICES"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.duolingo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "com.sec.android.provider.badge.permission.READ"}, {"name": "com.sec.android.provider.badge.permission.WRITE"}, {"name": "com.htc.launcher.permission.READ_SETTINGS"}, {"name": "com.htc.launcher.permission.UPDATE_SHORTCUT"}, {"name": "com.sonyericsson.home.permission.BROADCAST_BADGE"}, {"name": "com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"}, {"name": "com.anddoes.launcher.permission.UPDATE_COUNT"}, {"name": "com.majeur.launcher.permission.UPDATE_BADGE"}, {"name": "com.huawei.android.launcher.permission.CHANGE_BADGE"}, {"name": "com.huawei.android.launcher.permission.READ_SETTINGS"}, {"name": "com.huawei.android.launcher.permission.WRITE_SETTINGS"}, {"name": "android.permission.READ_APP_BADGE"}, {"name": "com.oppo.launcher.permission.READ_SETTINGS"}, {"name": "com.oppo.launcher.permission.WRITE_SETTINGS"}, {"name": "me.everything.badger.permission.BADGE_COUNT_READ"}, {"name": "me.everything.badger.permission.BADGE_COUNT_WRITE"}]}}}}}} \ No newline at end of file