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 0000000..e1b5f19 Binary files /dev/null and b/repo/entry.jar differ diff --git a/repo/entry.json b/repo/entry.json new file mode 100644 index 0000000..583c906 --- /dev/null +++ b/repo/entry.json @@ -0,0 +1 @@ +{"timestamp": 1744661681000, "version": 20002, "index": {"name": "/index-v2.json", "sha256": "571c9e7ad83d5f420ff7e249eb9031f273ad28ab42374c943ca59359964aa72b", "size": 3229, "numPackages": 1}, "diffs": {}} \ No newline at end of file diff --git a/repo/icons/icon.png b/repo/icons/icon.png new file mode 100644 index 0000000..922853b Binary files /dev/null and b/repo/icons/icon.png differ diff --git a/repo/index-v1.jar b/repo/index-v1.jar new file mode 100644 index 0000000..870e4c1 Binary files /dev/null and b/repo/index-v1.jar differ 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 @@ + + + +
+ + +
+
+
+
+
+
+ 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:
+
+