{"repo": {"timestamp": 1786869977562}, "packages": {"app.atrium": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"d86676c9fda08541fbe95b4ec638b0d79c871122e494d82f48709532ad484821": null, "4bc4997c2146d4454c6fa343b871529058d4e26aedbaf413bbaae9d34c51269f": null, "afbaeec239160abf2a5eff6e28b648235836af14e3d2ae4bb111914e495f7242": null, "8110c5eada6d97d3b0b376155c39892301cdbb3c9f0e8324604192dca5df27fe": {"added": 1786749285772, "file": {"name": "/app.atrium_163.apk", "sha256": "8110c5eada6d97d3b0b376155c39892301cdbb3c9f0e8324604192dca5df27fe", "size": 32389702, "ipfsCIDv1": "bafybeibacpgb5bvmonb3ch3miiq5t52m3g6okqhyfu4tipnjtuved2btfy"}, "src": {"name": "/app.atrium_163_src.tar.gz", "sha256": "2b3f4139901b739d14b84e12d726570570712fc1a0aa0ac97f2f62ea6128d550", "size": 338483061}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.4.0", "versionCode": 163, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["5ebad1ff2f9cdc63f28b364addf9e858330db26909d9eba8dfbccb998de37351"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "app.atrium.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "348ae2079d3d92d2ca21d1d88c3bb60c8ef793bfa968aac6981e9f4555b66e91": {"added": 1786749285772, "file": {"name": "/app.atrium_162.apk", "sha256": "348ae2079d3d92d2ca21d1d88c3bb60c8ef793bfa968aac6981e9f4555b66e91", "size": 30702159, "ipfsCIDv1": "bafybeigzreate3ttmtwt452k77zsx3l5k3epckth6j3en3rdhyom6dt64a"}, "src": {"name": "/app.atrium_162_src.tar.gz", "sha256": "f063331c0fdf4147017250c8470edf705104043d38ce93a3078f0846365e4c1a", "size": 338480944}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.4.0", "versionCode": 162, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["5ebad1ff2f9cdc63f28b364addf9e858330db26909d9eba8dfbccb998de37351"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "app.atrium.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "b7ddde6639b1bee9a3c285c203293a17e9d8341f66452f39bccba786c6860ff6": {"added": 1786749285772, "file": {"name": "/app.atrium_161.apk", "sha256": "b7ddde6639b1bee9a3c285c203293a17e9d8341f66452f39bccba786c6860ff6", "size": 29051477, "ipfsCIDv1": "bafybeih3oapzded4pnjwkgp37eec2jdqrjfvg6ghrz4z3vtdxd7pg2uez4"}, "src": {"name": "/app.atrium_161_src.tar.gz", "sha256": "7d7e110b40aa1b3039e75fcafbcf51d6ebd2a67e245fd0a31062ca9b9e0d1a7e", "size": 338481352}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.4.0", "versionCode": 161, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["5ebad1ff2f9cdc63f28b364addf9e858330db26909d9eba8dfbccb998de37351"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "app.atrium.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "app.chompass": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"ce9773678dfef3a88468395563f9ca16a55b335f08bcd4a5699c00ba694b4786": null, "ccd9da2850b3a9decdc94f816c163d7016ab12b99169e13d734beab7e038b36d": {"added": 1786866775484, "file": {"name": "/app.chompass_49.apk", "sha256": "ccd9da2850b3a9decdc94f816c163d7016ab12b99169e13d734beab7e038b36d", "size": 17976103, "ipfsCIDv1": "bafybeig7ebybfjemshl7e2ndvmxnm2p6wbgpcyiriuazw3eio3sbgrlsrq"}, "src": {"name": "/app.chompass_49_src.tar.gz", "sha256": "eee78dfa5fe3e677cca9858686c3381818ee816c9ea1635fa690ddbf394b9d41", "size": 9968184}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "3.12.0", "versionCode": 49, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["d636034a6e4c5a618889d7d77f15b5a0071a229007f9e8510d27a9258027ca12"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.health.READ_WEIGHT"}, {"name": "android.permission.health.WRITE_WEIGHT"}, {"name": "android.permission.health.READ_NUTRITION"}, {"name": "android.permission.health.WRITE_NUTRITION"}, {"name": "android.permission.health.READ_BODY_FAT"}, {"name": "android.permission.health.WRITE_BODY_FAT"}, {"name": "android.permission.health.READ_ACTIVE_CALORIES_BURNED"}, {"name": "android.permission.health.READ_TOTAL_CALORIES_BURNED"}, {"name": "android.permission.health.READ_STEPS"}, {"name": "android.permission.health.READ_EXERCISE"}, {"name": "android.permission.health.WRITE_HEIGHT"}, {"name": "android.permission.health.READ_SLEEP"}, {"name": "android.permission.health.READ_RESTING_HEART_RATE"}, {"name": "android.permission.health.READ_HYDRATION"}, {"name": "android.permission.health.WRITE_HYDRATION"}, {"name": "android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND"}, {"name": "android.permission.health.READ_HEALTH_DATA_HISTORY"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "app.chompass.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "1a1bc85ba413e938175cd5a59a1359ab6e6bddf1f0dd7650405c7a4ef6a53dfc": {"added": 1786749285772, "file": {"name": "/app.chompass_47.apk", "sha256": "1a1bc85ba413e938175cd5a59a1359ab6e6bddf1f0dd7650405c7a4ef6a53dfc", "size": 17931047, "ipfsCIDv1": "bafybeibp7qbgsoj4ww76yxgep2tzk6mo7yhnmcw6vtxwrgwfwqaifhf3m4"}, "src": {"name": "/app.chompass_47_src.tar.gz", "sha256": "d126bbfb93bc67f83800899fa8ea39db9d8a41f358b6b409f069eea630ec962f", "size": 9428169}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "3.10.0", "versionCode": 47, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["d636034a6e4c5a618889d7d77f15b5a0071a229007f9e8510d27a9258027ca12"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.health.READ_WEIGHT"}, {"name": "android.permission.health.WRITE_WEIGHT"}, {"name": "android.permission.health.READ_NUTRITION"}, {"name": "android.permission.health.WRITE_NUTRITION"}, {"name": "android.permission.health.READ_BODY_FAT"}, {"name": "android.permission.health.WRITE_BODY_FAT"}, {"name": "android.permission.health.READ_ACTIVE_CALORIES_BURNED"}, {"name": "android.permission.health.READ_TOTAL_CALORIES_BURNED"}, {"name": "android.permission.health.READ_STEPS"}, {"name": "android.permission.health.READ_EXERCISE"}, {"name": "android.permission.health.WRITE_HEIGHT"}, {"name": "android.permission.health.READ_SLEEP"}, {"name": "android.permission.health.READ_RESTING_HEART_RATE"}, {"name": "android.permission.health.READ_HYDRATION"}, {"name": "android.permission.health.WRITE_HYDRATION"}, {"name": "android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND"}, {"name": "android.permission.health.READ_HEALTH_DATA_HISTORY"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "app.chompass.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "97397c26c5182dab2c418287cdacc315fe68690cb1ad29914ef48602ca5a0ab5": {"whatsNew": {"en-US": "• Dynamic water goal + adaptive reminders (Beta, opt-in): goal from body weight, expected temperature and activity; drinking window + cup plan reminders\n• Pick the emoji or photo shown for a food entry (44 emojis, system photo picker)\n• Auto-capitalized AI food names; custom AI endpoints trust phone-installed CA certificates\n• Coach prompt caching with Anthropic (cheaper turns); Open Food Facts search retries + fallback chain, no doubled brand\n• Fixes: edit-food sheet shake/frozen list, water pr"}}}}, "app.getknit.knit": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"62136d7e1decc6719101a3803d1194f7df6ac5b90c21f92f2297c4a9201d91ec": {"added": 1786749285772, "file": {"name": "/app.getknit.knit_12.apk", "sha256": "62136d7e1decc6719101a3803d1194f7df6ac5b90c21f92f2297c4a9201d91ec", "size": 72363086, "ipfsCIDv1": "bafybeiglnyafj7p7lhcarubxycomdwy3elgwj2a6ejqirjo4mdpf56qq7a"}, "src": {"name": "/app.getknit.knit_12_src.tar.gz", "sha256": "becb744b54107e875a9defcfa54d1718ff5cc7712bad74c638c0cb3a78ab66d5", "size": 32921745}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.2.3", "versionCode": 12, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 36}, "signer": {"sha256": ["b18a283d11797c2a84a008c1fcb9e1b864e7b4c3b301408f7a4a80624b0e631c"]}, "usesPermission": [{"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.NEARBY_WIFI_DEVICES"}, {"name": "android.permission.ACCESS_FINE_LOCATION", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_COARSE_LOCATION", "maxSdkVersion": 32}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_ADVERTISE"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "app.getknit.knit.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}]}, "whatsNew": {"en-US": "A themed launcher icon, and a launch screen that follows your device's light or dark theme.\n\nKnit's icon now supplies a monochrome layer, so on Android 13 and newer it takes on the colours of your\nthemed-icon home screen instead of falling back to a generic shape.\n\nStarting Knit on a dark-themed device no longer flashes a white screen before the app appears. The\nlaunch screen now uses the same light or dark background as the rest of the app.\n"}}}}, "app.nightdrop": {"metadata": {"added": 1786866775484, "categories": ["Messaging"], "issueTracker": "https://github.com/nightdropapp/nightdrop/issues", "lastUpdated": 1786866775484, "license": "AGPL-3.0-or-later", "sourceCode": "https://github.com/nightdropapp/nightdrop", "screenshots": {"phone": {"en-US": [{"name": "/app.nightdrop/en-US/phoneScreenshots/01.png", "sha256": "efb3ce508f70243f4ce5635377560a33f9119ecaee4e239a3ce4791b0eb3e91c", "size": 115274}, {"name": "/app.nightdrop/en-US/phoneScreenshots/02.png", "sha256": "3f12339c2a917f1920e040e24749bd6fe68d2b1e2025ac8d92fe06a7a90ce102", "size": 344940}, {"name": "/app.nightdrop/en-US/phoneScreenshots/03.png", "sha256": "6c9351b182a8398d9fe8185f0696268037d7ac1fe9e14f1e4c45bf03e9f8e5a3", "size": 105454}, {"name": "/app.nightdrop/en-US/phoneScreenshots/04.png", "sha256": "09f675c935bd383629305163590bc2b2b5786881829d9b79554b5bf4c25a340c", "size": 186850}, {"name": "/app.nightdrop/en-US/phoneScreenshots/05.png", "sha256": "3711f4136a00c73e80f5592dd1829cb45b30480e3be79920299bbd16ed3dce50", "size": 204805}, {"name": "/app.nightdrop/en-US/phoneScreenshots/06.png", "sha256": "6e1b9301e4f1f4178caa0123d207cd4a680d8d843bb6451f529c8c3b1f4eeaf1", "size": 155337}]}}, "authorEmail": "security@nightdrop.app", "authorName": "Night Drop", "name": {"en-US": "Night Drop"}, "summary": {"en-US": "Anonymous, end-to-end encrypted 1:1 chat over Tor"}, "description": {"en-US": "Night Drop is a privacy-first 1:1 messenger. Like a night deposit box: every message is a sealed envelope, dropped for one person only, opened by no one in between.\n\n* Anonymous identities only — no phone number, no email, no account. Your identity is a keypair held on your device.\n* End-to-end encryption with the Signal Double Ratchet: only the sender and receiver can read a message.\n* Peer-to-peer over Tor by default. There is no clearnet path — the only network egress is the Tor network.\n* Local-first storage: messages live on your device. Optional server storage is opt-in, capped at 24 hours, and shows a persistent warning in the chat while active.\n* An untrusted store-and-forward relay carries offline delivery only. Any relay ever holds nothing but opaque, already-encrypted blobs under unlinkable handles — no keys, no plaintext, no identities, no logs.\n* Authorization before the first message: a stranger cannot message you until you approve them (scan a pre-authorized QR, or exchange a short code whose secret words block a man-in-the-middle).\n* Safety-number verification (scan or compare) to confirm no one is in the middle.\n* User-owned encrypted backups: the recovery password is generated on your device, shown once, and never sent to any server. Lose it and the backup is unrecoverable — by design.\n* No analytics, no crash reporters, no ad SDKs, no Google Play Services, and no third-party push service.\n* No automatic update check on F-Droid installs. Other builds (sideloaded, or the desktop AppImage, which have no update channel of their own) ask the Night Drop onion site over Tor, at most once a day, whether a newer version exists — and only tell you. The app never installs anything, and does not hold the permission that would let it.\n\nNight Drop is free software (AGPL-3.0-or-later) and built to be reproducible: anyone can rebuild the release from source and confirm it matches, byte for byte.\n"}, "icon": {"en-US": {"name": "/icons/app.nightdrop.4073.png", "sha256": "53f44a8b56fbeab41c9fa90d492f8109997cf8785ae2bb750243cf370bc1ac45", "size": 3636}}, "preferredSigner": "d08b8e6408aff4f43556c05b819fef25afdd6912be7a678b0552468a4582c0ac"}, "versions": {"99917616a293d4b34c28c4e5af7c09577d3b6371c6d0f0e7d66d18da27051bea": {"added": 1786866775484, "file": {"name": "/app.nightdrop_4073.apk", "sha256": "99917616a293d4b34c28c4e5af7c09577d3b6371c6d0f0e7d66d18da27051bea", "size": 48397060, "ipfsCIDv1": "bafybeidgvgorfuk3lhvejvwdobaw7wziyyhmydkqd2uy6mhrwr2gqau3vy"}, "src": {"name": "/app.nightdrop_4073_src.tar.gz", "sha256": "a06aa09b75f1d5fa27ba641ea4f41a9b86757e489ae1f298e53ee216eb4b83da", "size": 68718783}, "manifest": {"nativecode": ["x86_64"], "versionName": "0.1.21", "versionCode": 4073, "features": [{"name": "android.hardware.camera.any"}], "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["d08b8e6408aff4f43556c05b819fef25afdd6912be7a678b0552468a4582c0ac"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.DETECT_SCREEN_CAPTURE"}, {"name": "android.permission.VIBRATE"}, {"name": "app.nightdrop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}]}, "whatsNew": {"en-US": "Installed from F-Droid? Night Drop no longer checks for its own updates — F-Droid does that for you. Other builds (sideloaded, or the desktop AppImage) still ask the Night Drop onion site over Tor at most once a day, and only ever tell you; nothing downloads or installs on its own. \"Update app\" in the menu still works everywhere, and this is now spelled out in About.\n\nThe banner shown while your address publishes no longer promises \"1-3 min\" — it can take several minutes.\n"}}, "243a7d659652ec19d61aa89d376cbc910484ec384c7582a193cd557f790574bc": {"added": 1786866775484, "file": {"name": "/app.nightdrop_4072.apk", "sha256": "243a7d659652ec19d61aa89d376cbc910484ec384c7582a193cd557f790574bc", "size": 45366044, "ipfsCIDv1": "bafybeigoechtqd74narktuheyglnufbbwpkqlbetu3ozis4yof77djdchu"}, "src": {"name": "/app.nightdrop_4072_src.tar.gz", "sha256": "e3a286c1e39f101cc9ee08f80032272a2b2015f4d2ed572930c7f34c184df552", "size": 68719221}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.1.21", "versionCode": 4072, "features": [{"name": "android.hardware.camera.any"}], "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["d08b8e6408aff4f43556c05b819fef25afdd6912be7a678b0552468a4582c0ac"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.DETECT_SCREEN_CAPTURE"}, {"name": "android.permission.VIBRATE"}, {"name": "app.nightdrop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}]}, "whatsNew": {"en-US": "Installed from F-Droid? Night Drop no longer checks for its own updates — F-Droid does that for you. Other builds (sideloaded, or the desktop AppImage) still ask the Night Drop onion site over Tor at most once a day, and only ever tell you; nothing downloads or installs on its own. \"Update app\" in the menu still works everywhere, and this is now spelled out in About.\n\nThe banner shown while your address publishes no longer promises \"1-3 min\" — it can take several minutes.\n"}}, "39d0cb417375c395a6a7037f0729d3426980e51a3f3d5c0eb4ce861f72d88894": {"added": 1786866775484, "file": {"name": "/app.nightdrop_4071.apk", "sha256": "39d0cb417375c395a6a7037f0729d3426980e51a3f3d5c0eb4ce861f72d88894", "size": 36485932, "ipfsCIDv1": "bafybeif6ibfwaagfhixh5ogcmjo2wlcbkosd3l4iwb7gxzr5mg2szzumeu"}, "src": {"name": "/app.nightdrop_4071_src.tar.gz", "sha256": "f853d9b70556e6f7d24249c8ad66c2587b3a8d3a8dc0da262ee6a546e70f84a1", "size": 68718963}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "0.1.21", "versionCode": 4071, "features": [{"name": "android.hardware.camera.any"}], "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["d08b8e6408aff4f43556c05b819fef25afdd6912be7a678b0552468a4582c0ac"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.DETECT_SCREEN_CAPTURE"}, {"name": "android.permission.VIBRATE"}, {"name": "app.nightdrop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}]}, "whatsNew": {"en-US": "Installed from F-Droid? Night Drop no longer checks for its own updates — F-Droid does that for you. Other builds (sideloaded, or the desktop AppImage) still ask the Night Drop onion site over Tor at most once a day, and only ever tell you; nothing downloads or installs on its own. \"Update app\" in the menu still works everywhere, and this is now spelled out in About.\n\nThe banner shown while your address publishes no longer promises \"1-3 min\" — it can take several minutes.\n"}}}}, "app.simple.inure": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"0d6efb0de32ee2939567a517ea9a7582c246286647a53e9a8caf0a87038cba99": null, "c25311867573b280c2ee6d6603c2bc7417f78f298302f33b5f828c6cc9712f29": {"added": 1786749285772, "file": {"name": "/app.simple.inure_10721.apk", "sha256": "c25311867573b280c2ee6d6603c2bc7417f78f298302f33b5f828c6cc9712f29", "size": 27896496, "ipfsCIDv1": "bafybeidve72m2fhnigx4lohuwwryr2hnry2glzv5ocntcl4dnkgtypmyuy"}, "src": {"name": "/app.simple.inure_10721_src.tar.gz", "sha256": "ad28ff870b6d9aa6b222a45cba66615afb790f6ca19bab6005b69133f1869cea", "size": 31668266}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "build107.2.1", "versionCode": 10721, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["4a3f711142250805c7bb5c0a5a3287631bdb948816e6f4afc9524d0eb46b6b1b"]}, "usesPermission": [{"name": "android.permission.KILL_BACKGROUND_PROCESSES"}, {"name": "android.permission.GET_PACKAGE_SIZE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.DUMP"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.GET_APP_OPS_STATS"}, {"name": "android.permission.CLEAR_APP_CACHE"}, {"name": "android.permission.DELETE_CACHE_FILES"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.PACKAGE_USAGE_STATS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "app.simple.inure.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "moe.shizuku.manager.permission.API_V23"}]}, "antiFeatures": {"NonFreeAdd": {"en-US": "Promotes its non-libre paid version"}, "NonFreeDep": {"en-US": "Depends on Shizuku for functionality"}}, "whatsNew": {"en-US": "Refer to Change Logs under About section of the app to get the detailed list of all changes in this version.\n\nFeel free to join app's Telegram channel for future development updates: https://t.me/inure_app_manager\n"}}}}, "app.status.mobile": {"metadata": {"added": 1786866775484, "categories": ["Connectivity", "Messaging", "Security", "Wallet"], "changelog": "https://github.com/status-im/status-app/releases", "issueTracker": "https://github.com/status-im/status-app/issues", "lastUpdated": 1786866775484, "license": "MPL-2.0", "sourceCode": "https://github.com/status-im/status-app", "webSite": "https://status.app", "screenshots": {"phone": {"en-US": [{"name": "/app.status.mobile/en-US/phoneScreenshots/1.png", "sha256": "157eca6c7426ff85f11d88422ebb5fd5be19b753aa6e9d45ad84cd4caa0f6faf", "size": 146432}, {"name": "/app.status.mobile/en-US/phoneScreenshots/2.png", "sha256": "36e0f96c8b98442f83477f8c4b9425160f49cbb4969a94625264e0326f04ba2f", "size": 514169}, {"name": "/app.status.mobile/en-US/phoneScreenshots/3.png", "sha256": "66023c1e81683c3314e2616c6a8e75a2e3731c60fb1997f97659d0095dffdd99", "size": 628684}, {"name": "/app.status.mobile/en-US/phoneScreenshots/4.png", "sha256": "8b0c8d388a74d275ebbea8f69646ff6b62ef5d0a07e58e083fdd816c5c9d86c9", "size": 513487}, {"name": "/app.status.mobile/en-US/phoneScreenshots/5.png", "sha256": "436e96508304ab6be68df24dca00dd25dedabef52376507dcb1d0ccb9bb7021c", "size": 836435}, {"name": "/app.status.mobile/en-US/phoneScreenshots/6.png", "sha256": "e154f1e83917e7eed1ab4fb1d825836240277190a797522d069ab26343070ab9", "size": 590823}]}}, "authorEmail": "siddarth@status.im", "authorName": "Status Research & Development GmbH", "authorWebSite": "https://status.app", "name": {"en-US": "Status - Chat, Wallet, Browser"}, "summary": {"en-US": "Privacy super app with messenger, crypto wallet, browser, communities & more"}, "description": {"en-US": "Status is your privacy companion for private, fully end-to-end encrypted messaging with friends, family, and business partners; a secure crypto wallet; a built-in browser for accessing websites and decentralized services; and decentralized, self-sovereign, censorship-resistant community spaces.\n\n- Anonymous user profiles: No phone number, email, or bank account required to create a Status profile.\n- Truly private messenger: Peer-to-peer, fully end-to-end encrypted messaging (no backdoors), built for secure and confidential communication.\n- Secure crypto wallet: A self-custodial, multi-chain wallet for sending, receiving, and managing digital assets. Only you hold the keys to your funds.\n- Browser: Access websites, apps, and decentralized services directly within Status, with your wallet seamlessly connected for secure and private interactions.\n- Decentralized communities: Self-sovereign, censorship-resistant community spaces for those who value privacy, freedom, and autonomy in their digital interactions.\n- Token market center: A fast and simple way to track token prices and volume at a glance.\n"}, "icon": {"en-US": {"name": "/app.status.mobile/en-US/icon_vSpQSVl1cpBuno6M5kl732qS_AxXOrBOSf36lS45Q6E=.png", "sha256": "bd2a5049597572906e9e8e8ce6497bdf6a92fc0c573ab04e49fdfa952e3943a1", "size": 138270}}, "preferredSigner": "64fd80527f622ee0ea0b9e629618ef63200c114c967d79bc4ac10baff885a5a4"}, "versions": {"db731734d039e050c598bcbaff0c2f02bc40668926d626b19ebf96668efe95e6": {"added": 1786866775484, "file": {"name": "/app.status.mobile_29500000.apk", "sha256": "db731734d039e050c598bcbaff0c2f02bc40668926d626b19ebf96668efe95e6", "size": 281646436, "ipfsCIDv1": "bafybeih42ubwuzaebz34zqxj4lrwxmzmbm7h7kkkflsumh4jbtjkp5x3kq"}, "src": {"name": "/app.status.mobile_29500000_src.tar.gz", "sha256": "8f497c5bbc88577c7f229c3e41c659cb549de4a2b214cb7e0e8c3f6cae20317d", "size": 229454679}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "2.37.1", "versionCode": 29500000, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 35}, "signer": {"sha256": ["64fd80527f622ee0ea0b9e629618ef63200c114c967d79bc4ac10baff885a5a4"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.NFC"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "app.status.mobile.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Relies on centralized services like Infura for blockchain interactions, making it dependent on non-libre infrastructure."}, "TetheredNet": {"en-US": "Messaging and user profiles are stored on Waku servers rather than being fully peer-to-peer, requiring a connection to a specific service instance."}, "Tracking": {"en-US": "Collects and processes IP addresses, wallet addresses, and transaction details via the API Proxy Server. Data is shared with third-party services like Infura, Grove, and Cryptocompare."}}}}}, "cash.p.terminal": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"a0dbf34f16f0837a16ea6bef280c73eac26bb43b90249985c59ef0ff911fab6a": null, "df09ee55be39eeab2ae624820fe80bc7d98c5370ae1259906c35fa2281b490bb": {"added": 1786866775484, "file": {"name": "/cash.p.terminal_252.apk", "sha256": "df09ee55be39eeab2ae624820fe80bc7d98c5370ae1259906c35fa2281b490bb", "size": 186835019, "ipfsCIDv1": "bafybeibaksxta6do6t3qmcamhecb3x623xsw4nrftilaahlm2auk76nvwu"}, "src": {"name": "/cash.p.terminal_252_src.tar.gz", "sha256": "4be968df985537da4f54f8038165dd7db17ab6b5249b733f3f2590784851180a", "size": 28603406}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "0.59.1", "versionCode": 252, "usesSdk": {"minSdkVersion": 27, "targetSdkVersion": 36}, "signer": {"sha256": ["5c0224dc8020f8806efd69d04f870befc6738cecee9e5db427916070e48f9088"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.NFC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "cash.p.terminal.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Rely on p.cash which is not open source."}}}}}, "cc.polysfaer.stochapop": {"metadata": {"lastUpdated": 1786749285772, "screenshots": {"phone": {"en-US": [{"name": "/cc.polysfaer.stochapop/en-US/phoneScreenshots/1.png", "sha256": "d83696236c998a3f24e1ac5e000ac57a09b30f91f0218eaa8a14cf317a5d28b0", "size": 157457}, {"name": "/cc.polysfaer.stochapop/en-US/phoneScreenshots/2.png", "sha256": "2152691beb0f7808b7185afded30c16a8e728adfbcf6c341d89161cf335ebb00", "size": 140762}, {"name": "/cc.polysfaer.stochapop/en-US/phoneScreenshots/3.png", "sha256": "ff9a57766200cc7e40ee2a976f3efe6332b176466bbe3ba91fdc5d36483a7ed2", "size": 137667}]}}}, "versions": {"95e9a9b55a589a8c1f10eda4c724e8692d62a5f8a2d5e17b816ec1d0148c84c6": null, "0b1c5c3a2c481217cfa1c5ba563233c6213a4a722120bd4bd8418527611130e0": {"added": 1786749285772, "file": {"name": "/cc.polysfaer.stochapop_8.apk", "sha256": "0b1c5c3a2c481217cfa1c5ba563233c6213a4a722120bd4bd8418527611130e0", "size": 2889405, "ipfsCIDv1": "bafybeicrv3uuv5ycwdaxcqk2k4x45b3nko724gcc7nakmb5w4zv3ppr7ty"}, "src": {"name": "/cc.polysfaer.stochapop_8_src.tar.gz", "sha256": "cc8af589abd57f65a0f53c3fb394208c800cadb3235942f8e236b4a3cfb17629", "size": 599286}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.4.0", "versionCode": 8, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 36}, "signer": {"sha256": ["9d79389f7ec396313cd949bdb23d3066cf11734d210ef68e3916f36a4a042ad5"]}, "usesPermission": [{"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.VIBRATE"}, {"name": "cc.polysfaer.stochapop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "cc.zachy.pulse": {"metadata": {"added": 1786866775484, "categories": ["Connectivity", "Sports & Health"], "issueTracker": "https://github.com/zoop-dev/pulse/issues", "lastUpdated": 1786866775484, "license": "AGPL-3.0-or-later", "sourceCode": "https://github.com/zoop-dev/pulse", "webSite": "https://zachy.cc", "featureGraphic": {"en-US": {"name": "/cc.zachy.pulse/en-US/featureGraphic_vCnR08dRVuWHGxTVRo2WJv8mxG9ZyfX9x6lXkL7fIqg=.png", "sha256": "bc29d1d3c75156e5871b14d5468d9626ff26c46f59c9f5fdc7a95790bedf22a8", "size": 41185}, "de-DE": {"name": "/cc.zachy.pulse/de-DE/featureGraphic_PcT_RPaVJxqaPbBc4kmaYMs_bMD0REzSHn-jXcPhw44=.jpg", "sha256": "3dc4ff44f695271a9a3db05ce2499a60cb3f6cc0f4444cd21e7fa35dc3e1c38e", "size": 256420}}, "screenshots": {"phone": {"en-US": [{"name": "/cc.zachy.pulse/en-US/phoneScreenshots/1.png", "sha256": "b89505ba31a169308a371f9ed992b0c69fc9fa2fea7ab44f6d6fa8c869c5cb17", "size": 182508}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/10-Dashboard.png", "sha256": "1d05eeee0acbc67e218281f9006902b90e6bcd761dc80d3f608af41d29a07e45", "size": 90211}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/11-Devices.png", "sha256": "81e56546e2cae56ae9b90da5cbcae57dab8c1fe47c6d2596a62af1eba8ab97d1", "size": 52856}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/2.png", "sha256": "881f0cdadeac4192334bfb2b2187bf0148d140720688a9014ea239cb4c238b57", "size": 166380}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/20-Activity.png", "sha256": "a41e20dd52abffe7f479e6f2c83a357cbc5f0be9163beef8327e293c856b296a", "size": 104304}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/3.png", "sha256": "2e253867f7ef3e5798e3d227d99e987c92507dd7067e7fbf5c0ddf402f5e3f1f", "size": 145440}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/4.png", "sha256": "5726fbc261f68683b37de30a84b6b7a3e3a780275cd7ecf296c013de4753c6bd", "size": 127656}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/40-SleepPerDay.png", "sha256": "da17cc6a22b84b31a34d6bcfadc21cee1955aa8770670479df48bfb501e1819b", "size": 45522}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/41-SleepPerWeek.png", "sha256": "aa8a0f913669b29a5f60a49c26d1a9e1eeaa89653b5e6baf193331dbd4ed6041", "size": 43750}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/50-StepsPerDay.png", "sha256": "d8cec5b001e1592ffd6f9d41f03a638dc2274a559e126a89becfe29c88ac35c8", "size": 48664}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/51-StepsPerWeek.png", "sha256": "bd278dc725f0678638f1e2bb7099093136d7874a7c88d0c57f7135e8c05f7b6e", "size": 42701}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/52-StepsPerMonth.png", "sha256": "50befef27f72f92d96c39752a519a39ed6932a0dac797155e5ae414d143fb04c", "size": 48530}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/60-Stress.png", "sha256": "5f787311438be11ea265132e424173a85bd235c73258e8798f2726558ec38258", "size": 45293}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/70-LiveActivity.png", "sha256": "fa34ba8c4c3550d553d055f33ea59c14ade6aeb564a6fb05e07977f2114adfe6", "size": 59367}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/70-SportActivities.png", "sha256": "da16aa4e3063a84500818c573ca41b5f8f91d326fbf43fd8f1fc10c55e5c2401", "size": 64836}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/71-SportActivitiesFilter.png", "sha256": "6797e4cb01c75d77843bb5c06db03573e9787320b0414e66e02b029665f5ed98", "size": 23993}, {"name": "/cc.zachy.pulse/en-US/phoneScreenshots/72-SportActivitiesSummary.png", "sha256": "6242e908d127d2906db5d542f3650402d3cc2061731c7c7cfa4a51c15a2322fa", "size": 51702}]}}, "authorName": "zoop", "name": {"en-US": "Gadgetbridge", "ar": "Gadgetbridge", "cs-CZ": "Gadgetbridge", "de-DE": "Gadgetbridge", "et": "Gadgetbridge", "hu-HU": "Gadgetbridge", "it-IT": "Gadgetbridge", "nl-NL": "Gadgetbridge", "pl-PL": "Gadgetbridge", "pt-BR": "Gadgetbridge", "pt-PT": "Gadgetbridge", "ru": "Gаdgetbridge", "sr": "Gadgetbridge", "ta-IN": "Gadgetbridge", "tr-TR": "Gadgetbridge", "uk": "Gadgetbridge", "zh-CN": "Gadgetbridge"}, "summary": {"en-US": "Use your smart watch and other bluetooth devices and keep your data private!", "ar": "استخدم ساعتك الذكية وأجهزة البلوتوث الأخرى وحافظ على خصوصية بياناتك!", "cs-CZ": "Používejte chytré hodinky a další Bluetooth zařízení, data zůstávají u vás!", "de-DE": "Nutze deine Smartwatch (und andere BT Geräte) und behalte deine Daten für dich!", "et": "Liidestus sinu nutikella või muu Bluetoothi seadmega ja privaatne andmesalvestus", "hu-HU": "Használja okosóráját és más Bluetooth-eszközeit, és védje adatainak biztonságát!", "it-IT": "Usa lo smart watch e altri dispositivi bluetooth: i tuoi dati restano privati!", "nl-NL": "Gebruik uw smartwatch en andere gadgets terwijl uw gegevens privé blijven!", "pl-PL": "Używaj smartwatcha i innych urządzeń Bluetooth, dbając o prywatność danych!", "pt-BR": "Use relógios inteligentes e outros dispositivos Bluetooth e proteja seus dados!", "pt-PT": "Usa o teu smartwatch e dispositivos bluetooth, e mantém os teus dados privados!", "ru": "Используйте свои умные часы и устройства Bluetooth с конфиденциальностью данных!", "sr": "Користите паметан сат или уређај блутута и чувајте податке за себе!", "ta-IN": "உங்கள் அறிவுள்ள வாட்ச் மற்றும் பிற ஊடலை சாதனங்களைப் பயன்படுத்தி உங்கள் தரவைத் தன", "tr-TR": "Akıllı saat ve Bluetooth aygıtlarını kullanın ve verinizin gizliliğini koruyun!", "uk": "Використовуй свій смарт-годинник та інші пристрої Bluetooth і збережіть безпеки!", "zh-CN": "使用您的智能手表和其它蓝牙设备，同时保护您的数据隐私！", "zh-TW": "使用智慧手錶和其他藍牙設備，保護您的資料隱私！"}, "description": {"en-US": "Use your smart watch, fitness tracker, and other Bluetooth devices without the vendor's closed source application and without the need to create an account and transmit any of your data to the vendor's servers.\nFor a full list of supported device, please refer to our Gadgets page https://gadgetbridge.org/gadgets/.\n\nYou can get notifications on your wrist and (depending on the device):\n\n- Collect data from the device sensors.\n- Control music playing on your Android device.\n- See the weather.\n- Get directions.\n", "ar": "استخدم ساعتك الذكية، ومتتبع اللياقة البدنية، وأجهزة البلوتوث الأخرى دون الحاجة إلى تطبيق البائع مفتوح المصدر ودون الحاجة إلى إنشاء حساب وإرسال أي من بياناتك إلى خوادم البائع.\nللحصول على قائمة كاملة بالأجهزة المدعومة، يُرجى الرجوع إلى صفحة الأجهزة الخاصة بنا https://gadgetbridge.org/gadgets/.\n\nيمكنك الحصول على إشعارات على معصمك و (حسب الجهاز):\n\n- جمع البيانات من مستشعرات الجهاز.\n- التحكم في تشغيل الموسيقى على جهاز الأندرويد الخاص بك.\n- رؤية الطقس.\n- الحصول على الاتجاهات.\n", "cs-CZ": "Používejte své chytré hodinky, fitness tracker a další Bluetooth zařízení bez proprietární aplikace od výrobce, bez nutnosti vytvářet si účet a přenášet jakákoli data na servery výrobce.\nÚplný seznam podporovaných zařízení naleznete na naší stránce s gadgety: https://gadgetbridge.org/gadgets/.\n\nNa svém zápěstí můžete dostávat oznámení a (v závislosti na zařízení):\n\n- Sbírat data ze senzorů zařízení.\n- Ovládat přehrávání hudby na vašem zařízení Android.\n- Podívat se na počasí.\n- Získávat navigační pokyny.\n", "de-DE": "Nutze deine Smartwatch, deinen Fitness-Tracker und andere Bluetooth-Geräte ohne die geschlossene Hersteller-App, ohne ein Konto erstellen zu müssen und ohne dass deine Daten an die Server des Herstellers übertragen werden.\nEine vollständige Liste der unterstützten Geräte findest du auf unserer Gadget-Seite: https://gadgetbridge.org/gadgets/.\n\nDu kannst Benachrichtigungen direkt am Handgelenk erhalten und (je nach Gerät):\n\n- Daten von den Sensors des Geräts sammeln.\n- Die Musikwiedergabe auf deinem Android-Gerät steuern.\n- Das Wetter anzeigen.\n- Navigationsanweisungen erhalten.\n", "et": "Kasuta oma nutikella, fitness-trackerit ja muid bluetooth-seadmeid ilma seadmetootja suletud lähtekoodiga rakenduseta ja ilma vajaduseta luua konto ning edastada oma andmeid tootja serveritesse.\nToetatavate seadmete täieliku nimekirja leiad meie kodulehelt https://gadgetbridge.org/gadgets/.\n\nSa võid saada teateid oma nutiseadmesse ja (sõltuvalt seadmest):\n\n- koguda andmeid seadme anduritelt,\n- juhtida muusikaesitust oma Androidi seadmes,\n- vaadata ilmateadet,\n- juhatada teed.\n", "hu-HU": "Használja okosóráját, aktivitásmérőjét és egyéb Bluetooth-eszközeit a gyártó zárt forráskódú alkalmazása nélkül, valamint anélkül, hogy fiókot kellene létrehoznia vagy bármilyen adatát továbbítania kellene a gyártó kiszolgálóira.\nA támogatott eszközök teljes listájáért tekintse meg a következő weboldalt: https://gadgetbridge.org/gadgets/.\n\nÉrtesítéseket kaphat a csuklóján, és (az eszköztől függően):\n\n- Adatokat gyűjthet az eszköz érzékelőiből.\n- Vezérelheti az Android-eszközén lejátszott zenét.\n- Megtekintheti az időjárást.\n- Útvonal-útmutatást kaphat.\n", "it-IT": "Utilizza il tuo smart watch, fitness tracker e altri dispositivi bluetooth senza dipendere dall'applicazione proprietaria del vendor e senza bisogno di creare accounts e trasferire i tuoi dati altrove.\nLa lista completa dei dispositivi supportati è disponibile sul nostro sito https://gadgetbridge.org/gadgets/.\n\nRicevi le notifiche direttamente sul dispositivo, e inoltre (a seconda del supporto):\n\n- memorizza i dati dai sensori\n- controlla le app per riprodurre musica sul tuo dispositivo android\n- vedi le condizioni meteorologiche\n- vedi le indicazioni stradali\n", "nl-NL": "Gebruik uw smartwatch, fitness tracker en andere bluetooth-apparaten zonder de gesloten apps van fabrikanten en zonder de verplichting om een account te maken en uw gegevens op te sturen naar de servers van de fabrikant.\nVoor een volledige lijst van ondersteunde apparaten, kijk op de Gadgets-pagina op onze website: https://gadgetbridge.org/gadgets/.\n\nU kunt meldingen op uw pols lezen en (afhankelijk van het apparaat):\n\n- Gegevens van de sensors van het apparaat verzamelen.\n- Het afspelen van muziek op uw Android-apparaat bedienen.\n- Het weerbericht zien.\n- Navigatie-instructies krijgen.\n", "pl-PL": "Korzystaj ze swojego smartwatcha, opaski fitness i innych urządzeń Bluetooth bez zamkniętej aplikacji producenta, bez konieczności zakładania konta i bez przesyłania danych na serwery producenta.\nPełną listę obsługiwanych urządzeń znajdziesz na naszej stronie: https://gadgetbridge.org/gadgets/\n\nNa swoim nadgarstku możesz otrzymywać powiadomienia i — w zależności od urządzenia:\n\n- Zbierać dane z czujników urządzenia.\n- Sterować odtwarzaniem muzyki na telefonie z Androidem.\n- Sprawdzać pogodę.\n- Otrzymywać wskazówki nawigacyjne.\n", "pt-BR": "Use seu relógio inteligente, monitor de fitness e outros dispositivos Bluetooth sem o aplicativo de código fechado do fornecedor e sem a necessidade de criar uma conta e transmitir seus dados para os servidores do fornecedor.\nPara obter uma lista completa dos dispositivos compatíveis, consulte nossa página de Gadgets https://gadgetbridge.org/gadgets/.\n\nVocê pode receber notificações no seu pulso e (dependendo do dispositivo):\n\n- Coletar dados dos sensores do dispositivo.\n- Controlar a reprodução de música no seu dispositivo Android.\n- Ver a previsão do tempo.\n- Obter direções.\n", "pt-PT": "Usa o teu smartwatch, pulseira, e outros dispositivos Bluetooth sem depender da aplicação oficial proprietária, e sem criar conta ou enviar os teus dados para servidores externos.\nPara uma lista completa de todos os dispositivos suportados, por favor consulta a nossa página de dispositivos https://gadgetbridge.org/gadgets/.\n\nPodes receber notificações no teu pulso e (dependendo do dispositivo):\n\n- Obter dados dos sensores do dispositivo.\n- Controlar a música do teu telemóvel.\n- Ver a meteorologia.\n- Obter direções.\n", "ru": "Используйте свои умные часы, фитнес-трекер и другие устройства Bluetooth без приложения производителя с закрытым исходным кодом и без необходимости создавать учётную запись и передавать какие-либо данные на серверы производителей.\nПолный список поддерживаемых устройств можно найти на <a href=\"https://gadgetbridge.org/gadgets/\">странице Гаджеты</a>.\n\nВы можете получать уведомления на своё запястье и (в зависимости от устройства):\n\n- Собирать данные с датчиков устройства.\n- Управлять музыкой воспроизводимой на вашем устройстве с Android.\n- Смотреть погоду.\n- Видеть направление куда идти.\n", "sr": "Користите свој паметни часовник, пратиоца вежбања или неки други уређај блутута без власничких програма затвореног кода и без потребе да стварате налог и преносите било какав свој податак продавцима.\nЗа потпуни списак подржаних уређаја, молим, обратите пажњу на нашу Матичну страницу https://gadgetbridge.org/gadget/\n\nМожете добијати обавештења на својој руци и (у зависности од уређаја):\n\n- Скупљати податке са пријемника уређаја.\n- Управљати музиком на свом уређају Андроида.\n- Прегледати временске прилике.\n- Добавити упутства за навођење.\n", "ta-IN": "உங்கள் அறிவுள்ள வாட்ச், ஃபிட்னச் டிராக்கர் மற்றும் பிற ஊடலை சாதனங்களை விற்பனையாளரின் மூடிய மூல பயன்பாடு இல்லாமல், கணக்கை உருவாக்கி உங்கள் தரவை விற்பனையாளரின் சேவையகங்களுக்கு அனுப்ப வேண்டிய அவசியமின்றி பயன்படுத்தவும். \nஆதரிக்கப்படும் சாதனத்தின் முழுப் பட்டியலுக்கு, எங்கள் கேசெட்கள் பக்கத்தைப் பார்க்கவும் https://gadgetbridge.org/gadgets/. \n\nஉங்கள் மணிக்கட்டில் அறிவிப்புகளைப் பெறலாம் மற்றும் (சாதனத்தைப் பொறுத்து): \n\n- சாதன உணரிகளிலிருந்து தரவைச் சேகரிக்கவும். \n- உங்கள் Android சாதனத்தில் இசையைக் கட்டுப்படுத்தவும். \n- வானிலை பார்க்கவும். \n- திசைகளைப் பெறுங்கள்.\n", "tr-TR": "Akıllı saatinizi, fitness takipçinizi ve diğer Bluetooth aygıtlarınızı, üreticinin kapalı kaynaklı uygulaması olmadan, hesap oluşturmanıza ve verilerinizi üreticinin sunucularına aktarmanıza gerek kalmadan kullanın.\nDesteklenen aygıtların tam listesi için lütfen Aygıtlar sayfamıza bakın: https://gadgetbridge.org/gadgets/.\n\nBilekliğinizden bildirimler alabilir ve ( aygıta bağlı olarak):\n\n- Aygıt sensörlerinden veri toplayabilirsiniz.\n- Android aygıtınızda çalan müziği denetleyebilirsiniz.\n- Hava durumunu görebilirsiniz.\n- Yol tarifi alabilirsiniz.\n", "uk": "Використовуйте свій смарт-годинник, фітнес-трекер та інші пристрої Bluetooth без застосунку із закритим кодом від постачальника, без необхідності створювати обліковий запис і передавати будь-які ваші дані на сервери постачальника.\nПовний список підтримуваних пристроїв дивіться на нашій сторінці гаджетів https://gadgetbridge.org/gadgets/.\n\nВи можете отримувати сповіщення на зап'ястя та (залежно від пристрою):\n\n- Збирати дані з датчиків пристрою.\n- Керувати музикою, що відтворюється на вашому пристрої Android.\n- Дивитися погоду.\n- Отримувати маршрути.\n", "zh-CN": "无需厂商的闭源应用，也无需创建账号或上传数据到厂商服务器，即可使用您的智能手表、健身追踪器和其它蓝牙设备。\n完整支持设备列表请参考我们的穿戴设备界面 https://gadgetbridge.org/gadgets/。\n\n您可以在手腕上接收通知，并根据设备支持以下功能：\n\n- 收集设备传感器数据。\n- 控制 Android 设备上的音乐播放。\n- 查看天气。\n- 获取导航指引。\n", "zh-TW": "無需使用廠商的封閉來源應用程序，也無需建立帳戶或將任何資料傳輸到廠商伺服器，即可使用您的智慧手錶、健身追蹤器和其他藍牙裝置。\n如需查看支援設備的完整列表，請造訪我們的 Gadgets 頁面： https://gadgetbridge.org/gadgets/。\n\n您可以在手腕上接收通知，並 (根據設備的不同) 執行以下操作：\n\n- 收集來自設備感測器的數據。\n- 控制 Android 裝置上播放的音樂。\n- 查看天氣。\n- 獲取路線導航。\n"}, "icon": {"en-US": {"name": "/cc.zachy.pulse/en-US/icon_X8EVBNWmEaTA1EERH5xgBoSpAan8BNTrrDa4Osj-Da8=.png", "sha256": "5fc11504d5a611a4c0d441111f9c600684a901a9fc04d4ebac36b83ac8fe0daf", "size": 27948}, "de-DE": {"name": "/cc.zachy.pulse/de-DE/icon_X8EVBNWmEaTA1EERH5xgBoSpAan8BNTrrDa4Osj-Da8=.png", "sha256": "5fc11504d5a611a4c0d441111f9c600684a901a9fc04d4ebac36b83ac8fe0daf", "size": 27948}}, "preferredSigner": "45cf6244bcd65f40a2221d0725e3b0cacbf7c9552735c1fec263c168f96e9234"}, "versions": {"73b2aaee11a99c6ca5b6651701cfabb08c70fdfdd300c0039d7d3510ef8ed553": {"added": 1786866775484, "file": {"name": "/cc.zachy.pulse_256.apk", "sha256": "73b2aaee11a99c6ca5b6651701cfabb08c70fdfdd300c0039d7d3510ef8ed553", "size": 22506562, "ipfsCIDv1": "bafybeiejuzgruoe663ixuryibtd6akgz4dpcrwiyxnbiheupga5ttqqsru"}, "src": {"name": "/cc.zachy.pulse_256_src.tar.gz", "sha256": "8af0a7cd45701403b50bdb4820c548201fcafda03e724cb3bc6e646d6bcf2df8", "size": 13506580}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.97.0-pulse", "versionCode": 256, "features": [{"name": "android.hardware.bluetooth"}], "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 34}, "signer": {"sha256": ["45cf6244bcd65f40a2221d0725e3b0cacbf7c9552735c1fec263c168f96e9234"]}, "usesPermission": [{"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.READ_CALL_LOG"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.PROCESS_OUTGOING_CALLS"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.CALL_PHONE"}, {"name": "android.permission.ANSWER_PHONE_CALLS"}, {"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.SEND_SMS"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "me.hackerchick.catima.READ_CARDS"}, {"name": "me.hackerchick.catima.debug.READ_CARDS"}, {"name": "nz.eloque.foss_wallet.READ_CARDS"}, {"name": "nz.eloque.foss_wallet.dev.READ_CARDS"}, {"name": "android.permission.INTERNET"}, {"name": "nodomain.freeyourgadget.internethelper.INTERNET"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.MEDIA_CONTENT_CONTROL"}, {"name": "com.termux.permission.RUN_COMMAND"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND"}, {"name": "android.permission.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE"}, {"name": "android.permission.VIBRATE"}, {"name": "cyanogenmod.permission.ACCESS_WEATHER_MANAGER"}, {"name": "cyanogenmod.permission.READ_WEATHER"}, {"name": "lineageos.permission.ACCESS_WEATHER_MANAGER"}, {"name": "lineageos.permission.READ_WEATHER"}, {"name": "org.omnirom.omnijaws.READ_WEATHER"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.health.WRITE_ACTIVE_CALORIES_BURNED"}, {"name": "android.permission.health.WRITE_HEART_RATE"}, {"name": "android.permission.health.WRITE_STEPS"}, {"name": "android.permission.health.WRITE_EXERCISE"}, {"name": "android.permission.health.WRITE_SLEEP"}, {"name": "android.permission.health.WRITE_TOTAL_CALORIES_BURNED"}, {"name": "android.permission.health.WRITE_DISTANCE"}, {"name": "android.permission.health.WRITE_VO2_MAX"}, {"name": "android.permission.health.WRITE_HEART_RATE_VARIABILITY"}, {"name": "android.permission.health.WRITE_WEIGHT"}, {"name": "android.permission.health.WRITE_OXYGEN_SATURATION"}, {"name": "android.permission.health.WRITE_BODY_TEMPERATURE"}, {"name": "android.permission.health.WRITE_SKIN_TEMPERATURE"}, {"name": "android.permission.health.WRITE_ELEVATION_GAINED"}, {"name": "android.permission.health.WRITE_SPEED"}, {"name": "android.permission.health.WRITE_POWER"}, {"name": "android.permission.health.WRITE_EXERCISE_ROUTE"}, {"name": "android.permission.health.WRITE_RESPIRATORY_RATE"}, {"name": "android.permission.health.WRITE_RESTING_HEART_RATE"}, {"name": "android.permission.health.WRITE_BLOOD_GLUCOSE"}, {"name": "android.permission.health.WRITE_STEPS_CADENCE"}, {"name": "android.permission.health.WRITE_CYCLING_PEDALING_CADENCE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "cc.zachy.pulse.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "chat.delta.lite": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"2bb74b59fc555f82102170836a73c19bfeb65a6bdccdbc10a1151a0db87981c0": null, "bf2188f167de74e56f608315ec92b022f2c3477f771876f3a2317882c6008a2f": null, "cb5f555daaec241b8665666796c32b66b6a0daab517ac0341e8225705b00a0d1": {"added": 1786749285772, "file": {"name": "/chat.delta.lite_300007513.apk", "sha256": "cb5f555daaec241b8665666796c32b66b6a0daab517ac0341e8225705b00a0d1", "size": 25148219, "ipfsCIDv1": "bafybeiaa3vvm4ffrrpynwszupgdwmewgglm4q6fumv67cxf2r3w7wxhq24"}, "src": {"name": "/chat.delta.lite_300007513_src.tar.gz", "sha256": "5bce081d5ee58aca8b53a9e36dce84a2cf81c21a071a18ab39b78b288f62f43e", "size": 8617619}, "manifest": {"nativecode": ["x86"], "versionName": "2.58.1", "versionCode": 300007513, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["a2ed516babc58b3eddfd353a11a9da981b4d4ca6eec8f1987db3288cdf51f06a"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.INSTALL_SHORTCUT"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RAISED_THREAD_PRIORITY"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_PHONE_CALL"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.MANAGE_OWN_CALLS"}, {"name": "chat.delta.lite.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "72a0f21a576bfa453dae749ef10ebf44122a62a12f5256f0001025c8afcc4d3f": {"added": 1786749285772, "file": {"name": "/chat.delta.lite_300007512.apk", "sha256": "72a0f21a576bfa453dae749ef10ebf44122a62a12f5256f0001025c8afcc4d3f", "size": 25098497, "ipfsCIDv1": "bafybeidoe7bnvu5w5axly5eaflaef5tsifbqjicrwkayawzxn3lhi3sdua"}, "src": {"name": "/chat.delta.lite_300007512_src.tar.gz", "sha256": "f50978d26c1ceb247ca43480d4fffb33a0d96e7a9d60e50425b5535b4a6b24ab", "size": 8617705}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "2.58.1", "versionCode": 300007512, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["a2ed516babc58b3eddfd353a11a9da981b4d4ca6eec8f1987db3288cdf51f06a"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.INSTALL_SHORTCUT"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RAISED_THREAD_PRIORITY"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_PHONE_CALL"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.MANAGE_OWN_CALLS"}, {"name": "chat.delta.lite.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "code.name.monkey.retromusic": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"9880c96b704f3428070dcdb2f7d69863cb7a99dc7d0f9d12932d9087be9fb2f6": null, "ef8c6012f821c92f7987f5f2a8165a5ea230fb4a86a599d051430fbdc3057fc7": {"added": 1786866775484, "file": {"name": "/code.name.monkey.retromusic_10703.apk", "sha256": "ef8c6012f821c92f7987f5f2a8165a5ea230fb4a86a599d051430fbdc3057fc7", "size": 9031762, "ipfsCIDv1": "bafybeibzujy3663q5jahcfpmvqwxi5qcujvceytg4i2fkgv22vx3wtjlk4"}, "src": {"name": "/code.name.monkey.retromusic_10703_src.tar.gz", "sha256": "624efb327eaeb29f6010513920b93d8d07d2bb1206ed14715cd3ff21aa011584", "size": 15898094}, "manifest": {"versionName": "7.0.3", "versionCode": 10703, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["a4bd9da9516b3c9f49b52419c6e3d21da3754d67f488269c3b05bf75df731ccf"]}, "usesPermission": [{"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.DISABLE_KEYGUARD"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.BROADCAST_STICKY"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.WRITE_SETTINGS"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "code.name.monkey.retromusic.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "App connects to LastFM, which is not libre."}}}}}, "com.activitytrace": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"59efe1c54f8fc87226d8d15fce61f1b6d9051cdb2388527a9d1689c207713d4b": null, "759b6e510c3ad532ab75d26eb4feebf5e7d26be81a6f22c5118c3d8a3c9de292": {"added": 1786749285772, "file": {"name": "/com.activitytrace_11.apk", "sha256": "759b6e510c3ad532ab75d26eb4feebf5e7d26be81a6f22c5118c3d8a3c9de292", "size": 11804647, "ipfsCIDv1": "bafybeibzd33mschgsapakwyhaf6qj3rf53jiib6zl32hgpuiix56ud5eei"}, "src": {"name": "/com.activitytrace_11_src.tar.gz", "sha256": "5078e1a4620dcd7903689982d02d3fc39d59c79ce8d7000a9cc4be7b6d1ded00", "size": 1721606}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.9.0", "versionCode": 11, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["e9a8aa0171430a2ce7dd4d0d5b14e8880ff5d3436030ca7ad835c180a449de0d"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.READ_MEDIA_DOCUMENTS"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.activitytrace.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 28}]}, "whatsNew": {"en-US": "Improvements:\n- Statistics screen: bars and labels separated for clearer daily charts\n- Daily statistic no longer shows zero-value entries\n- Statistics view persists across app restarts\n- Added project landing page with documentation and screenshots\n\nBug fixes:\n- Duplicate captures are now prevented\n- Fixed database schema migration (dedup index) that could cause crashes after upgrade\n- Database corruption from key mismatch now triggers a safe reset instead of a crash\n"}}}}, "com.aeidolon.vaultexplorer": {"metadata": {"added": 1786866775484, "categories": ["File Encryption & Vault"], "issueTracker": "https://github.com/R0b0To/VaultExplorer/issues", "lastUpdated": 1786866775484, "license": "GPL-3.0-or-later", "sourceCode": "https://github.com/R0b0To/VaultExplorer", "featureGraphic": {"en-US": {"name": "/com.aeidolon.vaultexplorer/en-US/featureGraphic_0DkT1gxKw3xDo4RVVv8DcEkcHGNG4NlCqyciHr2kPmY=.png", "sha256": "d03913d60c4ac37c43a3845556ff0370491c1c6346e0d942ab27221ebda43e66", "size": 171733}}, "screenshots": {"phone": {"en-US": [{"name": "/com.aeidolon.vaultexplorer/en-US/phoneScreenshots/1.png", "sha256": "b8a65d35a20e93326333720d3ff863a19062bdd8ce8f37f7e502e4c9820c6514", "size": 432853}, {"name": "/com.aeidolon.vaultexplorer/en-US/phoneScreenshots/2.png", "sha256": "8618c4fc25661780998898b890464641e31bcbd3fb6ae49c71711804f40493ee", "size": 487395}, {"name": "/com.aeidolon.vaultexplorer/en-US/phoneScreenshots/3.png", "sha256": "9eb614d0e9417e0ea3112a5c15e6ee0d3f42afc5343d88a9b8c7c3636de519c4", "size": 2135881}]}}, "authorEmail": "Aeidolon@proton.me", "authorName": "R0b0To", "name": {"en-US": "Vault Explorer"}, "summary": {"en-US": "Encrypted container explorer: VeraCrypt, LUKS, BitLocker, and more."}, "description": {"en-US": "Vault Explorer opens and browses encrypted disk containers directly on\nyour device -- VeraCrypt/TrueCrypt volumes, LUKS, BitLocker, and raw\nVHD/VHDX images -- without exporting your files unencrypted to shared\nstorage.\n\nFeatures:\n* Read/write NTFS, FAT, and ext2/3/4 filesystems inside a container\n* VeraCrypt/LUKS/BitLocker unlock, including cascaded ciphers\n* Built-in media preview for photos and video stored inside a vault\n* Create new encrypted containers and USB volumes\n* Biometric unlock\n\nVault Explorer does not collect or transmit any data. All decryption\nhappens locally on your device.\n"}, "donate": ["https://ko-fi.com/K3K2ND3Y8"], "icon": {"en-US": {"name": "/com.aeidolon.vaultexplorer/en-US/icon_H5SK-yswqNGEImd9nA5fnAnmZ5r14xwF1shBiwrx5Rg=.png", "sha256": "1f948afb2b30a8d18422677d9c0e5f9c09e6679af5e31c05d6c8418b0af1e518", "size": 20510}}, "preferredSigner": "0bde9d3b0ee3f56617d02632c843b1629bf0b2faa4560dff5d26f651dc325f19"}, "versions": {"7aa8a07741560becb0d37a1b25340fd7816e2cfccc25eafc9f39c543f6d356fa": {"added": 1786866775484, "file": {"name": "/com.aeidolon.vaultexplorer_503.apk", "sha256": "7aa8a07741560becb0d37a1b25340fd7816e2cfccc25eafc9f39c543f6d356fa", "size": 17053602, "ipfsCIDv1": "bafybeifk5f3qn2ui7ugwre4w52p4vs54zi2fkm4ebq2wogz6r5frvxkmma"}, "src": {"name": "/com.aeidolon.vaultexplorer_503_src.tar.gz", "sha256": "50463e34d39ef1e6da7ddfc56f752d47bddb0e106a6c9123e99f5da8da167c42", "size": 5524243}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.3.0", "versionCode": 503, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["0bde9d3b0ee3f56617d02632c843b1629bf0b2faa4560dff5d26f651dc325f19"]}, "usesPermission": [{"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.aeidolon.vaultexplorer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "bf42d71869512e03f11ba418a5b281f45c5b76283e1b9462f41688c6b6add390": {"added": 1786866775484, "file": {"name": "/com.aeidolon.vaultexplorer_502.apk", "sha256": "bf42d71869512e03f11ba418a5b281f45c5b76283e1b9462f41688c6b6add390", "size": 16143597, "ipfsCIDv1": "bafybeih3cyqpuzjn2cniamu6hncu66v54uiia7cirqqcfecfwramjrcrua"}, "src": {"name": "/com.aeidolon.vaultexplorer_502_src.tar.gz", "sha256": "309c2e7f0eb8e557d1bbafd715f60deedc32bd0c6de546289ad112a8f851d6ba", "size": 5524357}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.3.0", "versionCode": 502, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["0bde9d3b0ee3f56617d02632c843b1629bf0b2faa4560dff5d26f651dc325f19"]}, "usesPermission": [{"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.aeidolon.vaultexplorer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "5c927e391bb485ee06451e676954e9b5d1962a01d50c7e3beb5df18391a65be8": {"added": 1786866775484, "file": {"name": "/com.aeidolon.vaultexplorer_501.apk", "sha256": "5c927e391bb485ee06451e676954e9b5d1962a01d50c7e3beb5df18391a65be8", "size": 16625283, "ipfsCIDv1": "bafybeihww42wyk2k3t7rrt5bfr64qzclxtln3igxbbememymg3ot6pqivm"}, "src": {"name": "/com.aeidolon.vaultexplorer_501_src.tar.gz", "sha256": "af643303de6cb2177324300606a4f94ae449a2d16cc98cfbc25e17302b0c2d87", "size": 5524347}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.3.0", "versionCode": 501, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["0bde9d3b0ee3f56617d02632c843b1629bf0b2faa4560dff5d26f651dc325f19"]}, "usesPermission": [{"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.aeidolon.vaultexplorer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.agepony.app": {"metadata": {"lastUpdated": 1786866775484, "description": {"en-US": "AgePony is a fast, private encryption app for your phone, built on the modern age encryption format. Lock your files and messages so only the right person can open them, sign them so recipients know the file really came from you, and keep your keys and data on your device. No accounts, no tracking, no analytics.\n\nPOST-QUANTUM ENCRYPTION\nProtect your data against \"harvest now, decrypt later\" attacks. AgePony generates quantum-safe hybrid keys (ML-KEM-768 combined with X25519) that stay secure even against a future quantum computer, while staying fully interoperable with the age command-line tool. Anything encrypted to a quantum-safe recipient is clearly badged, so you always know the protection you are using.\n\nAlso included:\n- Encrypt and sign in a single step, so recipients can both open your file and confirm it is really from you.\n- A built-in migration tool to upgrade older files to quantum-safe encryption. Batch re-encrypt your existing files to a new quantum-safe key, with your originals kept until the new copy is verified.\n\nWHY AGEPONY\n- Standard age encryption. AgePony reads and writes the same format as the age CLI, so your files work with other age tools on desktop and server.\n- Public key or passphrase. Encrypt to someone's public key, or lock a file with a passphrase you share separately.\n- SSH signing, done properly. Sign and verify files from a dedicated Sign tab using SSH Ed25519 or RSA keys, a hardware key, or a security key over NFC, and keep a list of trusted signers. Signatures use the SSHSIG standard, so ssh-keygen verifies them.\n- On device by default. Encryption, decryption, signing, and key generation all happen locally on your phone, and your private keys never leave your device.\n- One optional online step. When you import a recipient from GitHub, AgePony fetches that person's public SSH keys from github.com. That is the only network request the app makes, it happens only when you tap Fetch, and nothing about you is sent.\n- No tracking, no ads, no account required. AgePony does not collect analytics or personal data.\n- Open source. The full source is available for review.\n\nFEATURES\n- Generate and store age key pairs in an app vault, unlocked with your device biometrics.\n- Quantum-safe hybrid keys (ML-KEM-768 + X25519) alongside classic X25519 keys.\n- Encrypt and decrypt files and text messages.\n- Passphrase encryption for quick, key-free sharing.\n- Sign and verify files (SSHSIG) with SSH Ed25519 or RSA keys, hardware keys, or a security key over NFC, with a trusted-signers list.\n- Unlock with your biometric, a password, or a PIN, so the app works even with no screen lock set up.\n- Optional duress password that wipes the vault when entered.\n- Scan recipient keys with your camera by QR code.\n- Import a recipient from a GitHub username, fetching their public SSH keys from github.com.\n- Batch migrate existing files to quantum-safe encryption.\n\nWhether you are a journalist, an activist, a developer, or simply someone who wants real control over their private files, AgePony gives you strong, standard encryption without the complexity.\n\nAgePony is an independent app built on the open age encryption format and is not affiliated with the age project.\n"}}, "versions": {"d739848e08c6b7435caca0d4937530615e147c7732b5b9f5872a5111740d1020": {"added": 1786866775484, "file": {"name": "/com.agepony.app_11.apk", "sha256": "d739848e08c6b7435caca0d4937530615e147c7732b5b9f5872a5111740d1020", "size": 13845365, "ipfsCIDv1": "bafybeidtiojucndaeccffaj45rjq5p4arnjfwck6ca7scynvh5a6ddfose"}, "src": {"name": "/com.agepony.app_11_src.tar.gz", "sha256": "11f548c9ddc4ad90e5d7b2a4dd480a7667cf38ba4a40ca315d5c2877d53a0a4f", "size": 1731217}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.0.1", "versionCode": 11, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["2e5febf62fd7915a7d7710b4539c7a0237a84c22fbe5a8317bcbbc68f1e4719f"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.NFC"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.agepony.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "AgePony 4.0.1 fixes crashes and rough edges from 4.0.0.\n\n- Fixes a lock-screen crash after reinstalling or restoring the app from a backup; the vault now resets cleanly instead of failing to open.\n- The vault no longer locks the instant you switch apps. A quick trip to another app keeps your place and any half-entered recipient.\n- The keyboard now opens on its own when a password or PIN is needed.\n"}}, "7fef78f849eee603c3b472a18b01402231b9778cf6f992b65f9fa20f7387ba99": {"added": 1786749285772, "file": {"name": "/com.agepony.app_10.apk", "sha256": "7fef78f849eee603c3b472a18b01402231b9778cf6f992b65f9fa20f7387ba99", "size": 13845365, "ipfsCIDv1": "bafybeiczf4fetnqkwsg7npftt2n72s3c6en3lkgnkfyizetlhxnwczvufy"}, "src": {"name": "/com.agepony.app_10_src.tar.gz", "sha256": "4fdb912563d310493ed4b479d54ce369e605ab47ec2fd39da61c4a42c06c29ca", "size": 1729205}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.0.0", "versionCode": 10, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["2e5febf62fd7915a7d7710b4539c7a0237a84c22fbe5a8317bcbbc68f1e4719f"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.NFC"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.agepony.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "AgePony 4.0.0 makes signing fully usable, and adds a duress password.\n\n- Sign and verify files from a new Sign tab, using SSH Ed25519 or RSA keys, a hardware key, or a security key over NFC.\n- Keep a list of trusted signers; import and export OpenSSH allowed_signers.\n- Sign-then-encrypt now works with hardware keys too.\n- Unlock with a password or PIN, with or without biometrics.\n- Optional duress password that silently wipes the vault when entered.\n"}}}}, "com.anant.fitbuddy": {"metadata": {"lastUpdated": 1786866775484, "summary": {"en-US": "AI-powered calorie & workout tracker with region-aware diets — log by photo or t"}, "description": {"en-US": "FitBuddy is a free, open-source health tracker for Android, with region packs that personalise diets and daily routines.\n\nSnap a photo or type what you ate — an LLM estimates calories and macros instantly. Review ingredients, tweak weights with live macro recalculation, and save. Bookmark favourite meals as presets for one-tap logging next time.\n\nFeatures:\n• Region packs — personalise AI prompts, staples, portion language, and log examples to your region\n• Smart logging — photo or text; AI parses food and exercise automatically\n• Meal review — edit dish name, adjust ingredient weights with live macro recalc\n• Editable workouts — structured sessions, AI session names, upgrade simple logs\n• Presets — searchable saved foods and meals; recently used on top; one-tap log\n• Barcode scan — look up packaged foods; save to library or log straight to today\n• Dashboard — daily calorie ring, combined food/exercise log, macro breakdown\n• Analytics — custom charts; rolling 30-day progress window\n• Encrypted backups — AES-256-GCM; gzip; optional cloud with append-only chunks\n• Loading animations — choose Analyzing / Insights wait animations in Settings\n• Auto failover — rotates API keys and models on rate limits; stays on your preferred platform\n• Offline fallback — works without an AI key via built-in simulator\n• Material You — dynamic color theming on Android 12+\n• Crash reports — optional anonymous Sentry reports (off by default; opt in via Settings)\n\nAI providers (configured at runtime in Settings):\n• OpenRouter — free vision models, automatic model dropdown\n• Google Gemini — AI Studio key, OpenAI-compatible endpoint\n• OpenAI — direct API key with curated models\n• Ollama or any OpenAI-compatible server (LM Studio, vLLM, LocalAI) — local or cloud, optional API key\n\nWithout a configured provider, the app works offline using the built-in simulator. Photos require a configured AI provider.\n\nPrivacy:\n• No ads, no tracking by default\n• Crash reports (Sentry) are off by default on F-Droid builds; opt in under Settings\n• Cloud backup (MongoDB Atlas) is off by default; opt in under Settings → Backup\n• AI providers are contacted only when you choose to enable them\n\nUpdates on this F-Droid build are delivered by F-Droid. The GitHub update checker is disabled in this flavor.\n\nNote: The F-Droid APK uses F-Droid's signing key and cannot replace a GitHub or Play Store install in place.\n\nSource: https://github.com/anantdark/FitBuddy\nLicense: GPL-3.0-only\n"}}, "versions": {"506f984ff255a74ab4d796d5dffafd2da1195d4a389f118e50270c81aa408887": null, "05ebc05236b2478673563cc0fcb52b507bea21e9e4a1b0c0f9ea305e64fe07f7": {"added": 1786866775484, "file": {"name": "/com.anant.fitbuddy_73.apk", "sha256": "05ebc05236b2478673563cc0fcb52b507bea21e9e4a1b0c0f9ea305e64fe07f7", "size": 10952201, "ipfsCIDv1": "bafybeifdugs2ophfuwl3yoz4prvbdc7pqsb5xhdvnnxmk3yim2ajwxuivy"}, "src": {"name": "/com.anant.fitbuddy_73_src.tar.gz", "sha256": "40d4db1c4c53c56310228cd57718f8610033a296e3f8d8719224a6b045e055f5", "size": 4036358}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "3.2.73", "versionCode": 73, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 36}, "signer": {"sha256": ["a6c12f2f7ae0143cf225fd11da6bd6d42d10ed38aebc651a9181626ae69accea"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.VIBRATE"}, {"name": "com.anant.fitbuddy.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}]}, "whatsNew": {"en-US": "• feat: show food weight with servings in meal edit\n• docs: describe FitBuddy as region-aware, not india-only\n• docs: keep region pack store copy generic\n• feat: choose region in onboarding and settings\n• feat: add india, us, and europe diet region packs\n"}}}}, "com.aradar.vibecheck": {"metadata": {"added": 1786866775484, "categories": ["Health Manager"], "issueTracker": "https://github.com/aradar46/Vibecheck-Private-Mood-Tracker/issues", "lastUpdated": 1786866775484, "license": "MIT", "sourceCode": "https://github.com/aradar46/Vibecheck-Private-Mood-Tracker", "featureGraphic": {"en-US": {"name": "/com.aradar.vibecheck/en-US/featureGraphic_avAcdjRaz9uFw7aytDk13xLaP3bqAehhiWs_mJKaQQE=.png", "sha256": "6af01c76345acfdb85c3b6b2b43935df12da3f76ea01e861896b3f98929a4101", "size": 449543}}, "screenshots": {"phone": {"en-US": [{"name": "/com.aradar.vibecheck/en-US/phoneScreenshots/01-quick-log.png", "sha256": "6562cfbb466ffb8547beac2d6571e085c619476dbe317551d9274fc59cecfda2", "size": 258990}, {"name": "/com.aradar.vibecheck/en-US/phoneScreenshots/02-timeline-light.png", "sha256": "d4a7fe152a06f3163971c0b7baa6ca80a50d0a100f82c71a88323588974d4aed", "size": 403868}, {"name": "/com.aradar.vibecheck/en-US/phoneScreenshots/03-timeline-dark.png", "sha256": "bdbcc36b555eb0a788fa3b626a6ca0fe76035c0cd672e144f9367ced7a9aaed6", "size": 421280}, {"name": "/com.aradar.vibecheck/en-US/phoneScreenshots/04-edit-entry.png", "sha256": "868e5d8e20be4594516b1e706471c9f129ffc0a21b793176e5dc3806dcbfa34d", "size": 373404}, {"name": "/com.aradar.vibecheck/en-US/phoneScreenshots/05-insights.png", "sha256": "6ca7d0fc43894619df61dea87bdfda30302270147bdc2bcbeb335643dc27a274", "size": 281677}, {"name": "/com.aradar.vibecheck/en-US/phoneScreenshots/06-calendar.png", "sha256": "623d01a910e2f1d8b156a99acb64750ad78c634c312c024b98264a74d7c594d1", "size": 223093}, {"name": "/com.aradar.vibecheck/en-US/phoneScreenshots/07-privacy-settings.png", "sha256": "014fe615e17f9bdffea359c901ba4904fab4f3b9731c1179bd6a290cb3ca25d7", "size": 286866}]}}, "authorName": "aradar", "name": {"en-US": "Vibecheck: Private Mood Tracker"}, "summary": {"en-US": "Private, local-first mood and symptom tracker. No account, no cloud."}, "description": {"en-US": "Vibecheck is a private, local-first mood and symptom tracker designed for complete privacy, ease of use, and low friction.\n\n<b>Features</b>\n<ul>\n<li>1-Tap Quick Logging: Log your mood in seconds with minimal friction</li>\n<li>Symptom & Energy Tracking: Track focus, energy, sensory levels, and sleep</li>\n<li>Dopamine Menu: Grounding exercises and gentle prompts for self-regulation</li>\n<li>Calendar Heatmap & Insights: Spot patterns and understand your mental health over time</li>\n<li>Custom Moods & Tags: Personalize your tracking experience</li>\n<li>JSON Data Export & Import: Complete ownership of your data</li>\n<li>100% Offline: Operates completely on-device without internet access</li>\n</ul>\n\n<b>Privacy</b>\nNo data ever leaves your device. No cloud sync, no user accounts, no analytics, no ads, no third-party tracking SDKs.\n\n<b>Open Source</b>\nLicensed under the MIT License. Source code available on GitHub.\n"}, "icon": {"en-US": {"name": "/icons/com.aradar.vibecheck.2.png", "sha256": "95dd56d982952f4140644b6d6509eb5e8a7d7953f064c0e693c56d8ddb689ad5", "size": 2242}}, "preferredSigner": "cc83d1b52ededd145bb542dab631e076c3f01f2a4fae0c85a50f0286cde1bcd8"}, "versions": {"d4111bfb9b64b6fcb87f1062133b6703813764893e4ba06f5a5e201131411f0e": {"added": 1786866775484, "file": {"name": "/com.aradar.vibecheck_2.apk", "sha256": "d4111bfb9b64b6fcb87f1062133b6703813764893e4ba06f5a5e201131411f0e", "size": 8417686, "ipfsCIDv1": "bafybeigftnlbrq72b7kqsv6c4e4pueg3m6m3kctv7mxacvqgxgkomcpp3a"}, "src": {"name": "/com.aradar.vibecheck_2_src.tar.gz", "sha256": "e615f988614f0bfcad8279df1f8b3e98977b51de3fbffec04d2a5ab7ce99318c", "size": 76891822}, "manifest": {"versionName": "1.0.1", "versionCode": 2, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["cc83d1b52ededd145bb542dab631e076c3f01f2a4fae0c85a50f0286cde1bcd8"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.VIBRATE"}, {"name": "com.aradar.vibecheck.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Fixes crashes when setting up reminders.\n\n• Fixed a crash when adding a mood check-in or medication reminder. Release builds stripped the annotations Capacitor uses to handle permission requests.\n• Removed voice notes and the microphone permission. The app no longer requests audio access at all.\n"}}, "79e708e07ab31c49633f0b1fd88db02e23ec0416561da2cfcabbb0d509292c2a": {"added": 1786866775484, "file": {"name": "/com.aradar.vibecheck_1.apk", "sha256": "79e708e07ab31c49633f0b1fd88db02e23ec0416561da2cfcabbb0d509292c2a", "size": 8421920, "ipfsCIDv1": "bafybeiasiebh6mcy7h4jy7midephaii7igz7272ltqyngtitiagc2ehgjm"}, "src": {"name": "/com.aradar.vibecheck_1_src.tar.gz", "sha256": "6f503744c00b48ca5c7d9f68731f354cd74b4d0c9ba904f891876aed5b5674ea", "size": 76906416}, "manifest": {"versionName": "1.0.0", "versionCode": 1, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["cc83d1b52ededd145bb542dab631e076c3f01f2a4fae0c85a50f0286cde1bcd8"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.VIBRATE"}, {"name": "com.aradar.vibecheck.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Initial release of Vibecheck on F-Droid.\n\n• 1-tap quick mood logging with custom tags and symptoms.\n• Dopamine Menu for grounding and self-regulation.\n• Calendar heatmap and insights to track mood trends over time.\n• 100% offline, local-first storage with full data import/export.\n"}}}}, "com.arslan.shizuwall": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"d0b2ea7fa8e9a1c4eeb205e669a5a43b12f53d212cdb546a2a20f221b95ad08c": null, "f83aff232f67f1e95848b5f1fb937c3807c076994d70c6ca82769d3f70a91a86": {"added": 1786866775484, "file": {"name": "/com.arslan.shizuwall_44.apk", "sha256": "f83aff232f67f1e95848b5f1fb937c3807c076994d70c6ca82769d3f70a91a86", "size": 16480292, "ipfsCIDv1": "bafybeidg4kbxkwiecbusazzgzdusnc45mcqqa7yz7yb5yadgt5haqgzfnu"}, "src": {"name": "/com.arslan.shizuwall_44_src.tar.gz", "sha256": "a141a145a55f28be083efec25da59937c87c3dbd6cfb4b39e54a53100723f22a", "size": 20912227}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.6.1", "versionCode": 44, "usesSdk": {"minSdkVersion": 30, "targetSdkVersion": 36}, "signer": {"sha256": ["6dedbdd903c543ab3a00bb493b4c064d10cc1e5b909e48d75ce322c3edb70dc9"]}, "usesPermission": [{"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.PACKAGE_USAGE_STATS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.arslan.shizuwall.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "moe.shizuku.manager.permission.API_V23"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}]}}}}, "com.arslandaim.playtube": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"8516f9110f7218f1aa3d44a456e979d9b4b2cb6d829669ca34433759b8bde926": null, "20f896f4da90280d73362ea4c50c7bf1a2a27925acf15e074d05add215f7c9ab": {"added": 1786866775484, "file": {"name": "/com.arslandaim.playtube_13.apk", "sha256": "20f896f4da90280d73362ea4c50c7bf1a2a27925acf15e074d05add215f7c9ab", "size": 24902185, "ipfsCIDv1": "bafybeig6sbwqxb6d2vblvhnoz6xbhbamckuk7i6mewicvrwi6mpgaz5uom"}, "src": {"name": "/com.arslandaim.playtube_13_src.tar.gz", "sha256": "0ca6ebe853c0ae1a02df2fdc24f153d2b87fbd31752b100c680e2671351093c1", "size": 6370296}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.3.8", "versionCode": 13, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["9e77473cdb73ee6146beae7004a68574affe97c13790c33fa2f947bdb9933a1d"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.NEARBY_WIFI_DEVICES"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.arslandaim.playtube.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "PlayTube connects to YouTube servers to fetch and stream video content."}}}}}, "com.aryan.reader.oss": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"020f9e2cb13c1321bf99663fe6b5418049fcc1a9819f7c8f8424e72761598655": null, "8bdc855602b92e2c08f06cc73c3d2706c2e65ae32c2d4694ca52c529b95bd55f": {"added": 1786866775484, "file": {"name": "/com.aryan.reader.oss_58.apk", "sha256": "8bdc855602b92e2c08f06cc73c3d2706c2e65ae32c2d4694ca52c529b95bd55f", "size": 41970240, "ipfsCIDv1": "bafybeid452klws5k55d4tckl4yby2qdqpnce34lmz5hj3ukix6hu5lcale"}, "src": {"name": "/com.aryan.reader.oss_58_src.tar.gz", "sha256": "27a9c6e4b091e4f7630810c29a7edd3b6b01e2932de9d8413b9cd15f6b2584ff", "size": 37813884}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.0.53-oss", "versionCode": 58, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["4d77f55745749b04fcbe9a60e1a2edca5dd0cfbbd72bb58ce0dd156cb1b814c9"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.aryan.reader.oss.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.asksakis.freegate": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"1f2c460ed5d0ca585b25679c092e6a6c24385df61737d38194178f5833b8012b": null, "fb88a823312cbcb1b4ce4f9ea5243d211473592fcc5ffb115324ea610d019737": {"added": 1786866775484, "file": {"name": "/com.asksakis.freegate_18.apk", "sha256": "fb88a823312cbcb1b4ce4f9ea5243d211473592fcc5ffb115324ea610d019737", "size": 16195636, "ipfsCIDv1": "bafybeifq7robaj7z5tadh2ebm7qrt5y47uaj5lwtxkinliin2yuijaikuq"}, "src": {"name": "/com.asksakis.freegate_18_src.tar.gz", "sha256": "78b78d92de252175a4cf9caedf118866f6c237dde4805e04d2f26dcd03293a8b", "size": 3822895}, "manifest": {"versionName": "2.10", "versionCode": 18, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 35}, "signer": {"sha256": ["3bf1a6f74a9228aa0f590e84543a5a8fc9c8c9c30c498ca1f33be35ada9ebba6"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "com.asksakis.freegate.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 28}]}, "whatsNew": {"en-US": "* Alerts arrive again when a reverse proxy handles the sign-in, or when your Frigate has no login at all\n* Client certificates are offered again if the certificate prompt was ever dismissed\n* Motion notifications can be marked urgent, so they pop up with a stronger vibration\n* The background listener connects faster and stops retrying a sign-in that cannot succeed\n"}}}}, "com.b44t.messenger": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"44461f638c6ea4320ca224ffcaea326b3d4e09716ed3076c6be0fec18327d7b4": null, "410f553a42703f0dfa66fefc7aa07bea65179c8a6d7bad31d587c2255df4981d": null, "1f44bebfd1f1d6b81e48ef4a1d0755f0e7dbb12e1c30d59e1d22ad0f31628fab": null, "9523e8751c778d0791a9eaf14b29630a398144a1726ba4ec502fa11518182724": null, "fff856255c7df0dddbaa8089bcafcc9d96610535e9039f94c55eb50700081a4e": {"added": 1786866775484, "file": {"name": "/com.b44t.messenger_7554.apk", "sha256": "fff856255c7df0dddbaa8089bcafcc9d96610535e9039f94c55eb50700081a4e", "size": 27569181, "ipfsCIDv1": "bafybeieyyyzjyzxlcad65drgcqrmwleykaxcqhbs3jbilkowsxfkg6bmni"}, "src": {"name": "/com.b44t.messenger_7554_src.tar.gz", "sha256": "d5afdfe65cfe0fc50c46208c941dec48999d3a3af495971dde27fb11e515835e", "size": 12249412}, "manifest": {"nativecode": ["x86_64"], "versionName": "2.58.0", "versionCode": 7554, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["9db6678ed74c88124b825e8f90502b76cd97c5eccc9aa92f4033027102d9aa9d"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.INSTALL_SHORTCUT"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RAISED_THREAD_PRIORITY"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_PHONE_CALL"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.MANAGE_OWN_CALLS"}, {"name": "com.b44t.messenger.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "da88127c2ab5c0013bfe12c824fb8e538ef432e282d6b5746d07c793f4d3c1b6": {"added": 1786866775484, "file": {"name": "/com.b44t.messenger_7553.apk", "sha256": "da88127c2ab5c0013bfe12c824fb8e538ef432e282d6b5746d07c793f4d3c1b6", "size": 27085847, "ipfsCIDv1": "bafybeid6at2dlgrd2c4w3p34cevcmjlidyq45mwa3epwf4s6ymk6blu754"}, "src": {"name": "/com.b44t.messenger_7553_src.tar.gz", "sha256": "19016b820596477a1270cd44a9872c40ebc78813ce7e1dded89946d384a620ac", "size": 12249704}, "manifest": {"nativecode": ["x86"], "versionName": "2.58.0", "versionCode": 7553, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["9db6678ed74c88124b825e8f90502b76cd97c5eccc9aa92f4033027102d9aa9d"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.INSTALL_SHORTCUT"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RAISED_THREAD_PRIORITY"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_PHONE_CALL"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.MANAGE_OWN_CALLS"}, {"name": "com.b44t.messenger.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "2c6c5df6fa8a709d6518ae960ad6b4324015eacc275f7063eee169d5a2276366": {"added": 1786866775484, "file": {"name": "/com.b44t.messenger_7552.apk", "sha256": "2c6c5df6fa8a709d6518ae960ad6b4324015eacc275f7063eee169d5a2276366", "size": 27028515, "ipfsCIDv1": "bafybeiazy3qqv2f7ilast733qu2nj5zg6kagszhmgvognemb4kr7gsfecq"}, "src": {"name": "/com.b44t.messenger_7552_src.tar.gz", "sha256": "79ddb9906a7181f517dcc2195bff8ec73c4a98554f4593bb3b498c4e244b1068", "size": 12249647}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "2.58.0", "versionCode": 7552, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["9db6678ed74c88124b825e8f90502b76cd97c5eccc9aa92f4033027102d9aa9d"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.INSTALL_SHORTCUT"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RAISED_THREAD_PRIORITY"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_PHONE_CALL"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.MANAGE_OWN_CALLS"}, {"name": "com.b44t.messenger.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "397a5a92cbf2269dc1efd41a4d14fb9e3162dabf01083d554aaa931934692262": {"added": 1786866775484, "file": {"name": "/com.b44t.messenger_7551.apk", "sha256": "397a5a92cbf2269dc1efd41a4d14fb9e3162dabf01083d554aaa931934692262", "size": 24427559, "ipfsCIDv1": "bafybeic2dkdd3gkorghly5r3gmejwywkm6s2jvw6exwo4nimx2yoc73q5a"}, "src": {"name": "/com.b44t.messenger_7551_src.tar.gz", "sha256": "f8e5b9396bd25ea3a385a08b5b68b2525f49d6d8156607565242cdff22ccedbc", "size": 12249690}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "2.58.0", "versionCode": 7551, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["9db6678ed74c88124b825e8f90502b76cd97c5eccc9aa92f4033027102d9aa9d"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.INSTALL_SHORTCUT"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RAISED_THREAD_PRIORITY"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_PHONE_CALL"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.MANAGE_OWN_CALLS"}, {"name": "com.b44t.messenger.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.bartixxx.oneplusarbchecker": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"395fa8204ca7487d181ecb7df72449107e90321be7a41e980f5bc5ec9c588e68": null, "1aad11c61257b63c14fbe42a91817d688a8f6a62a7433223ced92444e18eb0db": {"added": 1786866775484, "file": {"name": "/com.bartixxx.oneplusarbchecker_42.apk", "sha256": "1aad11c61257b63c14fbe42a91817d688a8f6a62a7433223ced92444e18eb0db", "size": 2326494, "ipfsCIDv1": "bafybeif6cvjezqn2ri7ptsuuuk2pjljkg4rgf4aafurhpuz2szftsevxgi"}, "src": {"name": "/com.bartixxx.oneplusarbchecker_42_src.tar.gz", "sha256": "334b0e59a83608151b1b82cb262523e32f774c4c979d20b455357265f2a54c90", "size": 1284106}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.7.6", "versionCode": 42, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["81c90fd16a846804a613af12c683b8e0f319aef7dac515c33b3dc6c7fc755db7"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.bartixxx.oneplusarbchecker.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "Rely on oparb.pages.dev"}}}}}, "com.blogspot.developersu.ns_usbloader": {"metadata": {"lastUpdated": 1786866775484, "screenshots": {"phone": {"en-US": [{"name": "/com.blogspot.developersu.ns_usbloader/en-US/phoneScreenshots/Screenshot_1.png", "sha256": "99410228375ca4fde9ed32fcfbcaf3c02f259aa389a27340e9f9cf66219339b8", "size": 188784}, {"name": "/com.blogspot.developersu.ns_usbloader/en-US/phoneScreenshots/Screenshot_2.png", "sha256": "7d986fba455a26a66f3867dc92a512fade4617675fa07bf295d2c280960ace37", "size": 58625}, {"name": "/com.blogspot.developersu.ns_usbloader/en-US/phoneScreenshots/Screenshot_3.png", "sha256": "fcbcc429f85ff1d7ba9e5f0e14cc32bfe977dd2a97a0b380fd8501e423646560", "size": 59000}], "ru": [{"name": "/com.blogspot.developersu.ns_usbloader/ru/phoneScreenshots/Screenshot_1.png", "sha256": "2d9c9cea0418ec43d66c3e1f5159e5c1490b472f5c23066c1bc49685b3c664f6", "size": 189746}, {"name": "/com.blogspot.developersu.ns_usbloader/ru/phoneScreenshots/Screenshot_2.png", "sha256": "c5902650f1c8a0ff5ba8ec0ecf1e1c72cb86a6a9c47402ef5ea2b95f5440e633", "size": 56909}, {"name": "/com.blogspot.developersu.ns_usbloader/ru/phoneScreenshots/Screenshot_3.png", "sha256": "1a8be63570c575234761426eb668fbb814edfbb6f6612b752c6dffc06e44e687", "size": 57684}]}}, "summary": {"en-US": "NS-USBloader is USB/Wi-Fi data transfer helper for N Switch homebrew apps", "ru": "NS-USBloader программа-помощник для хоумбрю приложений N Switch"}, "description": {"en-US": "This is application-installer for N.Switch. Should be used with NS homebrew applications installed on console. Such as Huntereb/Awoo-Installer and XorTroll/GoldLeaf.\n\nFor Huntereb/Awoo-Installer USB and NET (Wi-Fi) installations supported.\nFor XorTroll/GoldLeaf USB installation supported. Testested on version 1.2.0.\n\n", "ru": "Это приложение-установщик файлов для N.Switch. Используется совместно с хоумбрю приложениями, установленными на консоли, такими как Huntereb/Awoo-Installer и XorTroll/GoldLeaf.\n\nДля Huntereb/Awoo-Installer поддерживается установка по-USB и через сеть (по Wi-Fi).\nДля XorTroll/GoldLeaf поддерживается установка через USB. Проверялось на версии 1.2.0\n"}, "icon": {"en-US": {"name": "/icons/com.blogspot.developersu.ns_usbloader.8.png"}}}, "versions": {"92812488cf97eb078f42abe3c0a017d6c352d7a4b0554660fba592ab2997046b": {"added": 1786866775484, "file": {"name": "/com.blogspot.developersu.ns_usbloader_8.apk", "sha256": "92812488cf97eb078f42abe3c0a017d6c352d7a4b0554660fba592ab2997046b", "size": 5289023, "ipfsCIDv1": "bafybeibmiysnly6txd2pveshqulwff26aprrn46cphuxykoxyf2sgz2kj4"}, "src": {"name": "/com.blogspot.developersu.ns_usbloader_8_src.tar.gz", "sha256": "95f6720b1ca52271a689bd4e6b7e48a2839041a3f7e434d7760177ae2a93d72a", "size": 986595}, "manifest": {"versionName": "6.0", "versionCode": 8, "features": [{"name": "android.hardware.usb.host"}], "usesSdk": {"minSdkVersion": 15, "targetSdkVersion": 37}, "signer": {"sha256": ["a81dd60b7cdcc42ef34cf20f077a9f6180460a581196fbae40c9eeffcd660661"]}, "usesPermission": [{"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.blogspot.developersu.ns_usbloader.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "* kuragehimekurara1 translated application to Japanese and Ryukyuan. Thank you!\n* exiori updated Chinese (Simplified) translation. Thank you!\n* Everything rewritten to support latest android versions\n* Goldleaf v0.5 support replaced to handle v1.2.0 'protocol' (limited implementation just to handle installations)\n* Ability to select multiple files at once", "ru": "* kuragehimekurara1 выполнил перевод на японский язык и языки Рюкю. Большое спасибо!\n* exiori обновил перевод на китайский (упрощённый) язык. Большое спасибо!\n* Всё переписано для поддержки последних версий android\n* Поддержка Goldleaf v0.5 заменена на версию 'протокола' 1.2.0 (ограниченная реализация, поддерживающая установку)\n* Поддержка возможности множественного выбора файлов"}}}}, "com.celzero.bravedns": {"metadata": {"lastUpdated": 1786866775484, "name": {"lv": "Rethink: DNS + ugunsmūris + VPN", "pt": "Rethink: DNS + Firewall + VPN"}, "summary": {"it-IT": "Firewall per app, usa VPN WireGuard, monitor di rete, blocco mandare, cambia DNS", "lv": "Ugunsmūris, WireGuard VPN, tīkla pārraugs, ļaunatūras aizturēšana, DNS maiņa.", "pt": "Firewall, VPN Wireguard, monitor de rede, bloqueio de malware, alteração de DNS."}, "description": {"pt": "Diga olá a um Android mais seguro, transparente e protegido.\n\nVPN: Conecta-se a várias VPNs WireGuard da sua escolha.\n\nSeguro: Revela a atividade de rede de apps instaladas e permite que os desative, desinstale ou ponha no firewall.\n\nSeguro: Primeira linha de defesa contra spyware, ransomware e malware que roubam informações pessoais e assumem o controlo de contas. Protege contra a manipulação de DNS normalmente empregada para censurar sites, médias sociais e apps de mensagens.\n\nRápido: Servidores DNS implantados em mais que 300 locais em todo o mundo para garantir que a sua Internet seja a mais rápida e altamente disponível possível.\n\nAberto: Código aberto e livre de qualquer rastreador.\n\n***Funcionalidades***\n\nFirewall: Impede que apps conectem à Internet. Bloqueie spyware, malware, ransomware e muito mais.\n     \nUm firewall bloqueia qualquer app que conecte à Internet por WiFi ou dados móveis. Como a maioria das formas de vigilância exige que os dados sejam enviados pela rede a um servidor, o firewall reduz efetivamente a ameaça (gestores de ficheiros, despertadores e calculadoras são alguns exemplos de apps que não exigem acesso à Internet para funcionar). O recurso de firewall usa o Accessibility Service para detetar e bloquear apps em segundo plano.\n\nMonitoramento: Mantém o controlo do tráfego de entrada e saída da Internet. \n\nSe ativados, os registos de conectividade são coletados e analisados. Relatórios automatizados sinalizam conexões anteriormente desconhecidas ou suspeitas e revelam a extensão da tentativa de roubo de dados por redes de spyware. Nos nossos testes, cerca de 60% do tráfego é sinalizado e relatado como ser iniciado por spyware conhecido. Os logs gerados são disponibilizados em tempo quase real para o utilizador fazer a sua própria análise.\n\nWireGuard: Protege o tráfego de saída da Internet.\n\nA app usa o protocolo WireGuard, rápido, moderno, leve e seguro, para criptografar as conexões de saída com qualquer provedor de VPN compatível da sua escolha.\n\nAnti-censura: \n\nA app criptografa a sua conexão com a Internet para o servidor DNS (Domain Name System) administrado pela Rethink, presente em mais que 300 localidades em todo o mundo. Os servidores DNS são o catálogo de endereços da Internet: Um servidor DNS fornece os endereços exatos que precisa para visitar um site ou abrir uma app.\n\nMonitor de dados: Rastreie o uso de dados móveis ou WiFi por app e por conexão.\n"}}, "versions": {"6ac1c0f99c59dd4e5399270daa3f554afcd0903e2b1416ee30cb08675aae2c6a": null, "9f2acac2e0e664e83c7ac86cfa3cd2b30a9394ba9ab0dfcab25b179cbdc9b555": null, "8a29f65d5d6f4e1cd0b177574bc167f6ae721925d122ff69b940a714abad1798": null, "bd15991e83f23f2b543d72b32c47232c9d3d3b44d5eb9a40c6a871b72807c203": null, "0cdb855b05a602caf3a5c3e07ceb37dd947d39e455e60cdaf5c01e0724e4cb0e": {"added": 1786749285772, "file": {"name": "/com.celzero.bravedns_679.apk", "sha256": "0cdb855b05a602caf3a5c3e07ceb37dd947d39e455e60cdaf5c01e0724e4cb0e", "size": 33283650, "ipfsCIDv1": "bafybeiefflgznbqcvs3z7ws2uqf6hj75p52sbnw5k2gq6jee2j6rd4ws34"}, "src": {"name": "/com.celzero.bravedns_679_src.tar.gz", "sha256": "5bb3aa00c562e17b5a2896ed765f98afdb70ced6633acfaf9f1ae7c357f24d4f", "size": 6941149}, "manifest": {"nativecode": ["x86_64"], "versionName": "v0.5.6", "versionCode": 679, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["abc6766ba34e027dc7dfa29b1c2b5b1d1dc14f7ba637895a81dfb68e40bc1579"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.celzero.bravedns.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.CAMERA"}]}}, "f956a199cb619d6b7bc1e8ee93c3050bc0c58acae056b1c9f2439e2812d49e9b": {"added": 1786749285772, "file": {"name": "/com.celzero.bravedns_678.apk", "sha256": "f956a199cb619d6b7bc1e8ee93c3050bc0c58acae056b1c9f2439e2812d49e9b", "size": 31444543, "ipfsCIDv1": "bafybeibrl55snjs5ecysv6jlxefimypirdejiovarlijm5a47tar62nszu"}, "src": {"name": "/com.celzero.bravedns_678_src.tar.gz", "sha256": "1be35b0f7baf862051093571da763c131c7e01a5800ec10992f2d84d7a094a94", "size": 6941219}, "manifest": {"nativecode": ["x86"], "versionName": "v0.5.6", "versionCode": 678, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["abc6766ba34e027dc7dfa29b1c2b5b1d1dc14f7ba637895a81dfb68e40bc1579"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.celzero.bravedns.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.CAMERA"}]}}, "381515b4336a2cb3d2b0e5180d125e0e1d00355c621a41e30e5eb90664cbdeb4": {"added": 1786866775484, "file": {"name": "/com.celzero.bravedns_673.apk", "sha256": "381515b4336a2cb3d2b0e5180d125e0e1d00355c621a41e30e5eb90664cbdeb4", "size": 31981125, "ipfsCIDv1": "bafybeifm2jxr23jksc25tvhibc4n2mxuogoxkcjltheyasap7jo3pyhps4"}, "src": {"name": "/com.celzero.bravedns_673_src.tar.gz", "sha256": "cd759793fc71f2d06a147953acc3e1d30c689e07863cc18635907b763b53740a", "size": 6941025}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "v0.5.6", "versionCode": 673, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["abc6766ba34e027dc7dfa29b1c2b5b1d1dc14f7ba637895a81dfb68e40bc1579"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.celzero.bravedns.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.CAMERA"}]}}, "bba4f2f23d86bf66263552f72a2b00c868ef05e62bd78ead71d3bbc83e189ece": {"added": 1786749285772, "file": {"name": "/com.celzero.bravedns_672.apk", "sha256": "bba4f2f23d86bf66263552f72a2b00c868ef05e62bd78ead71d3bbc83e189ece", "size": 31063623, "ipfsCIDv1": "bafybeicetifpr3ixno6eyo4a2ud23fuiuj2renecx6qq5zvaz5cnp4bsbq"}, "src": {"name": "/com.celzero.bravedns_672_src.tar.gz", "sha256": "9cd49b8e1ca64a3cb4cfaed20afad70d46137c60f4478e9189c315646b97ea6c", "size": 6941183}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "v0.5.6", "versionCode": 672, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["abc6766ba34e027dc7dfa29b1c2b5b1d1dc14f7ba637895a81dfb68e40bc1579"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.celzero.bravedns.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.CAMERA"}]}}}}, "com.chatroom.app": {"metadata": {"added": 1786866775484, "categories": ["Messaging"], "changelog": "https://github.com/44114/android-room/releases", "issueTracker": "https://github.com/44114/android-room/issues", "lastUpdated": 1786866775484, "license": "MIT", "sourceCode": "https://github.com/44114/android-room", "authorName": "Chat Room Contributors", "name": {"en-US": "Chat Room"}, "summary": {"en-US": "Real-time messaging client with text and file sharing."}, "description": {"en-US": "An Android client for the Chat Room real-time messaging server. Built with Jetpack Compose, OkHttp, and Socket.IO, it provides a modern interface for secure communication.\n\nKey Features:\n• Real-time text messaging with instant delivery\n• File sharing support for files up to 4 GB\n• Account management: register, login, change password, delete account\n• Configurable custom server URL for self-hosted instances\n• Remember Me functionality for convenient access\n• Turnstile verification for secure registration\n\nTechnical Details:\n• Built with Jetpack Compose for a native Material Design experience\n• Requires Android 8.0 (API 26) or later\n• Uses OkHttp and Socket.IO for reliable real-time connections\n\nNote: This app requires a compatible Chat Room server to function. You can configure your own server URL in the Account settings.\n"}, "icon": {"en-US": {"name": "/icons/com.chatroom.app.202.png", "sha256": "715361ff1fb112174a73c769e40675b2d6708927fc69d7dccb44160d0e08d0de", "size": 3459}}, "preferredSigner": "ba665576ee1830aa559dd65596fda0c0a9aa3d80185f83efedcda233b2775da1"}, "versions": {"842144c2b745c0a1029f843d38e0f263f64bd3bf84498a697fe2805ae6e4e6ca": {"added": 1786866775484, "file": {"name": "/com.chatroom.app_202.apk", "sha256": "842144c2b745c0a1029f843d38e0f263f64bd3bf84498a697fe2805ae6e4e6ca", "size": 7594513, "ipfsCIDv1": "bafybeibi4bmslvjoxoof7na5y7xvyvqxkgihaggvcsssysotzq4zkikhki"}, "src": {"name": "/com.chatroom.app_202_src.tar.gz", "sha256": "4a21d06e8d6ac9ac14108436484cb6c46fbb402a8a486a9af3e5fb54d07ed02a", "size": 2895792}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.0.2", "versionCode": 202, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["ba665576ee1830aa559dd65596fda0c0a9aa3d80185f83efedcda233b2775da1"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "com.chatroom.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.chiller3.basicsync": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"c667f8f5d9e2277f02a299ab0390a848b3d317567ea2a9c2b66441a9d6bd818a": null, "cf4c55c6d263012c6142b29ede2c03c2e6ed784db9512ac2acb4addbf41a3fac": null, "9b163efb33fec3be89b1d6c5653206da624bcd723cb49a41331eef7cbd72a027": null, "d5f9d0db21e359a06a29315f04fe6ed95cbe43cb0b8d05d42622f810de256822": null, "5db68c61ab00fcab9a142f701853ebebd09b88c09b0380883814ebc7c9491dd2": {"added": 1786866775484, "file": {"name": "/com.chiller3.basicsync_199172.apk", "sha256": "5db68c61ab00fcab9a142f701853ebebd09b88c09b0380883814ebc7c9491dd2", "size": 32821721, "ipfsCIDv1": "bafybeifiykeukb223lotzmagjajxmxzek6ccukmmmilbqhrp6xvzurubzq"}, "src": {"name": "/com.chiller3.basicsync_199172_src.tar.gz", "sha256": "621acc5dace0d8872c3f8ca9805ad88ff4c2d20de4765d0396408ec010448d35", "size": 38998379}, "manifest": {"nativecode": ["x86_64"], "versionName": "3.10", "versionCode": 199172, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["08f8267bbd8827eaafc6f43294e5fb13e8e36e0bb2af2648d4e7b906cae713fa"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.CAMERA"}, {"name": "com.chiller3.basicsync.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "defd22d5e4bb604b21b6725446875d8af4f3aa58d9f8791f581d269a3fd657ec": {"added": 1786866775484, "file": {"name": "/com.chiller3.basicsync_199171.apk", "sha256": "defd22d5e4bb604b21b6725446875d8af4f3aa58d9f8791f581d269a3fd657ec", "size": 30461313, "ipfsCIDv1": "bafybeiefdoleyeugxepgclrjg3ujg27xkfqxbhsljixogu7od7n4ogxmt4"}, "src": {"name": "/com.chiller3.basicsync_199171_src.tar.gz", "sha256": "106ab98815160c8e52ef0596921a7665356394cb371c099db3cf341d3b382e96", "size": 38997442}, "manifest": {"nativecode": ["x86"], "versionName": "3.10", "versionCode": 199171, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["08f8267bbd8827eaafc6f43294e5fb13e8e36e0bb2af2648d4e7b906cae713fa"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.CAMERA"}, {"name": "com.chiller3.basicsync.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "bb5b9db0dde63537cd0e868151d6e0559bf7b2f656f9d6dc81ff0dc2c759cdca": {"added": 1786866775484, "file": {"name": "/com.chiller3.basicsync_199170.apk", "sha256": "bb5b9db0dde63537cd0e868151d6e0559bf7b2f656f9d6dc81ff0dc2c759cdca", "size": 31019477, "ipfsCIDv1": "bafybeibprepwhm2axlfiby5n4h7ygzs5x74aatz7rkr6jixandthgvcbyy"}, "src": {"name": "/com.chiller3.basicsync_199170_src.tar.gz", "sha256": "d25f98fbf0624b834a850f159d328fedaa909b95677107fe7a015fe68c7a3403", "size": 38995547}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "3.10", "versionCode": 199170, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["08f8267bbd8827eaafc6f43294e5fb13e8e36e0bb2af2648d4e7b906cae713fa"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.CAMERA"}, {"name": "com.chiller3.basicsync.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "e692e13105fe481c5b6b3c8c76e109a902d4e23955ddf03468e842a001e2ca29": {"added": 1786866775484, "file": {"name": "/com.chiller3.basicsync_199169.apk", "sha256": "e692e13105fe481c5b6b3c8c76e109a902d4e23955ddf03468e842a001e2ca29", "size": 30067777, "ipfsCIDv1": "bafybeifepuddosiktpuyi65z46fkj6jg6dk4vfcrbngmunk5cnf7rdhecu"}, "src": {"name": "/com.chiller3.basicsync_199169_src.tar.gz", "sha256": "2a037f441e53384c2d02f6f5c26505d6a05813827ce97d1c31f0cca3e7c9346a", "size": 38995604}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "3.10", "versionCode": 199169, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["08f8267bbd8827eaafc6f43294e5fb13e8e36e0bb2af2648d4e7b906cae713fa"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.INTERACT_ACROSS_USERS"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.CAMERA"}, {"name": "com.chiller3.basicsync.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.chmouel.liseur": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"4ea4197dcb3f12e9cb7bc4bf517498fd7c0ca57c39c5eca2fdf66c59beb1b5d6": {"added": 1786866775484, "file": {"name": "/com.chmouel.liseur_11.apk", "sha256": "4ea4197dcb3f12e9cb7bc4bf517498fd7c0ca57c39c5eca2fdf66c59beb1b5d6", "size": 7294537, "ipfsCIDv1": "bafybeie42mwmtozdd47y6asj64axgkpt6i2wu7dqo4rcrgu5gjgdoahumu"}, "src": {"name": "/com.chmouel.liseur_11_src.tar.gz", "sha256": "0f25c40eea02eb11d038d7d3b3b361b7d495b1b5a888a192d79f1f778e32ad38", "size": 26659412}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.6.0", "versionCode": 11, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["b47cf264993e49a67bebbb5f3175e9340e6a8e18586e26112da3fd18ffc4e16e"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.chmouel.liseur.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Reading positions now sync through a liseur-sync server, which keeps your place, your finished sessions and your reading figures in step across devices. The reader takes the furthest page rather than asking, and says when a position arrived from elsewhere. Statistics fold in what the server knows. Settings were reorganised, remote libraries first. Word definitions can now open in an external dictionary app instead of the built-in card.\n"}}}}, "com.co3": {"metadata": {"lastUpdated": 1786866775484, "donate": ["https://ko-fi.com/tbvns"]}, "versions": {"7e1c8ca9011b8339ae7c3ce0f7ef491f3361f62d76b2cae0f3c886a200795c11": null, "8a8326ff1674288d10e5e18e3aa9689b9668b62c2c896a894633d06f2d87300a": null, "6fa97d58a2fb9e615322935d950b1e26fe483d147a30290fad87c780fd130431": null, "7ca37bf5af2d22ae2ec557a60b8bbfe66dc846a7230b4f945cf9a685155a9560": null, "79515914d297addc9864807b60fc2796e115152ace033d8f29ffb8bf4ad7901f": {"added": 1786866775484, "file": {"name": "/com.co3_204.apk", "sha256": "79515914d297addc9864807b60fc2796e115152ace033d8f29ffb8bf4ad7901f", "size": 50278189, "ipfsCIDv1": "bafybeie24fny74f5d6kuyx4zjv4bfphb6mfmhel56762aoyyxbhpgmwtya"}, "src": {"name": "/com.co3_204_src.tar.gz", "sha256": "88e2a2d6b2ccd6287376887fb82f7b98df0270f6d8c4aec437ec71173f519aef", "size": 177950818}, "manifest": {"nativecode": ["x86_64"], "versionName": "B0.0.20", "versionCode": 204, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["8a07bd8afea94d0c91f673510ddbd038736bd784d683dd9388b757bb743e6b1c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "com.co3.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "This app relies on archiveofourown.org", "fr-FR": "Cette application dépend d'archiveofourown.org"}}}, "48e0fd791c0cc2a0281636f1f463fe6dd28a0b81ed1fc16bab24f72dc9a20fa1": {"added": 1786866775484, "file": {"name": "/com.co3_203.apk", "sha256": "48e0fd791c0cc2a0281636f1f463fe6dd28a0b81ed1fc16bab24f72dc9a20fa1", "size": 50863854, "ipfsCIDv1": "bafybeidsk76mpcwsgqsxakh7i66adcmy62jsjuggdrnj5nj3gnw6ftftz4"}, "src": {"name": "/com.co3_203_src.tar.gz", "sha256": "fe51b8889970230a1b3ff4775a2396ee3e4d3287c0b046311afc751946e81e0a", "size": 177948396}, "manifest": {"nativecode": ["x86"], "versionName": "B0.0.20", "versionCode": 203, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["8a07bd8afea94d0c91f673510ddbd038736bd784d683dd9388b757bb743e6b1c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "com.co3.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "This app relies on archiveofourown.org", "fr-FR": "Cette application dépend d'archiveofourown.org"}}}, "321f83d059c823da2a00fb45285721103171aaaef83de4486381e8016f4239cc": {"added": 1786866775484, "file": {"name": "/com.co3_202.apk", "sha256": "321f83d059c823da2a00fb45285721103171aaaef83de4486381e8016f4239cc", "size": 49799020, "ipfsCIDv1": "bafybeieh6jhuim5lr7p3veqw2yypk4hhgwtqty7fzpjl6kux2s7fggumyu"}, "src": {"name": "/com.co3_202_src.tar.gz", "sha256": "0a60c99b94201ef6d0887a08bf1ebe0a052764d19951e5476870db6f93b224c5", "size": 177947271}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "B0.0.20", "versionCode": 202, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["8a07bd8afea94d0c91f673510ddbd038736bd784d683dd9388b757bb743e6b1c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "com.co3.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "This app relies on archiveofourown.org", "fr-FR": "Cette application dépend d'archiveofourown.org"}}}, "3a05d36f6c3840b2e45c2ca20f04b1cd7238ca7bd1e29d8829649b1b2911466e": {"added": 1786866775484, "file": {"name": "/com.co3_201.apk", "sha256": "3a05d36f6c3840b2e45c2ca20f04b1cd7238ca7bd1e29d8829649b1b2911466e", "size": 43696022, "ipfsCIDv1": "bafybeig3cjqzj6gqrqfyy3ilqfu3a674nidxkfue72bxzoaj6m43oiitwm"}, "src": {"name": "/com.co3_201_src.tar.gz", "sha256": "a07d5e2bd48bf6e8975b9e2f020e85b887c3389a87dec91988d1e39d032104e2", "size": 177956454}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "B0.0.20", "versionCode": 201, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["8a07bd8afea94d0c91f673510ddbd038736bd784d683dd9388b757bb743e6b1c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "com.co3.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "This app relies on archiveofourown.org", "fr-FR": "Cette application dépend d'archiveofourown.org"}}}}}, "com.debojitsantra.backlogtracker": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"1c38ea4af5a8a23278bbe2d983e0986a5595f0d961579904fc5a6aefdf331207": null, "5c12ad6307fca2c698c80d05ed2b3a08722c1a6fff82631c27a743b714057cce": {"added": 1786866775484, "file": {"name": "/com.debojitsantra.backlogtracker_8.apk", "sha256": "5c12ad6307fca2c698c80d05ed2b3a08722c1a6fff82631c27a743b714057cce", "size": 4014988, "ipfsCIDv1": "bafybeia62223mmnm5inkfb3tq4v35ultvjfjnv4zhi5eofcmo2goxd43o4"}, "src": {"name": "/com.debojitsantra.backlogtracker_8_src.tar.gz", "sha256": "ed74133741f7675aec6554b03f25630db0f0b953b5167838c25e04ca68dd0b95", "size": 84886644}, "manifest": {"versionName": "1.2.5", "versionCode": 8, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["eb4b61217e7871ecf28e54f36f4aa2077f32f677ff438c7be9b8320eaf2f1f70"]}, "usesPermission": [{"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.debojitsantra.backlogtracker.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "cc7f63ee5596ead58dd3c348f929f4827b496c35e02f2fd3e5cc5b390a6a28af": {"whatsNew": {"en-US": "- notification support\n- add WebView version warning for old Android WebView rendering issues\n- 6 new colour themes\n     - Soot Black, Charred Cinder, Royal Violet, Deep Indigo, Rose Pink, Golden Amber                                                                                                      \n"}}}}, "com.divinelink.scenepeek": {"metadata": {"changelog": "https://codeberg.org/Divinelink/scenepeek-tmdb/releases", "issueTracker": "https://codeberg.org/Divinelink/scenepeek-tmdb/issues", "lastUpdated": 1786749285772, "sourceCode": "https://codeberg.org/Divinelink/scenepeek-tmdb", "icon": {"en-US": {"name": "/icons/com.divinelink.scenepeek.56.png"}}}, "versions": {"1af22839544b8c8cca2a90aef3228907d5afe20af6e9fc58cee1991c0b46ef82": null, "568e2ad2c486c8ba8eca5a042bad0a5f3dadb4e9a3a54ae844030cf229eb09a1": {"added": 1786749285772, "file": {"name": "/com.divinelink.scenepeek_56.apk", "sha256": "568e2ad2c486c8ba8eca5a042bad0a5f3dadb4e9a3a54ae844030cf229eb09a1", "size": 4943522, "ipfsCIDv1": "bafybeicw24p5flabfdpxv27rg4tm2wuqxkcdozqsbsk52dijcop2bti4lu"}, "src": {"name": "/com.divinelink.scenepeek_56_src.tar.gz", "sha256": "ee8262ebb5439d6bfe8e3e763ba1474304942ee328ebe4f9290619eefec52565", "size": 52035340}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.37.0 F-Droid", "versionCode": 56, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["3a7314a1298a2dcaf3dad124b7650c9637dcaefb5f5790049fd476a3518ea1f1"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.divinelink.scenepeek.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Rely on themoviedb.org and tmdb.org servers"}}}}}, "com.dtsykunov.pause": {"metadata": {"added": 1786866775484, "categories": ["System", "Time Tracker"], "changelog": "https://github.com/dtsykunov/pause-app/releases", "issueTracker": "https://github.com/dtsykunov/pause-app/issues", "lastUpdated": 1786866775484, "license": "MIT", "sourceCode": "https://github.com/dtsykunov/pause-app", "screenshots": {"phone": {"en-US": [{"name": "/com.dtsykunov.pause/en-US/phoneScreenshots/1.png", "sha256": "37594d751917b1220a251a430c773f00ba61ce621c07d31b8daf86075dd57703", "size": 45209}, {"name": "/com.dtsykunov.pause/en-US/phoneScreenshots/2.png", "sha256": "4ca0ed4ce0f31f2aa827b6f333db47ff479bf943f967cc8ba1f057daf7837ca9", "size": 97505}, {"name": "/com.dtsykunov.pause/en-US/phoneScreenshots/3.png", "sha256": "326d086df378a14cf76af7ccb287a763060dd30fca8b46f256b2f875fed91d4b", "size": 35481}, {"name": "/com.dtsykunov.pause/en-US/phoneScreenshots/4.png", "sha256": "508121fa53d7e5444ac8fc4ec0565ef5609c8c3274eca22a9bbdf4f410224d82", "size": 83961}]}}, "authorName": "Dmitrii Tsykunov", "name": {"en-US": "Pause"}, "summary": {"en-US": "A short, timed pause before chosen apps open, so opening is deliberate."}, "description": {"en-US": "Pause adds a short, timed pause before you open the apps you choose. When you launch a selected app, the screen is covered by a panel with a countdown. Only after it finishes can you choose Open anyway or Cancel. It turns an automatic tap into a deliberate choice. It is friction, not a hard block.\n\nThe pause screen also shows how many times you have opened that app in the last 24 hours and when you last opened it.\n\nFeatures:\n\n* Timed pause: a short countdown before the app opens, with a length you choose.\n* Per app: pick which apps get a pause; everything else opens normally.\n* Open count: see how many times you have opened that app in the last 24 hours.\n* Adjustable: set the pause length, a custom message, and whether the countdown is shown.\n* Local stats: per-app pauses, opens, and cancels, plus total time paused.\n* No network access: everything stays on your phone. No account, no analytics. The app cannot reach the internet.\n\nHow it works:\n\nPause uses an Accessibility Service to detect when a chosen app opens and an accessibility overlay to draw the pause screen, so it needs no \"draw over other apps\" permission. An accessibility-based gate is best-effort, not a hard block: it is meant to make impulsive opens deliberate, not to be tamper-proof.\n\nCheck your phone first:\n\nRecent Android versions may already do this. Android 17's Pause Point adds a built-in delay before selected apps on some Pixel and Samsung phones, and Digital Wellbeing offers app timers and Focus mode. If your phone has those, prefer them. Pause is for older devices, custom ROMs, and phones that ship without Google's Digital Wellbeing.\n"}, "icon": {"en-US": {"name": "/icons/com.dtsykunov.pause.15.png", "sha256": "8ad921596039d34cc11c3e65e8eb4af36596ca81ed5543658afe3695addf49b9", "size": 858}}, "preferredSigner": "8b1eb432e3465d1ece5dfa68f5a8c5ac3fe4c9e63442dd28dba5149eeffe42b8"}, "versions": {"1ab819448e2b4c4572a7a2cf8dab2b8c37323b422f65ee7afee23d2686ab8d3a": {"added": 1786866775484, "file": {"name": "/com.dtsykunov.pause_15.apk", "sha256": "1ab819448e2b4c4572a7a2cf8dab2b8c37323b422f65ee7afee23d2686ab8d3a", "size": 1482892, "ipfsCIDv1": "bafybeif2h5xw727wx7qyj4ks3fiturnpclqtlvxiqhmflinbayh7upeide"}, "src": {"name": "/com.dtsykunov.pause_15_src.tar.gz", "sha256": "0a8f1daaa89607b38998a05f2fa6093d2ec76257f33ca31087beaa3876ccdeae", "size": 615975}, "manifest": {"versionName": "0.3.4", "versionCode": 15, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 34}, "signer": {"sha256": ["8b1eb432e3465d1ece5dfa68f5a8c5ac3fe4c9e63442dd28dba5149eeffe42b8"]}, "usesPermission": [{"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "com.dtsykunov.pause.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "First F-Droid release. A short, timed pause before the apps you choose open, with per-app stats. Everything stays on your phone; the app has no network access.\n"}}}}, "com.eden.livewidget": {"metadata": {"lastUpdated": 1786866775484, "screenshots": {"phone": {"en-US": [{"name": "/com.eden.livewidget/en-US/phoneScreenshots/1.png", "sha256": "4daeae51ee7bcbb501215d6dc87216fdd44fd94753c4337987cadf66bb0d51e6", "size": 292798}, {"name": "/com.eden.livewidget/en-US/phoneScreenshots/2.png", "sha256": "1078428964de75c0c74eb46e4e649484846b206dc366aadc068dc6c461521e81", "size": 188730}, {"name": "/com.eden.livewidget/en-US/phoneScreenshots/3.png", "sha256": "7516c858e397cc8f986eca4f3244f1d9f43bf0d472d3fe557772d8a5e2480bc4", "size": 130233}, {"name": "/com.eden.livewidget/en-US/phoneScreenshots/4.png", "sha256": "80b0dcf46741c486ec9ae09a9e73a64b454cf7443c417d8077108bf2170b044b", "size": 222100}, {"name": "/com.eden.livewidget/en-US/phoneScreenshots/5.png", "sha256": "41eb37f26c4c77b8b6cca1d0b1ee7a4d76ae4298202c28bcc13ee8156a5dd233", "size": 158446}, {"name": "/com.eden.livewidget/en-US/phoneScreenshots/6.png", "sha256": "52424f6c2b60bee019ad00618cee28c8b0f710aa3d1f1cb24c0345a239a3ec03", "size": 181763}]}}}, "versions": {"a8750eb7acb311f2686cc81dea85886ee49050df7be30a8863768dc99a9f26bc": null, "8e558f4165548332e8c79f4a64e91bd863954433e4c7ed5263e4562c90013624": {"added": 1786866775484, "file": {"name": "/com.eden.livewidget_20007.apk", "sha256": "8e558f4165548332e8c79f4a64e91bd863954433e4c7ed5263e4562c90013624", "size": 15015127, "ipfsCIDv1": "bafybeicuo5hugarra3ya5mrwdfs2j6djpstour4ndbllrdgob5nog7ewee"}, "src": {"name": "/com.eden.livewidget_20007_src.tar.gz", "sha256": "2e71f05b819a5127d8f263a684e03dd3298aa27f8a2a66083ce8ae6215806cee", "size": 3881670}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.0.7", "versionCode": 20007, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["a49d716216e9b3ae7f246e6575cf1a196b9074bb101e1eaa9e2371db809707f6"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM", "maxSdkVersion": 32}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.eden.livewidget.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Depends on api.tfl.gov.uk servers"}}, "whatsNew": {"en-US": "Improve reliability of initial widget update\nChange wording of metered error screen"}}, "f32e2ef661f90f607a1f8bdff5b132128c73abb14f98963d8e9d8769c0fd8211": {"added": 1786749285772, "file": {"name": "/com.eden.livewidget_20006.apk", "sha256": "f32e2ef661f90f607a1f8bdff5b132128c73abb14f98963d8e9d8769c0fd8211", "size": 15015127, "ipfsCIDv1": "bafybeiftdxgkrms2c6byleafktinysadkeewwha2to4qduhhtuudsm4i5i"}, "src": {"name": "/com.eden.livewidget_20006_src.tar.gz", "sha256": "b5ae29c04b7f69f236482195466ddd439a07af53329a9a0fa8153a2468c124db", "size": 3881429}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.0.6", "versionCode": 20006, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["a49d716216e9b3ae7f246e6575cf1a196b9074bb101e1eaa9e2371db809707f6"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM", "maxSdkVersion": 32}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.eden.livewidget.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Depends on api.tfl.gov.uk servers"}}, "whatsNew": {"en-US": "Add retry indication on widget\nAdd information when fail to update due to data saver\nFix widget time to be time of data\nFix widget displaying outdated data initially"}}}}, "com.enclavd.app": {"metadata": {"added": 1786866775484, "categories": ["Social Network"], "issueTracker": "https://github.com/Slime-jkl/enclavd-android-source/issues", "lastUpdated": 1786866775484, "license": "GPL-3.0-only", "sourceCode": "https://github.com/Slime-jkl/enclavd-android-source", "featureGraphic": {"en-US": {"name": "/com.enclavd.app/en-US/featureGraphic_OGzmIZePYv-Du8p3PzWWRLoVlObkT5Y6JNdjlbG1Kog=.png", "sha256": "386ce621978f62ff83bbca773f359644ba1594e6e44f963a24d76395b1b52a88", "size": 84965}}, "screenshots": {"phone": {"en-US": [{"name": "/com.enclavd.app/en-US/phoneScreenshots/1.png", "sha256": "dbb524af4974c5e64599113e71859eb846da00e8347a014f383b17d43ac55197", "size": 349715}, {"name": "/com.enclavd.app/en-US/phoneScreenshots/2.png", "sha256": "1805306c10a81d99776ef3337786b9f8e8ba827a0bb51fea0db23d08d8346b49", "size": 65683}, {"name": "/com.enclavd.app/en-US/phoneScreenshots/3.png", "sha256": "68206d474986620687f3d0cf59b5b0cb1ff306b428b111bdcc2e0c5289798e91", "size": 382833}, {"name": "/com.enclavd.app/en-US/phoneScreenshots/4.png", "sha256": "562e61567dbdca751ba0c4214cfb92455b1b8f2b047cf3c94b292c2bc76e0036", "size": 104323}, {"name": "/com.enclavd.app/en-US/phoneScreenshots/5.png", "sha256": "dcdf646a735664895b9a59a819ec926b67d8371060c9d20490591eac837d04d7", "size": 107073}, {"name": "/com.enclavd.app/en-US/phoneScreenshots/6.png", "sha256": "19d10e4bc561445c4211e9d062e7c1acc651f66de6af58e4098b1ee3de2eea4d", "size": 144774}]}}, "authorEmail": "support@enclavd.com", "authorName": "Slime-jkl", "name": {"en-US": "Enclavd"}, "summary": {"en-US": "Personality based social network"}, "description": {"en-US": "<b>Enclavd: A personality-based social network.</b><br />\n<br />\nStop broadcasting into the void. Enclavd is a private social network built on compatibility. Take a personality quiz, get matched with people on your wavelength, and connect through a feed built around who you actually are.<br />\n<br />\n<b>CORE PRINCIPLES</b><br />\n<br />\n<b>Personality over Popularity:</b> Your feed is filtered by personality. Find people who are on the same frequency.<br />\n<br />\n<b>Private by Design:</b> Your profile and activity exist inside a closed network. No public indexing, no search engine scraping, no exposure outside the app.<br />\n<br />\n<b>Invite-Only Network:</b> Enclavd grows through trusted invitations only. No open sign-ups, no bot accounts, no spam profiles cluttering your feed.<br />\n<br />\n<b>Minimalist Interface:</b> A clean, stripped-back design built for focus, with nothing competing for your attention except the people you're actually connecting with.<br />\n<br />\n<b>Free to Join:</b> Enclavd is free to download and use, with no barriers to finding your community.<br />\n<br />\n<b>WHO ENCLAVD IS FOR</b><br />\n<br />\n• You're tired of social media feeds built around outrage and engagement bait.<br />\n• You want a private social network instead of a public profile anyone can scrape.<br />\n• You're looking for real conversations and genuine compatibility, not more followers.<br />\n• You'd rather join through a trusted invite than scroll past strangers and bots.<br />\n<br />\nEnclavd is a social network for people who want depth over reach.<br />\n<br />\nTake the quiz. Find your matches. Build your enclave.<br />\n<br />\nDownload Enclavd and stop existing for the feed."}, "icon": {"en-US": {"name": "/com.enclavd.app/en-US/icon_LhrPXVAB7a2NghgeQICEGZmD1ckbXOEwcESFxx6T_Jg=.png", "sha256": "2e1acf5d5001edad8d82181e408084199983d5c91b5ce130704485c71e93fc98", "size": 13533}}, "preferredSigner": "3de54b888e221098059aaae569f17deafacd2ae93288c5ea73a0001263bb1705"}, "versions": {"9f33105e0f67dcc3c6f238a82657706aee5cafd5b005df476e9b70d87cb9b8d3": {"added": 1786866775484, "file": {"name": "/com.enclavd.app_31.apk", "sha256": "9f33105e0f67dcc3c6f238a82657706aee5cafd5b005df476e9b70d87cb9b8d3", "size": 5637216, "ipfsCIDv1": "bafybeigz6o4rfsdyav7gvjgaoccnruoe2bint3o3qwpbji52pa5iu5ooke"}, "src": {"name": "/com.enclavd.app_31_src.tar.gz", "sha256": "b69be70c9e90334cdb07586fa4c727d1c6270788358e1d4e4380eb9410b7231d", "size": 1465189}, "manifest": {"versionName": "1.3.1", "versionCode": 31, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["3de54b888e221098059aaae569f17deafacd2ae93288c5ea73a0001263bb1705"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.enclavd.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 28}]}, "antiFeatures": {"NonFreeNet": {"en-US": "App connects to the proprietary Enclavd backend service."}}}}}, "com.exner.tools.immichuploader": {"metadata": {"lastUpdated": 1786749285772, "description": {"en-US": "<p>Immich Uploader is a small app that discovers media files on your Android device, then uploads them to your Immich instance.</p>\n\n<p>The app can be configured to remove media files from your device after successful updates. This can be configured individually by type of file (Photo, Screenshot, Download, or Others).</p>\n\n<p>It can also apply Tags to media files after successful upload. Again, this can be configured by type of file.</p>\n\n\n<h2>Permissions</h2>\n\n\n<h3>Android</h3>\n\n<p>The app needs INTERNET permissions for the upload as well as access to your media files, which it will explicitly ask for.<p>\n\n<p>On devices running Android 17 or later, it also needs ACCESS_LOCAL_NETWORK permissions if you want to use a local server URL when your Android device is on the same network as your Immich server. This usually speeds up upload a great deal.</p>\n\n\n<h3>Immich</h3>\n\n<p>The app connects to your Immich instance. It needs an API Key to do so.</p>\n\n<p>You can use your standard Immich user, or you can (should) create a user specifically for Immich Uploader.</p>\n\n<p>The user must have the following permissions on your Immich instance:</p>\n\n<ul>\n  <li><code>asset.upload</code> - for uploading media assets</li>\n  <li><code>apiKey.read</code> - for testing the connection, used on the Settings screen (since v2.2.2)</li>\n  <li><code>tag.read</code> - for retrieving the list of Tags on your Immich instance (since v3.1.0)</li>\n  <li><code>tag.asset</code> - for applying Tags to assets (since v3.1.0)</li>\n</ul>\n\n<p>If you use the \"Check connection\" buttons on the Settings view, but your Immich user does not have <code>apiKey.read</code> permission, the check will fail.</p>\n\n<p>If your Immich user does not have <code>tag.read</code> permission, the app can not download Tags from the Immich instance, and if they do not have <code>tag.asset</code> permission, uploads will still work, but media files will not be tagged.</p>\n"}}, "versions": {"2061e7a3a393a605fc2fc66c344e1b95dbaf8fd693487f4022bdb7b7732b6d9f": null, "5578eaa81e71fe3cd4f2fe7374df3f32e94c747c2bcbb3c1602581595d41860a": {"added": 1786749285772, "file": {"name": "/com.exner.tools.immichuploader_24.apk", "sha256": "5578eaa81e71fe3cd4f2fe7374df3f32e94c747c2bcbb3c1602581595d41860a", "size": 4825451, "ipfsCIDv1": "bafybeib2cvn6g5ppvnhsarlkw5xdut7xbt36g3noawsyqquqgs6r3vlji4"}, "src": {"name": "/com.exner.tools.immichuploader_24_src.tar.gz", "sha256": "5f4a999a8d92052d4d14c42e7a31d54e885faa689457f3211366f26ac1878e8b", "size": 6741657}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "3.1.0", "versionCode": 24, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 37}, "signer": {"sha256": ["07a89b9b74e8d980673671912166ace204c2f73523cd631b933cb4f77ac4a2cf"]}, "usesPermission": [{"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}]}, "whatsNew": {"en-US": "- added ability to tag uploaded media with an Immich tag\n- added ability to specify in which order media should be uploaded\n- added backup and restore of all data\n- removed backup of work log entries\n- fixed import of settings\n- fixed the UI in some places\n- updated a couple of dependencies\n"}}}}, "com.fireflame.dream": {"metadata": {"added": 1786866775484, "categories": ["Puzzle Game", "Role-Playing Game"], "issueTracker": "https://github.com/FuzionCD/dream-game-android/issues", "lastUpdated": 1786866775484, "license": "GPL-3.0-or-later", "sourceCode": "https://github.com/FuzionCD/dream-game-android", "screenshots": {"phone": {"en-US": [{"name": "/com.fireflame.dream/en-US/phoneScreenshots/1.jpg", "sha256": "9d3ab029cecc6c6116f87412980c9c326c936652a1e32058e508a340eb7c6249", "size": 86754}, {"name": "/com.fireflame.dream/en-US/phoneScreenshots/2.png", "sha256": "118efb6bafa648519d956e76de4315f80305d47b1fc0c785ca8520ba8b3dcf6d", "size": 914692}, {"name": "/com.fireflame.dream/en-US/phoneScreenshots/3.png", "sha256": "e9cc87a636e970c6553e3f4027e9e08d0f1408daeb5a7fe320dc2f8349f19ab0", "size": 1005185}, {"name": "/com.fireflame.dream/en-US/phoneScreenshots/4.jpg", "sha256": "57e099bb2369f6986f5fbcaf7d8641c58e0f84ac9db07ee4bde103cbd36535f8", "size": 220050}, {"name": "/com.fireflame.dream/en-US/phoneScreenshots/5.jpg", "sha256": "42e4666029fbd95aa34f9d56c6e35e084c81ec266e957962a146f222f7f2e924", "size": 163711}, {"name": "/com.fireflame.dream/en-US/phoneScreenshots/6.jpg", "sha256": "b42bd04264cf17c087bbe2b23c42e095e24c16cefce152d26c67b24bc1ba30da", "size": 155163}, {"name": "/com.fireflame.dream/en-US/phoneScreenshots/7.jpg", "sha256": "20d25b43c07855c4092c746c1738eac8c9463bc095d944e39ac0dc711199f241", "size": 197046}, {"name": "/com.fireflame.dream/en-US/phoneScreenshots/8.png", "sha256": "815ed480dfaf423016d427819f5c5093a735877e39c916ff8edbdb23464313c4", "size": 360939}]}}, "authorName": "Fuzion", "name": {"en-US": "I Keep Having This Dream"}, "summary": {"en-US": "Build a path of tiles to escape each cycle of a dangerous recurring dream"}, "description": {"en-US": "In this strategy-roguelike, build a path of tiles to escape each successive\ncycle of your dreamscape. A cycle grows more dangerous the longer you stay, so\nplan your route carefully and make the most of the challenges and opportunities\nyou meet along the way.\n\nPlace tiles to boost your attack and defence, defeat enemies to level up, and\nchoose the right perks to stay safe as your ever-present pursuer grows stronger.\nTake a detour off the direct path to find items that give you an edge, but\nbeware the powerful special enemies that grow more frequent as you near the\nexit; left untended, their abilities will quickly spell your doom.\n\nFeatures:\n\n* 25+ upgradeable perks to augment and focus your strategy\n* 150+ items to collect and boost your stats\n* 100+ special enemies to encounter and overcome\n* 80+ one-off events for a temporary boost\n* Unlock more enemies, events, and cosmetics across playthroughs"}, "icon": {"en-US": {"name": "/com.fireflame.dream/en-US/icon_Wzn52S-SYHNYDp7WKoAMHIxVMEC8QJDQjpwPZ1IcqVE=.png", "sha256": "5b39f9d92f926073580e9ed62a800c1c8c553040bc4090d08e9c0f67521ca951", "size": 101515}}, "preferredSigner": "02a8aad4792bb15b78bdeee639475e96bcef0594d900b8d68811c9cbde36f10e"}, "versions": {"6838a61f8e924cfb084492b1c82f0f76698aa0eb8d9d74b808d2c777c83ee47d": {"added": 1786866775484, "file": {"name": "/com.fireflame.dream_1.apk", "sha256": "6838a61f8e924cfb084492b1c82f0f76698aa0eb8d9d74b808d2c777c83ee47d", "size": 70242555, "ipfsCIDv1": "bafybeihanmn5ezyghfzwy6phhxqeh2fiiqybr2cmvkdhi3imovo7rzfin4"}, "src": {"name": "/com.fireflame.dream_1_src.tar.gz", "sha256": "7fbb057533233db9e8b822007d979b211d65da0a7d95aa6bca7e71011dc82760", "size": 121421963}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.0.0", "versionCode": 1, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["02a8aad4792bb15b78bdeee639475e96bcef0594d900b8d68811c9cbde36f10e"]}}, "antiFeatures": {"NonFreeAssets": {"en-US": "I Keep Having This Dream's soundtrack contains stock music licensed exclusively for use in the game - ripping, selling, or otherwise externally using the soundtrack of this game is not permitted. Similarly, while I Keep Having This Dream's sprites + textures are original, they belong to the game and are not free to use for your own personal projects."}}}}}, "com.flux": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"2607be79e8229384d2a86c50fc1fb2d04aa1e369786dedc32acc476d0aed771f": null, "005f05acc66138053ff209ed6d43f6225599145415a5077f9575f06a62dfe2a7": {"added": 1786749285772, "file": {"name": "/com.flux_19.apk", "sha256": "005f05acc66138053ff209ed6d43f6225599145415a5077f9575f06a62dfe2a7", "size": 12829366, "ipfsCIDv1": "bafybeickflmzycf3cyzganp2pmfh57tijpxyxdzoj65odlkkm7chnqnrrm"}, "src": {"name": "/com.flux_19_src.tar.gz", "sha256": "8128626d08f38cd5197a33ddc87c57c043889147dfe31ddb8fa81ce3b5d4a27b", "size": 14143774}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "3.2.2", "versionCode": 19, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 37}, "signer": {"sha256": ["bdccca30ae93302c4646db9cf23f4e4759c1d5b60ad5728b35ae0fc0feb79402"]}, "usesPermission": [{"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.flux.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "feat:\n    - haptic feedbacks in notes selection, sliders\n\nfix:\n    - clone label in notes\n    - radio slider bug\n    - Double content creation on nav icon back click for notes, todo, journal\n    - journal date bug for new journals.\nsrc:\n    - addition of more categories to icon sheet\nchore:\n    - prepare for release 3.2.2"}}}}, "com.futsch1.medtimer": {"metadata": {"lastUpdated": 1786749285772, "description": {"et": "Ravimite meeldetuletused ja ajalugu kasutamiseks võrguühenduseta täiesti privaatselt moel\n\nHoia oma ravimid kontrolli all rakendusega MedTimer\n\nMedTimer on avatud lähtekoodiga ravimite meeldetuletuse rakendus, mis aitab sul oma ravimeid ja tablette tõhusalt hallata ning hoida täielikku kontrolli oma delikaatsete andmete üle.\n\n## Paindlikud ja isikupärastatud meeldetuletused:\n\n* Halda piiramatut arvu ravimeid ning määra iga ravimi jaoks kohandatavad meeldetuletused (sealhulgas lihtsad vaikeseadistused igapäevaste meeldetuletuste jaoks).\n* Koosta paindlikke meeldetuletusi koos pauside ja kindlate päevadega (näiteks rasestumisvastaste pillide jaoks).\n* Nädalavahetuse režiim: lükka meeldetuletused valitud päevadel määratud ajale edasi.\n* Lükka teavitusi edasi hilisemaks või lase endale korduvalt meelde tuletada.\n* Asukohapõhine edasilükkamine: saa uus teavitus, kui jõuad pärast edasilükkamist koju.\n* Lisa jooksvalt täiendavaid annuseid.\n* Loo intervallipõhiseid meeldetuletusi, järjestikuste intervallidega korduvaid meeldetuletusi või intervallimeeldetuletusi, millel on iga päeva jaoks määratud algus- ja lõppaeg.\n* Kasuta alarmitüüpi meeldetuletusi, et tagada teavitus ka siis, kui seade on vaiksel režiimil.\n\n## Lihtne ja turvaline andmehaldus:\n\n* Kinnita või lükka meeldetuletused tagasi, et registreerida ravimi võtmine täpselt.\n* Vaata varasemaid annuseid ülevaatlikult graafiku ja tabelina.\n* Ekspordi oma ravimite ajalugu CSV-failina, et seda oleks lihtne säilitada või tervishoiutöötajatega jagada.\n* Varunda ja taasta oma ravimite loend JSON-failina.\n* Jälgi ravimite varusid ja saa teavitusi, kui ravimid hakkavad otsa saama.\n* Lisa oma ravimitele silte ja filtreeri neid.\n\n## Privaatsus ja võrguühenduseta kasutamine:\n\n* Kõik andmed salvestatakse turvaliselt sinu seadmesse, tagades täieliku privaatsuse ja ligipääsu võrguühendust kasutamata.\n* Internetiühendust pole vaja – sinu ravimite meeldetuletused on alati kättesaadavad.\n\nMedTimer on tasuta rakendus ilma reklaamideta.\n\nVaata projekti lehte GitHubis: https://github.com/Futsch1/medTimer\n\nGraafika loodi veebilehe https://hotpot.ai abil\n"}}, "versions": {"681e662aca05806b50dae69756a53221746f778929bda0b5ebc2ee845f4d76df": null, "5038d6338634c2cc1fb727761bf14398a7db74dcb944562c54da6947f71984e6": {"added": 1786749285772, "file": {"name": "/com.futsch1.medtimer_184.apk", "sha256": "5038d6338634c2cc1fb727761bf14398a7db74dcb944562c54da6947f71984e6", "size": 15136229, "ipfsCIDv1": "bafybeifttkcybdea5gv47n74gbqsdsf3kjxafver5rme6k4dkiyrrbrkyq"}, "src": {"name": "/com.futsch1.medtimer_184_src.tar.gz", "sha256": "67d8bd171456693da0be8a7c2bb540e290ec9b61073db76e6ebb4742174aefc0", "size": 41461920}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.25.1", "versionCode": 184, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["69bc7c72e499045b44c87fc8463f599472deb408c48de38de8554ae7754b9d84"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.futsch1.medtimer.NOTIFICATION_PROCESSED"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.futsch1.medtimer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.gemwallet.android": {"metadata": {"lastUpdated": 1786866775484, "icon": {"en-US": {"name": "/icons/com.gemwallet.android.821.png"}}}, "versions": {"8cb200223bda9567d85ad2e8fa93fb2b7c22d5fae10cd511d9adf03f749d0800": null, "a033247c4468180ba9bd194dc842965592a380434ac29933791039184e86d465": null, "4871bda6b40c010dd8e1b68e94f24009fa82ed5ae6bbb88ad2a9a831d8368c2f": {"added": 1786866775484, "file": {"name": "/com.gemwallet.android_821.apk", "sha256": "4871bda6b40c010dd8e1b68e94f24009fa82ed5ae6bbb88ad2a9a831d8368c2f", "size": 33590774, "ipfsCIDv1": "bafybeicuoifs5o6c6b55v6jojocv4oy65thrzb4ovg3y3je7rcu77mrpey"}, "src": {"name": "/com.gemwallet.android_821_src.tar.gz", "sha256": "6e6d92bc6dfa09c6de8c4c4b7e17049a206ff30a53d33bc5940566eded6dcd27", "size": 5786396}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "2.114.8", "versionCode": 821, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 37}, "signer": {"sha256": ["b57d7024a923b36a3538e19ed2199ec1e2003b73601e9b0fd7d2affaafa1717b"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.DETECT_SCREEN_CAPTURE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.gemwallet.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Depends on Gem Wallet API and assets services, public blockchain RPC and indexer services, price/name/security/NFT APIs, swap services including Jupiter, Thorchain and Maya, and fiat providers including MoonPay, Transak, Mercuryo, Banxa, Paybis and Flashnet."}}}, "ec52b0a72a7ff1aa4d5fa564ff2c7296d4977b7e65aa8ab9d6ddf0d2b400cc67": {"added": 1786749285772, "file": {"name": "/com.gemwallet.android_820.apk", "sha256": "ec52b0a72a7ff1aa4d5fa564ff2c7296d4977b7e65aa8ab9d6ddf0d2b400cc67", "size": 33558111, "ipfsCIDv1": "bafybeiadopylirc2ptlkw4nsgovg5ypjw46zlqbwrbdls3vhdkx4u5dhpq"}, "src": {"name": "/com.gemwallet.android_820_src.tar.gz", "sha256": "5ab7d8e2f60e72e7250eac66c7bb9cfb77d38ac1af3d5ecaf5680f15fdc8b50a", "size": 5780204}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "2.114.7", "versionCode": 820, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 37}, "signer": {"sha256": ["b57d7024a923b36a3538e19ed2199ec1e2003b73601e9b0fd7d2affaafa1717b"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.DETECT_SCREEN_CAPTURE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.gemwallet.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Depends on Gem Wallet API and assets services, public blockchain RPC and indexer services, price/name/security/NFT APIs, swap services including Jupiter, Thorchain and Maya, and fiat providers including MoonPay, Transak, Mercuryo, Banxa, Paybis and Flashnet."}}}}}, "com.github.andreyasadchy.xtra": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"6efda9fdc02db6f9f31c75593a1e39f6a3ce02b9c907e3f8e023076f0eca75bc": null, "7004f135bc6efbb469c90367ed6bf12de9ff6b6ec8e35dfbfc798bb94bf7f329": {"added": 1786749285772, "file": {"name": "/com.github.andreyasadchy.xtra_349.apk", "sha256": "7004f135bc6efbb469c90367ed6bf12de9ff6b6ec8e35dfbfc798bb94bf7f329", "size": 18700375, "ipfsCIDv1": "bafybeic6grtzli2icijxlpqqn5ig2lisk3gwkyoxxyokba4ujqq3cqbnt4"}, "src": {"name": "/com.github.andreyasadchy.xtra_349_src.tar.gz", "sha256": "41971e3a97a5f83b703ced78b204851287cafe30fdf5dd003cbc968efe7e2677", "size": 1896586}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.58.6", "versionCode": 349, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["609d52b38f3f8cf757c718d364b52e9459a7fbfc4db7bb0c0579d7146b42028d"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.github.andreyasadchy.xtra.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Uses TTV.lol API which is not libre. Twitch itself is not libre."}, "Tracking": {"en-US": "TTV.lol leaks your Twitch user ID and personal IP to their Russian proxy."}}}}}, "com.github.emavgl.piggybankpro": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"11e5f7c844dbf04307389a2434fd0f368cd65eb493a5599608bbfcceef2dfade": null, "00bb8fad0cb3331633c49c52f7da9ef8eb461f119b6b37191a53e927e58592c4": null, "6383a020b5842c6b8e466591a70826015a7f52e8c6379b3a4b455a2d2862658f": null, "4dd8186f42e34444acb3f8dbf22eb5805f2677ef0a53bf8ca1bd71429dc671d5": {"added": 1786866775484, "file": {"name": "/com.github.emavgl.piggybankpro_7135004.apk", "sha256": "4dd8186f42e34444acb3f8dbf22eb5805f2677ef0a53bf8ca1bd71429dc671d5", "size": 37065789, "ipfsCIDv1": "bafybeigqqg6k4qppti7czarxtufxoqmc36q3l56cc672ytgqmn2deywrw4"}, "src": {"name": "/com.github.emavgl.piggybankpro_7135004_src.tar.gz", "sha256": "626c310d372ab360500489857b0b58eb99a1365eb66cf8e8e57f92b67dabb166", "size": 515953503}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.9.0", "versionCode": 7135004, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["540cff2cb593f8fc729e444a050056da84ff36e50367eea7eedea060e44278c8"]}, "usesPermission": [{"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.github.emavgl.piggybankpro.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "1a5c9590bf80c2d1ea12c87edd20e3f472ebf02878872cf45677a85ef06c0e53": {"added": 1786866775484, "file": {"name": "/com.github.emavgl.piggybankpro_7135002.apk", "sha256": "1a5c9590bf80c2d1ea12c87edd20e3f472ebf02878872cf45677a85ef06c0e53", "size": 35529803, "ipfsCIDv1": "bafybeiarpttlntlcc3ezgbvutdhkcp4ierhvagt35iipfzlizgcro65v5e"}, "src": {"name": "/com.github.emavgl.piggybankpro_7135002_src.tar.gz", "sha256": "997170d92602fce963d90b5870d77bac5676275e162c50812f89ac485243f5db", "size": 515943415}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.9.0", "versionCode": 7135002, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["540cff2cb593f8fc729e444a050056da84ff36e50367eea7eedea060e44278c8"]}, "usesPermission": [{"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.github.emavgl.piggybankpro.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "b0343ab4e3d085f5ea7a4989518dbe1edfd6314b423f6969bda9a90d9f59318c": {"added": 1786866775484, "file": {"name": "/com.github.emavgl.piggybankpro_7135001.apk", "sha256": "b0343ab4e3d085f5ea7a4989518dbe1edfd6314b423f6969bda9a90d9f59318c", "size": 33768529, "ipfsCIDv1": "bafybeifdqxxwyxpc3qinlxgqhu46oebdb5i56owl5k7tigk2ej6ndfo3yi"}, "src": {"name": "/com.github.emavgl.piggybankpro_7135001_src.tar.gz", "sha256": "564fa43c086579e1e01be04f84c57e4e8b271fa8a9180d1abc0871d26ad206a8", "size": 515959262}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.9.0", "versionCode": 7135001, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["540cff2cb593f8fc729e444a050056da84ff36e50367eea7eedea060e44278c8"]}, "usesPermission": [{"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.github.emavgl.piggybankpro.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.github.heartratemonitor_compose": {"metadata": {"lastUpdated": 1786866775484, "screenshots": {"phone": {"en-US": [{"name": "/com.github.heartratemonitor_compose/en-US/phoneScreenshots/1.jpg", "sha256": "d547d636d14481ba9b21473b790e80222231c453c247d9dacbbaf83807d3d1b6", "size": 145769}, {"name": "/com.github.heartratemonitor_compose/en-US/phoneScreenshots/2.jpg", "sha256": "e2c5e4a8cf9900ecfc300395721ec8624f91bd9637c2cc480b58e21e2fa2eb80", "size": 176942}, {"name": "/com.github.heartratemonitor_compose/en-US/phoneScreenshots/3.jpg", "sha256": "cd5f300158b3059eff6af80cbe9afb03991d686013a432efdc9536ffad05c17c", "size": 176686}, {"name": "/com.github.heartratemonitor_compose/en-US/phoneScreenshots/4.jpg", "sha256": "1cc67e2c6fb93fb46a82acc90cca4345d045454822ca7c864deb3a682cf4b7f8", "size": 128567}], "zh-CN": [{"name": "/com.github.heartratemonitor_compose/zh-CN/phoneScreenshots/1.jpg", "sha256": "d547d636d14481ba9b21473b790e80222231c453c247d9dacbbaf83807d3d1b6", "size": 145769}, {"name": "/com.github.heartratemonitor_compose/zh-CN/phoneScreenshots/2.jpg", "sha256": "e2c5e4a8cf9900ecfc300395721ec8624f91bd9637c2cc480b58e21e2fa2eb80", "size": 176942}, {"name": "/com.github.heartratemonitor_compose/zh-CN/phoneScreenshots/3.jpg", "sha256": "cd5f300158b3059eff6af80cbe9afb03991d686013a432efdc9536ffad05c17c", "size": 176686}, {"name": "/com.github.heartratemonitor_compose/zh-CN/phoneScreenshots/4.jpg", "sha256": "1cc67e2c6fb93fb46a82acc90cca4345d045454822ca7c864deb3a682cf4b7f8", "size": 128567}]}}, "icon": {"en-US": {"name": "/icons/com.github.heartratemonitor_compose.42.png"}}}, "versions": {"3cc4ca47aa70e092e6c45e16c4baf08ce2664bfacb038f28a282429b54a6691d": null, "647bae9e54db978c77f07c360161869dbdd9bdd14db7cfbfb391fd804838b875": {"added": 1786866775484, "file": {"name": "/com.github.heartratemonitor_compose_42.apk", "sha256": "647bae9e54db978c77f07c360161869dbdd9bdd14db7cfbfb391fd804838b875", "size": 5567204, "ipfsCIDv1": "bafybeibcwtq3qljypkebgte5fsukazkgv7hf2xu6rdqcvmqpabw36iafje"}, "src": {"name": "/com.github.heartratemonitor_compose_42_src.tar.gz", "sha256": "5ce84d0a1ab3b0ab457cd643098c71e8e0f81176ff7e883a3624898447d33f2d", "size": 7131210}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "4.8", "versionCode": 42, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["a7518bd7a3ae60bb1cb8329160337f51f271eab3ab9409818a7a4bba074aa906"]}, "usesPermission": [{"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.github.heartratemonitor_compose.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- BLE optimization: use Kable's onServicesDiscovered callback to call requestMtu, negotiating a larger MTU (517) after connection — reduces heart rate data fragmentation and improves transfer reliability; automatically falls back to the default on negotiation failure without affecting the connection\n- BLE optimization: call Kable's AndroidPeripheral.requestConnectionPriority once connected to request high connection priority (minimum connection interval), lowering heart rate notification latency", "zh-CN": "- 蓝牙底层优化：基于 Kable 的 onServicesDiscovered 回调自动调用 requestMtu 协商更大 MTU（517），减少心率数据分包，提升传输可靠性；协商失败时自动回退默认值，不影响连接\n- 蓝牙底层优化：连接成功后调用 Kable 的 AndroidPeripheral.requestConnectionPriority 请求高优先级连接参数（最小连接间隔），降低心率通知延迟，数据更实时\n- 蓝牙底层优化：通过 Kable Peripheral 构建器的 phy 配置优先使用 LE 2M PHY（蓝牙 5.0+，2 倍物理层速率），设备不支持时系统自动回退 LE 1M，无副作用\n- 蓝牙底层优化：通过 Kable Peripheral 构建器的 disconnectTimeout 配置将断开等待时限从 5 秒放宽至 10 秒，确保断开时清理流程（会话落盘等）完整执行\n- 新增「开启搜索过滤」开关（功能设置 → 连接与后台）：开启后使用 Kable Scanner 的 Filter.Service 原生过滤，仅扫描广播心率服务 0x180D 的设备，由系统"}}}}, "com.github.premnirmal.tickerwidget": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"092264f28eb5eb2861668f52e04e5d66e7dd51c3f55ba73efe61b009f6e9eacf": null, "b5a834d8492ee8376e3436e333ecbd7b1e55a6a2315edac83be10c5665200da5": {"added": 1786749285772, "file": {"name": "/com.github.premnirmal.tickerwidget_400100003.apk", "sha256": "b5a834d8492ee8376e3436e333ecbd7b1e55a6a2315edac83be10c5665200da5", "size": 14100998, "ipfsCIDv1": "bafybeiahemopkndmndoud4a4lx63patw2drlb32gehj4qdyojfbwqbkm74"}, "src": {"name": "/com.github.premnirmal.tickerwidget_400100003_src.tar.gz", "sha256": "a82365f08f4dc9eb14567f12ad6c85c5a27bd5a580a9ba3bd9fdc36992fbac7b", "size": 2747560}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.1.003", "versionCode": 400100003, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["9b16210a0ff90657ee25f6956bc352bb288e0be39d255de576dbee7539ee5045"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.github.premnirmal.tickerwidget.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {}}}}}, "com.goldmaster.im2sms": {"metadata": {"added": 1786749285772, "categories": ["Phone & SMS"], "issueTracker": "https://gitlab.com/Goldmaster/im2sms/issues", "lastUpdated": 1786749285772, "license": "GPL-3.0-or-later", "sourceCode": "https://gitlab.com/Goldmaster/im2sms", "webSite": "https://goldmaster.site", "featureGraphic": {"featureGraphic": {"name": "/com.goldmaster.im2sms/featureGraphic/featureGraphic_NZJ3Zt47K8_4dpnQly3yh1ZZUHvhujItI_zVtnCpRDk=.png", "sha256": "35927766de3b2bcff87699d0972df2875659507be1ba322d23fcd5b670a94439", "size": 41016}}, "screenshots": {"phone": {"en-US": [{"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/1.png", "sha256": "a36ccbbc79a58beab70ef65323556cb333ec8ff88c32589bfc83d2c720287fd5", "size": 860218}, {"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/2.png", "sha256": "4dea6a89362548c38f4a20d59f1bae77b10a49644c66ebb7c8e47ef083526e30", "size": 654978}, {"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/3.png", "sha256": "08227714e9ea73cb7cec50538bc4ff5ddef20758e0570f1d5f65998c1c95eaf3", "size": 516271}, {"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/4.png", "sha256": "1f23b96029bd55f2cea4fa105ccfa7d7ad68077258654af19ea31b27d067b863", "size": 735625}, {"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/5.png", "sha256": "4c8e20de5f6bf2364c9d1cd9aabe06982c89e549aaeb287c3666a751489c62f3", "size": 684074}, {"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/6.png", "sha256": "8dcf1fc0a9755527ec3fd4ea296e8a0a9a650de395e4758ffd8945d5a74b631b", "size": 620149}, {"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/7.png", "sha256": "43bf043c5c67157cadf28c0ba5dac7e1e4081e183240230e6db46d57e8033428", "size": 964413}, {"name": "/com.goldmaster.im2sms/en-US/phoneScreenshots/8.png", "sha256": "accc2e1e0b6104fb1e10bb657771f06bb9e60e777c44e4cf5301b4cfd5ff577e", "size": 501909}]}}, "authorName": "Goldmaster", "name": {"en-US": "IM2SMS"}, "summary": {"en-US": "A simple app to import IM chat histories into Android’s SMS storage."}, "description": {"en-US": "<p>A simple app to import IM chat histories into Android’s SMS storage.</p>\n\n<b>Features</b>\n<p><b>Easy Import:</b><br/>Import chats directly from an IM app's share menu or by browsing the phone's storage for exported chat files.</p>\n<p><b>Chat Preview:</b><br/>Preview individual chats before importing into SMS.</p>\n<p><b>Material You:</b><br/>The app's theme and icon automatically adapts to the phone's wallpaper and system colours.</p>\n<p><b>Dark Mode:</b><br/>Automatically switches between light and dark themes based on the phone's settings.</p>\n\n<b>Supported Apps</b>\n<p><b>Currently Supported:</b><br/>\n<b>WhatsApp:</b> Use the 'Export chat' option within WhatsApp and share the exported file with IM2SMS. Or browse previously exported chats and view both individual and group chats.</p>\n\n<p><b>Planned Support:</b><br/>\n<b>Facebook Messenger:</b> Support for importing from a Facebook data takeout is planned.<br/>\n<b>Telegram:</b> Future support is planned.<br/>\n<b>Signal:</b> Future support is planned via backup files or secure backups.</p>\n\n<b>FAQ</b>\n<p><b>Will an iOS version be available?</b><br/>No. Due to technical limitations, iOS does not allow third-party apps to write to the SMS database.</p>\n<p><b>Why export to SMS?</b><br/>SMS is a universal, device-native format. By converting chat histories to SMS, you get a durable, open-standard backup that isn't locked into a single proprietary app.</p>\n<p><b>Why the name?</b><br/>The name stands for Instant Messenger to SMS. It reflects the app’s broad support for multiple IM platforms beyond just WhatsApp.</p>\n<p><b>Can group chats be imported?</b><br/>There is basic support for importing group chats, however, there are significant limitations due to how Android and apps like Google Messages handle the legacy SMS/MMS storage. At present, there is no way for third-party apps to programmatically set a group chat name in the system's SMS database that Google Messages will recognise, so the chat name will typically appear as a list of participant numbers. Additionally, a \"Mass Text\" warning may show if Google Messages cannot verify that all participants are using modern RCS (Rich Communication Services). To fully continue a group chat as a single thread, all members must be using RCS. Once everyone is on RCS, the group chat should automatically \"upgrade\" and function as a normal group thread.</p>\n<p><b>Can I use IM2SMS to back up my existing SMS messages?</b><br/>No. The core purpose of IM2SMS is to import Instant Messenger chat histories <b>into</b> the phone's SMS storage. Creating backups of existing SMS messages is already well-supported by other dedicated apps.</p>\n<p><b>Why does the app have to be set as the default SMS app?</b><br/>Android only allows the current default SMS app to write to the system's message database. To import chats, IM2SMS must <b>temporarily</b> become the default app. After the import process completes, opening the preferred messaging app provides a prompt to restore it as the default.</p>\n\n<b>Contributing</b>\n<p>If you find this app useful, please consider donating via <a href=\"https://paypal.com/paypalme/goldmastercorp\">PayPal</a> or <a href=\"https://patreon.com/goldmaster\">Patreon</a>. If donation is not possible, please visit our source code repository to learn how to contribute through code and testing.</p>\n\n<b>Licence</b>\n<p>This app is released under GPL Licence.</p>"}, "donate": ["https://paypal.com/paypalme/goldmastercorp"], "icon": {"en-US": {"name": "/com.goldmaster.im2sms/en-US/icon_EnrMQscbArcaNPln8p0wMcf9Z0v_RIq6oNMjWxcTRek=.png", "sha256": "127acc42c71b02b71a34f967f29d3031c7fd674bff448abaa0d3235b171345e9", "size": 11677}}, "preferredSigner": "3b2d8c6143585f2831343c204ceb4efd00188ba80f7b8750263631678886174c"}, "versions": {"aac765da9f368a528446acf018048b2c8506b5ee2edc10f3cf6f98f3139b8a46": {"added": 1786749285772, "file": {"name": "/com.goldmaster.im2sms_7.apk", "sha256": "aac765da9f368a528446acf018048b2c8506b5ee2edc10f3cf6f98f3139b8a46", "size": 16726532, "ipfsCIDv1": "bafybeiczplwxemg7ujhboxjh5r3cco5jm4awlmg4mmopw6r2oyd3ch4a64"}, "src": {"name": "/com.goldmaster.im2sms_7_src.tar.gz", "sha256": "659130afc46d9811b9be043477e6be2799d14e23724a929ac65bdc0182a8806f", "size": 7579075}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.6", "versionCode": 7, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3b2d8c6143585f2831343c204ceb4efd00188ba80f7b8750263631678886174c"]}, "usesPermission": [{"name": "android.permission.READ_SMS"}, {"name": "android.permission.WRITE_SMS"}, {"name": "android.permission.SEND_SMS"}, {"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.RECEIVE_MMS"}, {"name": "android.permission.RECEIVE_WAP_PUSH"}, {"name": "android.permission.READ_CELL_BROADCASTS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "com.goldmaster.im2sms.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeDep": {"en-US": "Optional to have WhatsApp to be installed on the device."}}, "whatsNew": {"en-US": "Fixed a minor issue where if the app was left as the default SMS app, there was no prompt to set the current SMS app back to default."}}}}, "com.google.android.stardroid": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"2f96e3803967fcea44ec895ab817e579665d079ee143b0fde85c2dfb0f8ea17e": null, "6ef676cc3765bfcf5b6a23777246d25d4da0bb1f36df1e459d0ccdbafb0b07ae": {"added": 1786866775484, "file": {"name": "/com.google.android.stardroid_1708.apk", "sha256": "6ef676cc3765bfcf5b6a23777246d25d4da0bb1f36df1e459d0ccdbafb0b07ae", "size": 19706550, "ipfsCIDv1": "bafybeidjckqwvu3f4hzbcjfz6xri6jfrzkp33tzpgdajqyyl5jdqzl5v4m"}, "src": {"name": "/com.google.android.stardroid_1708_src.tar.gz", "sha256": "6076cb0444024295f4c2b205afffbd19a66209cf514b8d9de1ea6d41f73a36c1", "size": 296354411}, "manifest": {"versionName": "1.18.1:Eclipse", "versionCode": 1708, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["066b05d01ea5b4998074ceab1ccca5bf42711995edc6aedbfa311e5620f1e442"]}, "usesPermission": [{"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.google.android.stardroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"af": "<b><font color=\"#F67E81\">Meer akkurate son- en maan-algoritme</font></b>\nOns het 'n meer moderne algoritme vir Son/Maan-posisie geïnstalleer om verduisteringstye selfs akkurater te maak.\n", "am": "<b><font color=\"#F67E81\">ይበልጥ ትክክለኛ የፀሐይና የጨረቃ ስልተ-ቀመር</font></b>\nየፀሐይ/ጨረቃን አቀማመጥ ይበልጥ ትክክለኛ ለማድረግ እና የግርዶሽ ጊዜዎችን ይበልጥ ለማስተካከል ዘመናዊ ስልተ-ቀመር ተጭኗል።\n", "ar": "<b><font color=\"#F67E81\">خوارزمية أكثر دقة للشمس والقمر</font></b>\nتم تثبيت خوارزمية أحدث لموقع الشمس/القمر لجعل توقيتات الكسوف أكثر دقة.\n", "az-AZ": "<b><font color=\"#F67E81\">Daha dəqiq Günəş və Ay alqoritmi</font></b>\nTutulma vaxtlarını daha da dəqiq etmək üçün Günəş/Ay mövqeyi üçün daha müasir bir alqoritm quraşdırıldı.\n", "be": "<b><font color=\"#F67E81\">সূর্য ও চাঁদের জন্য আরও নির্ভুল অ্যালগরিদম</font></b>\nসূর্য ও চাঁদের অবস্থানের জন্য একটি আধুনিক অ্যালগরিদম ইনস্টল করা হয়েছে যাতে গ্রহণগুলির সময় আরও নির্ভুল হয়।\n", "bg": "<b><font color=\"#F67E81\">По-точен алгоритъм за Слънцето и Луната</font></b>\nИнсталиран е по-модерен алгоритъм за позицията на Слънцето/Луната, за да направи времената на затъмненията още по-точни.\n", "bn-BD": "<b><font color=\"#F67E81\">আরও নির্ভুল সূর্য ও চাঁদের অ্যালগরিদম</font></b>\nসূর্য ও চাঁদের অবস্থানের জন্য আরও আধুনিক অ্যালগরিদম ইনস্টল করা হয়েছে, যাতে গ্রহণ সময় আরও নির্ভুল হয়।\n", "ca": "<b><font color=\"#F67E81\">Algorisme del Sol i la Lluna més precís</font></b>\nS'ha instal·lat un algorisme més modern per a la posició del Sol/Lluna per fer que els moments dels eclipsis siguin encara més precisos.\n", "cs-CZ": "<b><font color=\"#F67E81\">Přesnější algoritmus pro Slunce a Měsíc</font></b>\nNainstalovali jsme modernější algoritmus pro polohu Slunce a Měsíce, aby bylo načasování zatmění ještě přesnější.\n", "da-DK": "<b><font color=\"#F67E81\">Mere præcis sol- og månealgoritme</font></b>\nImplementeret en mere moderne algoritme for Solens/Månens position for at gøre formørkelsestidspunkter endnu mere præcise.\n", "de-DE": "<b><font color=\"#F67E81\">Präziserer Sonnen- und Mondalgorithmus</font></b>\nEinen moderneren Algorithmus für die Sonnen-/Mondposition installiert, um Finsterniszeiten noch genauer zu machen.\n", "el-GR": "<b><font color=\"#F67E81\">Πιο ακριβής αλγόριθμος Ήλιου και Σελήνης</font></b>\nΕγκαταστάθηκε ένας πιο σύγχρονος αλγόριθμος για τη θέση του Ήλιου/Σελήνης, ώστε οι χρόνοι των εκλείψεων να είναι ακόμα πιο ακριβείς.\n", "en-AU": "<b><font color=\"#F67E81\">More accurate Sun and Moon algorithm</font></b>\nInstalled a more modern algorithm for Sun/Moon position to make eclipse timings even more accurate.\n", "en-CA": "<b><font color=\"#F67E81\">More accurate sun and moon algorithm</font></b>\nInstalled a more modern algorithm for Sun/Moon position to make eclipse timings even more accurate.\n", "en-GB": "<b><font color=\"#F67E81\">More accurate Sun and Moon algorithm</font></b>\nInstalled a more modern algorithm for Sun/Moon position to make eclipse timings even more accurate.\n", "en-IN": "<b><font color=\"#F67E81\">More accurate sun and moon algorithm</font></b>\nInstalled a more modern algorithm for Sun/Moon position to make eclipse timings even more accurate.\n", "en-SG": "<b><font color=\"#F67E81\">More accurate sun and moon algorithm</font></b>\nInstalled a more modern algorithm for Sun/Moon position to make eclipse timings even more accurate.\n", "en-US": "<b><font color=\"#F67E81\">More accurate sun and moon algorithm</font></b>\nInstalled a more modern algorithm for Sun/Moon position to make eclipse timings even more accurate.\n", "en-ZA": "<b><font color=\"#F67E81\">More accurate sun and moon algorithm</font></b>\nInstalled a more modern algorithm for Sun/Moon position to make eclipse timings even more accurate.\n", "es-419": "<b><font color=\"#F67E81\">Algoritmo más preciso para el Sol y la Luna</font></b>\nSe ha implementado un algoritmo más moderno para la posición del Sol y la Luna para que los cálculos de los eclipses sean aún más precisos.\n", "es-ES": "<b><font color=\"#F67E81\">Algoritmo más preciso para el sol y la luna</font></b>\nSe ha implementado un algoritmo más moderno para la posición del Sol y la Luna para que los cálculos de los eclipses sean aún más precisos.\n", "et": "<b><font color=\"#F67E81\">Täpsem päikese ja kuu algoritm</font></b>\nPaigaldati moodsam algoritm Päikese/Kuu asukoha määramiseks, et muuta varjutuste ajastused veelgi täpsemaks.\n", "eu-ES": "<b><font color=\"#F67E81\">Eguzki eta Ilargiaren algoritmo zehatzagoa</font></b>\nEguzki/Ilargiaren posizioa kalkulatzeko algoritmo modernoago bat instalatu da, eklipse-denborak are zehatzagoak izan daitezen.\n", "fa": "<b><font color=\"#F67E81\">الگوریتم دقیق‌تر خورشید و ماه</font></b>\nیک الگوریتم مدرن‌تر برای موقعیت خورشید/ماه نصب شد تا زمان‌بندی گرفت‌ها را حتی دقیق‌تر کند.\n", "fa-AE": "<b><font color=\"#F67E81\">الگوریتم دقیق‌تر خورشید و ماه</font></b>\nیک الگوریتم مدرن‌تر برای موقعیت خورشید/ماه نصب شد تا زمان‌بندی کسوف و خسوف حتی دقیق‌تر شود.\n", "fa-AF": "<b><font color=\"#F67E81\">الگوریتم دقیق‌تر خورشید و ماه</font></b>یک الگوریتم مدرن‌تر برای موقعیت خورشید/ماه نصب شد تا زمان‌بندی گرفتگی‌ها حتی دقیق‌تر شود.\n", "fa-IR": "<b><font color=\"#F67E81\">الگوریتم دقیق‌تر خورشید و ماه</font></b>یک الگوریتم مدرن‌تر برای محاسبه موقعیت خورشید و ماه نصب شد تا زمان‌بندی گرفتگی‌ها را حتی دقیق‌تر کند.\n", "fi-FI": "<b><font color=\"#F67E81\">Tarkempi Auringon ja Kuun algoritmi</font></b>Asennettu nykyaikaisempi algoritmi Auringon ja Kuun sijainnin laskemiseen, jotta pimennysten ajoitukset olisivat entistä tarkempia.\n", "fil": "<b><font color=\"#F67E81\">Mas tumpak na algorithm para sa araw at buwan</font></b>\nNag-install ng mas modernong algorithm para sa posisyon ng Araw/Buwan upang mas maging tumpak ang mga oras ng eklipse.\n", "fr-CA": "<b><font color=\"#F67E81\">Algorithme plus précis pour le Soleil et la Lune</font></b>\nNous avons installé un algorithme plus moderne pour la position du Soleil et de la Lune afin de rendre les prévisions d'éclipses encore plus précises.\n", "fr-FR": "<b><font color=\"#F67E81\">Algorithme plus précis pour le Soleil et la Lune</font></b>\nImplémentation d'un algorithme plus moderne pour la position du Soleil et de la Lune afin de rendre les prévisions d'éclipses encore plus précises.\n", "gl-ES": "<b><font color=\"#F67E81\">Algoritmo máis preciso para o sol e a lúa</font></b>\nInstalouse un algoritmo máis moderno para a posición do Sol/Lúa para facer que os tempos dos eclipses sexan aínda máis precisos.\n", "gu": "<b><font color=\"#F67E81\">વધુ સચોટ સૂર્ય અને ચંદ્ર અલ્ગોરિધમ</font></b>\nસૂર્ય અને ચંદ્રની સ્થિતિ માટે વધુ આધુનિક અલ્ગોરિધમ ઇન્સ્ટોલ કર્યું છે, જેથી ગ્રહણનો સમય વધુ સચોટ બની શકે.\n", "hi-IN": "<b><font color=\"#F67E81\">अधिक सटीक सूर्य और चन्द्रमा एल्गोरिथम</font></b>\nसूर्य/चन्द्रमा की स्थिति के लिए एक अधिक आधुनिक एल्गोरिथम स्थापित किया गया है ताकि ग्रहण के समय की गणना और भी सटीक हो सके।\n", "hr": "<b><font color=\"#F67E81\">Precizniji algoritam za Sunce i Mjesec</font></b>\nImplementiran je moderniji algoritam za položaj Sunca/Mjeseca kako bi se vrijeme pomrčina učinilo još preciznijim.\n", "hu-HU": "<b><font color=\"#F67E81\">Pontosabb Nap- és Hold-algoritmus</font></b>\nEgy modernebb algoritmust telepítettünk a Nap és Hold pozíciójához, hogy a fogyatkozások időzítése még pontosabb legyen.\n", "hy-AM": "<b><font color=\"#F67E81\">Ավելի ճշգրիտ Արևի և Լուսնի ալգորիթմ</font></b>\nՏեղադրվել է Արևի/Լուսնի դիրքի ավելի ժամանակակից ալգորիթմ՝ խավարումների ժամանակները էլ ավելի ճշգրիտ դարձնելու համար։\n", "id": "<b><font color=\"#F67E81\">Algoritma matahari dan bulan yang lebih akurat</font></b>\nMenginstal algoritma yang lebih modern untuk posisi Matahari/Bulan untuk membuat waktu gerhana menjadi lebih akurat.\n", "is-IS": "<b><font color=\"#F67E81\">Nákvæmari reiknirit fyrir sól og tungl</font></b>\nSettum inn nútímalegra reiknirit fyrir stöðu sólar/tungls til að gera tímasetningar myrkva enn nákvæmari.\n", "it-IT": "<b><font color=\"#F67E81\">Algoritmo più preciso per Sole e Luna</font></b>\nInstallato un algoritmo più moderno per la posizione di Sole/Luna per rendere le tempistiche delle eclissi ancora più precise.\n", "iw-IL": "<b><font color=\"#F67E81\">אלגוריתם מדויק יותר לשמש ולירח</font></b>\nהותקן אלגוריתם מודרני יותר למיקום השמש/הירח כדי להפוך את זמני הליקויים למדויקים עוד יותר.\n", "ja-JP": "<b><font color=\"#F67E81\">日食をプレビュー</font></b>\n現在地から太陽がどれくらい覆われるかを確認できます。2026年8月12日の日食も含まれます。月が現在地を考慮するようになり、新しい「実物大サイズ」設定では太陽と月が縮尺通りに描画されます。\n", "ka-GE": "<b><font color=\"#F67E81\">უფრო ზუსტი მზისა და მთვარის ალგორითმი</font></b>\nდაინსტალირებულია მზისა და მთვარის პოზიციის უფრო თანამედროვე ალგორითმი, რათა დაბნელების დრო კიდევ უფრო ზუსტი იყოს.\n", "kk": "<b><font color=\"#F67E81\">Күн мен Айдың дәлірек алгоритмі</font></b>\nКүн мен Айдың орналасуына арналған заманауи алгоритм орнатылды, бұл тұтылу уақытын одан да дәлірек етеді.\n", "km-KH": "<b><font color=\"#F67E81\">អាល់ហ្គោរីទឹមព្រះអាទិត្យ និង ព្រះច័ន្ទ កាន់តែត្រឹមត្រូវ</font></b>\nបានប្រើប្រាស់អាល់ហ្គោរីទឹមទំនើបជាងមុន សម្រាប់កំណត់ទីតាំងព្រះអាទិត្យ និង ព្រះច័ន្ទ ដើម្បីធ្វើឱ្យពេលវេលានៃសូរ្យគ្រាស/ចន្ទគ្រាស កាន់តែត្រឹមត្រូវ។\n", "kn-IN": "<b><font color=\"#F67E81\">ಹೆಚ್ಚು ನಿಖರವಾದ ಸೂರ್ಯ ಮತ್ತು ಚಂದ್ರನ ಅಲ್ಗಾರಿದಮ್</font></b>\nಸೂರ್ಯ/ಚಂದ್ರನ ಸ್ಥಾನಕ್ಕಾಗಿ ಹೆಚ್ಚು ಆಧುನಿಕ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಇದರಿಂದ ಗ್ರಹಣದ ಸಮಯಗಳು ಇನ್ನಷ್ಟು ನಿಖರವಾಗಿರುತ್ತವೆ.\n", "ko-KR": "<b><font color=\"#F67E81\">더욱 정확해진 태양 및 달 알고리즘</font></b>\n태양/달 위치 계산을 위한 최신 알고리즘을 적용하여 일식/월식 시각을 더욱 정확하게 만들었습니다.\n", "ky-KG": "<b><font color=\"#F67E81\">Күн менен Айдын тагыраак алгоритми</font></b>\nКүн менен Айдын абалын аныктоо үчүн заманбап алгоритм орнотулду, бул тутулуу убактысын ого бетер так кылат.\n", "lo-LA": "<b><font color=\"#F67E81\">ລະບົບຄຳນວນຕາເວັນ ແລະ ດວງຈັນ ທີ່ຖືກຕ້ອງກວ່າເກົ່າ</font></b>\nໄດ້ຕິດຕັ້ງລະບົບຄຳນວນທີ່ທັນສະໄໝກວ່າເກົ່າສຳລັບຕຳແໜ່ງຂອງຕາເວັນ/ດວງຈັນ ເພື່ອເຮັດໃຫ້ເວລາຄາດຄະເນຖືກຕ້ອງຫຼາຍຂຶ້ນອີກ.\n", "lt": "<b><font color=\"#F67E81\">Tiksliau veikiantis Saulės ir Mėnulio algoritmas</font></b>\nĮdiegtas šiuolaikiškesnis Saulės ir Mėnulio padėties algoritmas, kad užtemimų laikas būtų dar tikslesnis.\n", "lv": "<b><font color=\"#F67E81\">Precīzāks Saules un Mēness algoritms</font></b>\nIeviests modernāks algoritms Saules/Mēness pozīcijas noteikšanai, lai padarītu aptumsumu laikus vēl precīzākus.\n", "mk-MK": "<b><font color=\"#F67E81\">Попрецизен алгоритам за Сонцето и Месечината</font></b>\nИнсталиран е помодерен алгоритам за позицијата на Сонцето/Месечината за да се направат времињата на затемнување уште попрецизни.\n", "ml-IN": "<b><font color=\"#F67E81\">കൂടുതൽ കൃത്യമായ സൂര്യ-ചന്ദ്ര അൽഗോരിതം</font></b>\nസൂര്യന്റെയും ചന്ദ്രന്റെയും സ്ഥാനം നിർണ്ണയിക്കാൻ കൂടുതൽ ആധുനികമായ ഒരു അൽഗോരിതം ഇൻസ്റ്റാൾ ചെയ്തു, ഇത് ഗ്രഹണ സമയങ്ങൾ കൂടുതൽ കൃത്യമാക്കാൻ സഹായിക്കും.\n", "mn-MN": "<b><font color=\"#F67E81\">Нар, сарны илүү нарийвчлалтай алгоритм</font></b>\nНар, сарны байрлалыг тодорхойлох илүү орчин үеийн алгоритмыг суулгаснаар хиртэлтийн хугацааг бүр ч нарийвчлалтай болгосон.\n", "mr-IN": "<b><font color=\"#F67E81\">अधिक अचूक सूर्य-चंद्र अल्गोरिदम</font></b>\nसूर्य आणि चंद्राच्या स्थितीसाठी अधिक आधुनिक अल्गोरिदम स्थापित केला आहे, ज्यामुळे ग्रहणांच्या वेळा आणखी अचूक होतील.\n", "ms": "<b><font color=\"#F67E81\">Algoritma matahari dan bulan yang lebih tepat</font></b>Menggunakan algoritma yang lebih moden untuk kedudukan Matahari/Bulan bagi menjadikan masa gerhana lebih tepat lagi.\n", "ms-MY": "<b><font color=\"#F67E81\">Algoritma matahari dan bulan yang lebih tepat</font></b>\nMemasang algoritma yang lebih moden untuk kedudukan Matahari/Bulan bagi menjadikan masa gerhana lebih tepat lagi.\n", "my-MM": "<b><font color=\"#F67E81\">ပိုမိုတိကျသော နေနှင့်လ အယ်လ်ဂိုရစ်သမ်</font></b>\nနေနှင့်လတို့၏ တည်နေရာအတွက် ပိုမိုခေတ်မီသော အယ်လ်ဂိုရစ်သမ်ကို ထည့်သွင်းထားပြီး ဂြိုဟ်ကြတ်ခြင်း/လကြတ်ခြင်း အချိန်များကို ပိုမိုတိကျစေပါသည်။\n", "nb-NO": "<b><font color=\"#F67E81\">Mer nøyaktig sol- og månealgoritme</font></b>\nImplementert en mer moderne algoritme for sol- og måneposisjon for å gjøre formørkelsestidspunkter enda mer nøyaktige.\n", "ne-NP": "<b><font color=\"#F67E81\">अझ सटीक सूर्य र चन्द्रमा एल्गोरिदम</font></b>\nग्रहणको समयलाई अझ सटीक बनाउन सूर्य/चन्द्रमाको स्थितिको लागि अझ आधुनिक एल्गोरिदम स्थापना गरियो।\n", "nl-NL": "<b><font color=\"#F67E81\">Nauwkeuriger algoritme voor zon en maan</font></b>\nEen moderner algoritme geïmplementeerd voor de positie van de zon en maan om de tijden van zons- en maansverduisteringen nog nauwkeuriger te maken.\n", "pa": "<b><font color=\"#F67E81\">ਵਧੇਰੇ ਸਹੀ ਸੂਰਜ ਅਤੇ ਚੰਦਰਮਾ ਐਲਗੋਰਿਦਮ</font></b>\nਗ੍ਰਹਿਣ ਦੇ ਸਮੇਂ ਨੂੰ ਹੋਰ ਵੀ ਸਹੀ ਬਣਾਉਣ ਲਈ ਸੂਰਜ/ਚੰਦਰਮਾ ਦੀ ਸਥਿਤੀ ਲਈ ਇੱਕ ਵਧੇਰੇ ਆਧੁਨਿਕ ਐਲਗੋਰਿਦਮ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ।\n", "pl-PL": "<b><font color=\"#F67E81\">Bardziej precyzyjny algorytm Słońca i Księżyca</font></b>Wprowadzono bardziej nowoczesny algorytm do obliczania pozycji Słońca i Księżyca, aby czasy zaćmień były jeszcze dokładniejsze.\n", "pt-BR": "<b><font color=\"#F67E81\">Algoritmo mais preciso para o Sol e a Lua</font></b>\nImplementado um algoritmo mais moderno para a posição do Sol/Lua para tornar os horários dos eclipses ainda mais precisos.\n", "pt-PT": "<b><font color=\"#F67E81\">Algoritmo mais preciso para o Sol e a Lua</font></b>\nFoi instalado um algoritmo mais moderno para a posição do Sol/Lua, tornando os momentos dos eclipses ainda mais precisos.\n", "rm": "<b><font color=\"#F67E81\">Algoritm pli precis per sulegl e glina</font></b>\nInstallà in algoritm pli modern per la posiziun dal sulegl/da la glina per render ils temps d'eclipsa anc pli precis.\n", "ro": "<b><font color=\"#F67E81\">Algoritm mai precis pentru Soare și Lună</font></b>\nAm implementat un algoritm mai modern pentru poziția Soarelui/Lunii pentru a face calculele eclipselor și mai precise.\n", "ru-RU": "<b><font color=\"#F67E81\">Более точный алгоритм Солнца и Луны</font></b>\nВнедрен более современный алгоритм для определения положения Солнца и Луны, чтобы сделать расчеты затмений еще более точными.\n", "si-LK": "<b><font color=\"#F67E81\">වඩාත් නිවැරදි සූර්යයා සහ චන්ද්‍රයා ඇල්ගොරිතමය</font></b>\nග්‍රහණ වේලාවන් වඩාත් නිවැරදි කිරීම සඳහා සූර්යයාගේ සහ චන්ද්‍රයාගේ පිහිටීම සඳහා වඩාත් නවීන ඇල්ගොරිතමයක් ස්ථාපනය කරන ලදී.\n", "sk": "<b><font color=\"#F67E81\">Presnejší algoritmus pre Slnko a Mesiac</font></b>Nainštalovali sme modernejší algoritmus pre polohu Slnka/Mesiaca, aby boli časy zatmení ešte presnejšie.\n", "sl": "<b><font color=\"#F67E81\">Natančnejši algoritem za Sonce in Luno</font></b>\nNamestili smo sodobnejši algoritem za položaj Sonca/Lune, da so časi mrkov še natančnejši.\n", "sq": "<b><font color=\"#F67E81\">Algoritëm më i saktë i diellit dhe hënës</font></b>\nInstaluam një algoritëm më modern për pozicionin e Diellit/Hënës për t'i bërë kohët e eklipseve edhe më të sakta.\n", "sr": "<b><font color=\"#F67E81\">Precizniji algoritam za Sunce i Mesec</font></b>\nInstaliran je moderniji algoritam za položaj Sunca/Meseca kako bi se vreme pomračenja učinilo još preciznijim.\n", "sv-SE": "<b><font color=\"#F67E81\">Mer exakt algoritm för sol och måne</font></b>\nInstallerat en modernare algoritm för solens/månens position för att göra förmörkelsestiderna ännu mer exakta.\n", "sw": "<b><font color=\"#F67E81\">Algoriti sahihi zaidi ya jua na mwezi</font></b> Tumeweka algoriti ya kisasa zaidi kwa nafasi ya Jua/Mwezi ili kufanya muda wa kupatwa kwa jua/mwezi kuwa sahihi zaidi.\n", "ta-IN": "<b><font color=\"#F67E81\">மிகவும் துல்லியமான சூரியன் மற்றும் சந்திரன் அல்காரிதம்</font></b>சூரியன் மற்றும் சந்திரன் நிலைகளுக்கான மிகவும் நவீன அல்காரிதத்தை நிறுவியுள்ளோம், இது கிரகண நேரங்களை இன்னும் துல்லியமாக்க உதவும்.\n", "te-IN": "<b><font color=\"#F67E81\">మరింత ఖచ్చితమైన సూర్య చంద్రుల అల్గారిథమ్</font></b>\nగ్రహణ సమయాలను మరింత ఖచ్చితంగా చేయడానికి, సూర్య చంద్రుల స్థానాన్ని లెక్కించడానికి మరింత ఆధునికమైన అల్గారిథమ్‌ను అమలు చేశాము.\n", "th": "<b><font color=\"#F67E81\">อัลกอริทึมคำนวณตำแหน่งดวงอาทิตย์และดวงจันทร์ที่แม่นยำยิ่งขึ้น</font></b>\nได้ติดตั้งอัลกอริทึมที่ทันสมัยยิ่งขึ้นสำหรับการคำนวณตำแหน่งดวงอาทิตย์/ดวงจันทร์ เพื่อให้เวลาเกิดคราสแม่นยำยิ่งขึ้น\n", "tr-TR": "<b><font color=\"#F67E81\">Daha doğru güneş ve ay algoritması</font></b>\nGüneş/Ay konumu için daha modern bir algoritma yüklendi, böylece tutulma zamanlamaları daha da doğru hale geldi.\n", "uk": "<b><font color=\"#F67E81\">Точніший алгоритм для Сонця та Місяця</font></b>\nВстановлено більш сучасний алгоритм для визначення положення Сонця та Місяця, щоб зробити розрахунок часу затемнень ще точнішим.\n", "ur": "<b><font color=\"#F67E81\">سورج اور چاند کا زیادہ درست الگورتھم</font></b>\nسورج/چاند کی پوزیشن کے لیے ایک زیادہ جدید الگورتھم انسٹال کیا گیا ہے تاکہ گرہن کے اوقات کو مزید درست بنایا جا سکے۔\n", "vi": "<b><font color=\"#F67E81\">Thuật toán Mặt Trời và Mặt Trăng chính xác hơn</font></b>\nĐã cài đặt một thuật toán hiện đại hơn cho vị trí Mặt Trời/Mặt Trăng để làm cho thời gian nhật thực/nguyệt thực chính xác hơn nữa.\n", "zh-CN": "<b><font color=\"#F67E81\">更精确的日月算法</font></b>\n采用了更现代的日月位置算法，使日食/月食时间计算更加精确。\n", "zh-HK": "<b><font color=\"#F67E81\">更精確的太陽和月亮演算法</font></b>安裝了更現代的太陽/月亮位置演算法，使日食和月食時間更加精確。\n", "zh-TW": "<b><font color=\"#F67E81\">更精確的日月演算法</font></b>\n採用了更現代的日月位置計算演算法，使日月食時間的預測更加準確。\n", "zu": "<b><font color=\"#F67E81\">I-algorithm enembile kakhulu yelanga nenyanga</font></b>\nKufakwe i-algorithm yesimanje kakhulu yesikhundla seLanga/Inyanga ukwenza izikhathi zokufiphala zibe nenembile kakhulu.\n"}}, "9dc63a85103f2f8be0d51b307f477f50d3c0d80e1782b9ec890bf55ad39bd273": {"whatsNew": null}}}, "com.health.openscale.sync": {"metadata": {"lastUpdated": 1786749285772, "description": {"en-US": "Synchronize your openScale measurements with external services\n\nopenScale sync is a companion app: it requires the separate openScale app (a bluetooth body-composition scale app) to be installed. It stores no measurements of its own. It reads them from openScale and forwards them to the services you enable, and it can bring measurements the other way as well, back into openScale.\n\nFeatures:\n* Seamless External Service Integration: Effortlessly synchronize data with Health Connect, Wger, Endurain, InfluxDB, generic Webhooks and MQTT (versions 3.1 and 5.0, including Home Assistant discovery).\n* Real-time Synchronization: Automatically synchronize data upon insertion, editing, deletion, or clearing of measurements within openScale.\n* Two-way Synchronization: Measurements that other apps wrote to Health Connect, Wger or MQTT can be imported back into openScale, filling the gaps your scale did not record. Each service has its own direction setting: export only, import only, or both.\n* Optional Background Synchronization: Let the app reconcile everything every few hours, as a safety net for when the instant sync could not run.\n* On-Demand Full Synchronization: Initiate a complete data synchronization manually whenever needed.\n* Automatic Retry: A sync that could not be delivered is retried on its own with the current data, and any measurement still waiting is shown to you.\n* Multi-User Aware: MQTT, InfluxDB and Webhook keep every openScale user separate; Health Connect, Wger and Endurain sync the user you select.\n* Configurable Service Activation: Easily enable or disable individual external services to tailor your synchronization preferences.\n* Intelligent Foreground Service: Utilizes a foreground service that activates only when required, minimizing battery consumption.\n* Intuitive User Interface: Enjoy a user-friendly graphical interface for effortless navigation and control.\n\nYour data is never sent anywhere except the services you enable and configure yourself. The app has no ads, no analytics and no accounts.\n"}}, "versions": {"13930b9c23d2cd3dd134c31312c4c1c09c945ff0bc8517cf1b6167ac919f1c3c": null, "c7496ff06f24c77f8db45c815778654abfb94175e244c76e094b9bcb9c47f6c5": {"added": 1786749285772, "file": {"name": "/com.health.openscale.sync_17.apk", "sha256": "c7496ff06f24c77f8db45c815778654abfb94175e244c76e094b9bcb9c47f6c5", "size": 17476785, "ipfsCIDv1": "bafybeieyxjosinxnbjsiu4vqrmzav5fasrfqboz74ura73vh6subfifz6y"}, "src": {"name": "/com.health.openscale.sync_17_src.tar.gz", "sha256": "958211272876574b4ce080ea868d274ab7f176a5080c35e295c47558bed798bf", "size": 1074189}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.6.1", "versionCode": 17, "usesSdk": {"minSdkVersion": 31, "targetSdkVersion": 36}, "signer": {"sha256": ["4ca88cdd20b402eaedfa9d1ecdf9a1cc3e0766f8ec9335ea2834f93987e83f81"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "com.health.openscale.READ_WRITE_DATA"}, {"name": "com.health.openscale.debug.READ_WRITE_DATA"}, {"name": "com.health.openscale.oss.READ_WRITE_DATA"}, {"name": "com.health.openscale.beta.READ_WRITE_DATA"}, {"name": "com.health.openscale.light.READ_WRITE_DATA"}, {"name": "com.health.openscale.pro.READ_WRITE_DATA"}, {"name": "android.permission.health.WRITE_BODY_FAT"}, {"name": "android.permission.health.WRITE_BODY_WATER_MASS"}, {"name": "android.permission.health.WRITE_WEIGHT"}, {"name": "android.permission.health.WRITE_BASAL_METABOLIC_RATE"}, {"name": "android.permission.health.WRITE_LEAN_BODY_MASS"}, {"name": "android.permission.health.WRITE_BONE_MASS"}, {"name": "android.permission.health.READ_WEIGHT"}, {"name": "android.permission.health.READ_BODY_FAT"}, {"name": "android.permission.health.READ_BODY_WATER_MASS"}, {"name": "android.permission.health.READ_BONE_MASS"}, {"name": "android.permission.health.READ_LEAN_BODY_MASS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.health.openscale.sync.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- New Endurain sync backend.\n- Two-way sync: import measurements from Health Connect, Wger and MQTT.\n- Optional background sync every 6 hours.\n- Health Connect syncs bone mass, lean mass and BMR, and starts export-only: it reads only when you turn on import.\n- A failed sync no longer blocks later ones and is retried automatically.\n- Pick which openScale to sync with when several are installed.\n"}}}}, "com.hugo.theuniversedecides": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"6ad48be2b7190b62c84e9b0730169c525cc9a6310779549179ed16178ef8706d": null, "c89020c58606dea77331d298cbdd35409a59b9224d4c5660dac73a9e77fe632a": null, "b1deacdbb33a48f03a73dce54b4e09f836ecd538cb7cb3b321cc14e031731106": null, "e6ed4dbbdc9596c34ad670e865b3e544d33fa8044d5f888da912f29515211fed": {"added": 1786866775484, "file": {"name": "/com.hugo.theuniversedecides_1001723.apk", "sha256": "e6ed4dbbdc9596c34ad670e865b3e544d33fa8044d5f888da912f29515211fed", "size": 21132988, "ipfsCIDv1": "bafybeiabbrzo4dksyhstmsiyns2j2lx3jvu2mm6dqcts4qfisl4nriz7sm"}, "src": {"name": "/com.hugo.theuniversedecides_1001723_src.tar.gz", "sha256": "4bbe86a36209eb91a03f7a6e5f036c6330277c87d2a1628ae15ee661bb8297f7", "size": 68176320}, "manifest": {"nativecode": ["x86_64"], "versionName": "2.6.2", "versionCode": 1001723, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["48497d34c0e9e3a67ad389d479765c7bacf3b0fccae3af9fbb4bb8a1ce4e4af0"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "com.hugo.theuniversedecides.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Random.org is used when available; local randomness remains available as a fallback."}}}, "93135d947e536ed5fea73a35802e329f3c40bcc22dfa0ca7ed0c2206a5d5b886": {"added": 1786866775484, "file": {"name": "/com.hugo.theuniversedecides_1001722.apk", "sha256": "93135d947e536ed5fea73a35802e329f3c40bcc22dfa0ca7ed0c2206a5d5b886", "size": 19740360, "ipfsCIDv1": "bafybeidvmv5u2e4za3n4frnz4t3f73aydwh2f4fy5i2b7y47rwaz76area"}, "src": {"name": "/com.hugo.theuniversedecides_1001722_src.tar.gz", "sha256": "c308fad2f468c74b67620f3017060ab4c8bdbdd896cebff4060c5eb42869bc4c", "size": 68175673}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "2.6.2", "versionCode": 1001722, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["48497d34c0e9e3a67ad389d479765c7bacf3b0fccae3af9fbb4bb8a1ce4e4af0"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "com.hugo.theuniversedecides.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Random.org is used when available; local randomness remains available as a fallback."}}}, "047fd3c1c268b1b9c22121f5192c64323d6168d8328541e8b3609b1d862773a9": {"added": 1786866775484, "file": {"name": "/com.hugo.theuniversedecides_1001721.apk", "sha256": "047fd3c1c268b1b9c22121f5192c64323d6168d8328541e8b3609b1d862773a9", "size": 17282768, "ipfsCIDv1": "bafybeifnmonorvxwuhozaqzarjqmv3meywmuqq4zgky7tokeodunfemzdm"}, "src": {"name": "/com.hugo.theuniversedecides_1001721_src.tar.gz", "sha256": "87b42b69f0c13bcd7947f5a698b16c1c087aedc135bf480638617c4896656807", "size": 68177042}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "2.6.2", "versionCode": 1001721, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["48497d34c0e9e3a67ad389d479765c7bacf3b0fccae3af9fbb4bb8a1ce4e4af0"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "com.hugo.theuniversedecides.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Random.org is used when available; local randomness remains available as a fallback."}}}}}, "com.ismartcoding.plain": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"a774e33a75ed7cb6bd0d16fc4d7b0bde8c0de3e8abdd6acb238400236c8f80af": null, "53ff1ff96638e550a825e649bebe3327285740b06d0dc7739abe3a5127f8bf78": null, "02e19c9b1f3410c4ad37bd19d42effea1c973a2c6d06cef458568e14cdcbe731": null, "fa67709acb51bfd98e950deff975412db832209e369841e3824b1f633491f4c6": {"added": 1786749285772, "file": {"name": "/com.ismartcoding.plain_631.apk", "sha256": "fa67709acb51bfd98e950deff975412db832209e369841e3824b1f633491f4c6", "size": 62976860, "ipfsCIDv1": "bafybeicgoc2ymutwvjmuz7j5br24wqbgddo4saywmvpwd26elofpygx57u"}, "src": {"name": "/com.ismartcoding.plain_631_src.tar.gz", "sha256": "21ba3764c073da6739a1c80c9456404fd2f5897f17fe3d8e3f694b175b808c01", "size": 43120739}, "manifest": {"nativecode": ["x86_64"], "versionName": "3.3.0", "versionCode": 631, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["c1314fbbfbdde78de3e8e60dea3e0fb8d8ea2103e9c7951043bde074bf1eaf2d"]}, "usesPermission": [{"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.READ_PHONE_NUMBERS"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.MULTICAST"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.READ_SMS"}, {"name": "android.permission.SEND_SMS"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.READ_CALL_LOG"}, {"name": "android.permission.WRITE_CALL_LOG"}, {"name": "android.permission.CALL_PHONE"}, {"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.BLUETOOTH_ADMIN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH_ADVERTISE"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.NEARBY_WIFI_DEVICES"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.ismartcoding.plain.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}}, "2ff3b81bc3cd1b9ca2af33c667b9f87d4149a2efa3aa0c04025cb52a4b6c0702": {"added": 1786749285772, "file": {"name": "/com.ismartcoding.plain_630.apk", "sha256": "2ff3b81bc3cd1b9ca2af33c667b9f87d4149a2efa3aa0c04025cb52a4b6c0702", "size": 62731130, "ipfsCIDv1": "bafybeietxf4rze5lvkn7lqq3xudpfz4dojgzyfpih22qqtdote4ddjokvm"}, "src": {"name": "/com.ismartcoding.plain_630_src.tar.gz", "sha256": "9d575dde4d97430306b7f51acc97f97957f13f1a1e841c5c5403cacf8888cec2", "size": 43120495}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "3.3.0", "versionCode": 630, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["c1314fbbfbdde78de3e8e60dea3e0fb8d8ea2103e9c7951043bde074bf1eaf2d"]}, "usesPermission": [{"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.READ_PHONE_NUMBERS"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.MULTICAST"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.READ_SMS"}, {"name": "android.permission.SEND_SMS"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.READ_CALL_LOG"}, {"name": "android.permission.WRITE_CALL_LOG"}, {"name": "android.permission.CALL_PHONE"}, {"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.BLUETOOTH_ADMIN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH_ADVERTISE"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.NEARBY_WIFI_DEVICES"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.ismartcoding.plain.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}}, "49f3a8e64ff89a57e99a3b15f64bbe58034e099e007f81f32d148c0e60978595": {"added": 1786749285772, "file": {"name": "/com.ismartcoding.plain_629.apk", "sha256": "49f3a8e64ff89a57e99a3b15f64bbe58034e099e007f81f32d148c0e60978595", "size": 60830606, "ipfsCIDv1": "bafybeidnewullzyyupfuetydilsqlmz64o2mfqvltz4qnood7ppvhcjfc4"}, "src": {"name": "/com.ismartcoding.plain_629_src.tar.gz", "sha256": "c9cafc3e919ef87de1cf8113a59bb7c7a5fc1f663ec54b42a6771e6e2bd94306", "size": 43120928}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "3.3.0", "versionCode": 629, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["c1314fbbfbdde78de3e8e60dea3e0fb8d8ea2103e9c7951043bde074bf1eaf2d"]}, "usesPermission": [{"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.READ_PHONE_NUMBERS"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.MULTICAST"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.READ_SMS"}, {"name": "android.permission.SEND_SMS"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.READ_CALL_LOG"}, {"name": "android.permission.WRITE_CALL_LOG"}, {"name": "android.permission.CALL_PHONE"}, {"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.BLUETOOTH_ADMIN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH_ADVERTISE"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.NEARBY_WIFI_DEVICES"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.ismartcoding.plain.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}}}}, "com.isotjs.todosian": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"3a467941a772d4ad6588e8dbb4c11bca80996b538360ec3a33ea28b9816cd79d": null, "301fc60dd8bd0f81a1bd4583562adc27ddfcdc29325e06e122008539a288eb53": {"added": 1786749285772, "file": {"name": "/com.isotjs.todosian_8.apk", "sha256": "301fc60dd8bd0f81a1bd4583562adc27ddfcdc29325e06e122008539a288eb53", "size": 5149544, "ipfsCIDv1": "bafybeicgzldijxrufbkjtk4u7laltdlf3b6omqd3vxjxo6uofemyb2w7mu"}, "src": {"name": "/com.isotjs.todosian_8_src.tar.gz", "sha256": "7c2ccdfe445e10b35c43472fe8ca2766d6fbe3ba3b34a72202ce8ab9fcba6d98", "size": 321642}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.0", "versionCode": 8, "usesSdk": {"minSdkVersion": 30, "targetSdkVersion": 37}, "signer": {"sha256": ["a348c52917ecc4936cb2cbe2e2349454f058ca3e6e163bb1173edb1eca132db2"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.isotjs.todosian.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Version 1.8 brings a polished settings experience, more reliable reminders, and greater control over how todos are added.\n\nNew Features:\n• Choose where new todos are added - set them to appear at the top or bottom of your Markdown files\n• Optional Subtasks - enable or disable subtasks from settings to keep your lists simple\n• Redesigned Settings - the settings screen now follows Material 3 guidelines, with compliant radio selection in choice dialogs\n\nImprovements:\n• More reliable due reminders -"}}}}, "com.jarsilio.android.drowser": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"1bc0368319f67430bc1a9d50a2d8002aa2d8ae0d5ec3453b86a9cbddc1f7e7e0": null, "594599b287beb7c97c50369669132f84afd0f3850f63063034c60b77d5e947d6": {"added": 1786749285772, "file": {"name": "/com.jarsilio.android.drowser_35.apk", "sha256": "594599b287beb7c97c50369669132f84afd0f3850f63063034c60b77d5e947d6", "size": 2923694, "ipfsCIDv1": "bafybeicvgspespykcfwenc5p26le7375cimymuthtzsnr6356gz7gn5sia"}, "src": {"name": "/com.jarsilio.android.drowser_35_src.tar.gz", "sha256": "90b9722a87ec2764d2d5fe9de66e9fbba5ce7df3a0e771bbc4b570527064cdf7", "size": 4231840}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.0.13", "versionCode": 35, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["36c6b204ea4262a08fb6b43aebd11139f2b5f4a100df609cd6e3e43f431a03e9"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.PACKAGE_USAGE_STATS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.jarsilio.android.drowser.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.jarsilio.android.waveup": {"metadata": {"lastUpdated": 1786749285772, "description": {"ar": "يشغّل تطبيق <b>WaveUp</b> هاتفك—أي يشغّل الشاشة—عندما تلوّح فوق مستشعر التقارب.\n\nصمّمتُ هذا التطبيق لأني سئمتُ من الضغط على زر التشغيل لمجرد معرفة الوقت (وهي عادةٌ أكرّرها كثيرًا). استلهمتُ الفكرة من تطبيق Gravity Screen On/Off <b>الرائع</b>. بحثتُ عن بديلٍ مفتوح المصدر ولم أجِد، فصمّمتُه بنفسي!\nاطّلِع على الكود: https://gitlab.com/juanitobananas/wave-up\nملف README ربما يكون أكثر حداثة: https://gitlab.com/juanitobananas/wave-up/#waveup\n\n<b>الميزات</b>\n\n◂ <b>وضع التلويح</b>: يشغّل الشاشة عند التلويح فوق مستشعر التقارب.\n◂ <b>وضع الجيب</b>: يشغّل الشاشة عند إخراج هاتفك من جيبك أو حقيبتك.\n\nكلاهما <i>مُفعَّل افتراضيًّا</i>، ولكن يمكن إيقاف تشغيلهما في الإعدادات.\n\n◂ <b>قَفل الشاشة</b>: يغطّي المستشعر لثانية واحدة (أو المدة التي تختارها) ويتم قَفل الهاتف. <i>مُعطَّل افتراضيًّا</i>، ولكن من السهل تفعيله.\n\n<b>لحظة، ما هو مستشعر التقارب؟</b>\nإنه ذلك الشيء الصغير غير المرئي الموجود بالقرب من سمّاعة الهاتف والذي يوقف تشغيل الشاشة عندما تكون في مكالمة.\n\n<b>المشاكل المعروفة</b>\nبعض الهواتف تُبقي المعالج قيد التشغيل عند الاستماع إلى مستشعر التقارب، وهذا يستنزف البطارية (اللوم يقع على هاتفك، وليس عليّ). أمّا معظم الهواتف فلا تفعل ذلك، لذا يكون استهلاك البطارية ضئيلًا.\n\n<b>خدمات تسهيل الوصول</b>\n\n◂ الغرض: بدءًا من نظام أندرويد ٩، يستخدم WaveUp واجهة برمجة تطبيقات خدمات إمكانية الوصول للسماح للمستخدمين بإيقاف تشغيل الشاشة.\n◂ الخصوصية والأمان: يستخدم WaveUp واجهة برمجة تطبيقات خدمات إمكانية الوصول حصرًا لهذا الغرض، وذلك فقط في حال تفعيل خيار ’القفل‘. لا يتم جمع أو تخزين أو مشاركة أيّ بيانات شخصية من خلال هذه الخدمة.\n◂ نطاق الإذن: يُستخدَم إذن خدمات إمكانية الوصول حصرًا لتفعيل ميزة قَفل الشاشة. ولا يراقب هذا الإذن أو يتفاعل مع أي جانب آخَر من جوانب استخدام الجهاز.\n\n<b>الأذون</b> (نعم، عدد لا بأس به)\n\n<b>WAKE_LOCK</b> – تشغيل الشاشة\n▸ <b>RECEIVE_BOOT_COMPLETED</b> – البدء التلقائي عند بدء التشغيل\n◂ <b>READ_PHONE_STATE</b> – إيقاف مؤقت أثناء المكالمات\n▸ <b>BLUETOOTH / CONNECT</b> – تجنُّب التوقف المؤقت أثناء إجراء مكالمة عبر البلوتوث\n▸ <b>IGNORE_BATTERY_OPTIMIZATIONS</b> إلخ. – البقاء قيد التشغيل في الخلفية\n◂ <b>FORCE_LOCK</b> – قَفل الجهاز (أندرويد ٨ والإصدارات الأقدم)\n◂ <b>ACCESSIBILITY_SERVICE</b> – قَفل الجهاز (أندرويد ٩+)\n◂ <b>DELETE_PACKAGES</b> – دع التطبيق يلغي تثبيت نفسه إذا لزم الأمر\n\n<b>إلغاء التثبيت (أندرويد ٨ والإصدارات الأقدم)</b>\nيستخدم تطبيق WaveUp صلاحيات مسؤول الجهاز، لذا لن يتم إلغاء تثبيته بالطريقة المعتادة. استخدم زر ”إلغاء تثبيت WaveUp“ في التطبيق لإزالته بشكل صحيح.\n\n<b>معلومة طريفة</b>\n\nهذا <b>أول</b> تطبيق لي على نظام أندرويد و<b>أول مساهمة</b> لي في مشروع مفتوح المصدر! يسعدني تلقّي ملاحظاتكم أو مساعدتكم—خاصةً إذا كنتم مهتمين بالترجمة أو تستمتعون بالتجريب.\n<b>تحيا التطبيقات المفتوحة المصدر!</b>\n\n<b>الترجمات</b>\n\nساعد في ترجمة WaveUp! حتى النسخة الإنجليزية تحتاج إلى تحسينات.\nhttps://explore.transifex.com/juanitobananas/waveup/\nhttps://explore.transifex.com/juanitobananas/libcommon/\n\n<b>الشكر والتقدير</b>\nشكرًا لجميع المساهمين: https://gitlab.com/juanitobananas/wave-up/#acknowledgments\n"}}, "versions": {"530141cb7224c2dda412685eb09d609f59c42f9ff8e74b3f6bb9d60c30c576ec": null, "23c59783cd153488e76a58a4ea8b4458d586e003b03b59f1419479af89b731d4": {"added": 1786749285772, "file": {"name": "/com.jarsilio.android.waveup_138.apk", "sha256": "23c59783cd153488e76a58a4ea8b4458d586e003b03b59f1419479af89b731d4", "size": 4791853, "ipfsCIDv1": "bafybeib2u6l4r54n32w6hbdh5q325tppwm76bp4fukouypveti5o3xcsoq"}, "src": {"name": "/com.jarsilio.android.waveup_138_src.tar.gz", "sha256": "d653db0ce31105ebadd3ea4de0a7e218ed22f802641590ec0a694001e81dfdbd", "size": 75764291}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "3.2.33", "versionCode": 138, "features": [{"name": "android.hardware.sensor.proximity"}], "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["76ba3aa3786041f0f2648f287821f1055c071eaee07aa4cf7b62114359ff485a"]}, "usesPermission": [{"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.PACKAGE_USAGE_STATS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.TURN_SCREEN_ON"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.USES_POLICY_FORCE_LOCK"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "com.jarsilio.android.waveup.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "New in 3.2.33\n\n★ Update Arabic and Russian translations.\n\n...\n\nNew in 3.2.31\n\n★ Fixed screen not turning on when a wave is detected in some cases.\n★ App list now shows a loading spinner on startup instead of appearing empty.\n★ App list loads faster.\n\n...\n\nNew in 3.2.17\n★ Remove 'Excluded apps' option (Google Play only). F-Droid ones remain fully functional. Google doesn't allow WaveUp to read installed apps, which is necessary for this.\n\n...\n"}}}}, "com.joeld.minesweeper": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"c9e1b610da5c6929be33d551d6ade1e29c0d805bad30cc1aa6bf9e5eb784dcc5": {"added": 1786866775484, "file": {"name": "/com.joeld.minesweeper_6.apk", "sha256": "c9e1b610da5c6929be33d551d6ade1e29c0d805bad30cc1aa6bf9e5eb784dcc5", "size": 5536376, "ipfsCIDv1": "bafybeia2c3silbrbs7vaxjvtksqj6eq76dd2fphlxfdcjvvtn5jk6eojpm"}, "src": {"name": "/com.joeld.minesweeper_6_src.tar.gz", "sha256": "9db5acb8fc88ec5d0925d1a40485b2050fcb0c6a7518ed3816bb462f84d6cf55", "size": 68090}, "manifest": {"versionName": "1.5", "versionCode": 6, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["49175f87f74c2bd9e8a0b0a78d972909438fae56b5ee9cfe47b701202482d630"]}, "usesPermission": [{"name": "com.joeld.minesweeper.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.k2040.escaagnellis": {"metadata": {"added": 1786866775484, "categories": ["Diet", "Health Manager"], "changelog": "https://github.com/Kamui2040/K2040-Android-Releases/releases", "issueTracker": "https://github.com/Kamui2040/Esca-Agnellis-Android/issues", "lastUpdated": 1786866775484, "license": "GPL-3.0-only", "sourceCode": "https://github.com/Kamui2040/Esca-Agnellis-Android", "webSite": "https://kamui2040.github.io/K2040-Android-Releases/", "screenshots": {"phone": {"de-DE": [{"name": "/com.k2040.escaagnellis/de-DE/phoneScreenshots/1.png", "sha256": "cc19c0f70d66698686bd4b0a12e98bcfb598515f8aec61aca3b1fda03e6c4bc9", "size": 441954}, {"name": "/com.k2040.escaagnellis/de-DE/phoneScreenshots/2.png", "sha256": "f1673c808167c26471bc410016659df1dddc2085edbf75037643faa72793d685", "size": 220105}, {"name": "/com.k2040.escaagnellis/de-DE/phoneScreenshots/3.png", "sha256": "bd9eaf6db75449c9b8d9bef075d4bc1b1dbe7396d604c47424eedb087d01d2c9", "size": 2481753}, {"name": "/com.k2040.escaagnellis/de-DE/phoneScreenshots/4.png", "sha256": "5d5e69b042522e860a9f13848853f0a833703134a2fa733467de78bdf7cdea22", "size": 208830}], "en-US": [{"name": "/com.k2040.escaagnellis/en-US/phoneScreenshots/1.png", "sha256": "b04d94ddb268afb63d78679848fbcaf2e0930a5912cbdd91d7acfc6b35a5bb0e", "size": 443643}, {"name": "/com.k2040.escaagnellis/en-US/phoneScreenshots/2.png", "sha256": "3bd7ab07c2c94f9a2dd01885af913aacccd3b78ae502a4c18a93939430d979b4", "size": 220585}, {"name": "/com.k2040.escaagnellis/en-US/phoneScreenshots/3.png", "sha256": "7482a53ea8327b3a16fbc019c7f584142a6320a3908e16cf83ed696d032e1e68", "size": 2480917}, {"name": "/com.k2040.escaagnellis/en-US/phoneScreenshots/4.png", "sha256": "28e61e9e83f150c015c6b75dcc4fe9b7de6a168f762120f92418e736dc471916", "size": 199515}], "es-ES": [{"name": "/com.k2040.escaagnellis/es-ES/phoneScreenshots/1.png", "sha256": "16d3e15046e25e130d5bd2e6b10c5f030741fa8f3cc29c663b69769302087607", "size": 439651}, {"name": "/com.k2040.escaagnellis/es-ES/phoneScreenshots/2.png", "sha256": "233221756159cfbd034780c866450f18bb026db8c53b1b5da0b6eb9729421439", "size": 219997}, {"name": "/com.k2040.escaagnellis/es-ES/phoneScreenshots/3.png", "sha256": "4926413cff2a7747634b2aaefa50c9749e6351787fa78d22215f250d796f1b20", "size": 2485774}, {"name": "/com.k2040.escaagnellis/es-ES/phoneScreenshots/4.png", "sha256": "211dca32017a6161345ff60bad1cbc318f645dec4af7f4b418d7cc9a26509311", "size": 200938}], "fr-FR": [{"name": "/com.k2040.escaagnellis/fr-FR/phoneScreenshots/1.png", "sha256": "a2343341c8d76246301e96ba318d95ab4c6464bf999e67887c0ff68614c1bc65", "size": 439242}, {"name": "/com.k2040.escaagnellis/fr-FR/phoneScreenshots/2.png", "sha256": "deb617c21b58583a56ec9edb42e6bdac708c8f9887614624cd3f3d94eda232e8", "size": 218102}, {"name": "/com.k2040.escaagnellis/fr-FR/phoneScreenshots/3.png", "sha256": "b427535fedae2dcf8b9b0a3db97329f57a1e5b1b5350124a13fb7cdcde16ccc1", "size": 2484916}, {"name": "/com.k2040.escaagnellis/fr-FR/phoneScreenshots/4.png", "sha256": "5b04a3f8cf898be93aed512ae312866fc8a9ec0c96ec2c8bc8a4fd2c4524f867", "size": 202816}], "pt-PT": [{"name": "/com.k2040.escaagnellis/pt-PT/phoneScreenshots/1.png", "sha256": "9bc5c66af9d059b41ee28438b72bf898b18585f16fd5730bfd17e2e484eb6a43", "size": 440483}, {"name": "/com.k2040.escaagnellis/pt-PT/phoneScreenshots/2.png", "sha256": "4420a78c24ab3ab2d93010029395d1f898b3c1d32cd006f05b94c6c29e5889d3", "size": 221907}, {"name": "/com.k2040.escaagnellis/pt-PT/phoneScreenshots/3.png", "sha256": "50910cf32efa3b4412d09edf9b0c6a20cd0cd91d6882bef219442e155aa11e05", "size": 2486388}, {"name": "/com.k2040.escaagnellis/pt-PT/phoneScreenshots/4.png", "sha256": "caffe99d96d1c44303c0a2598c7fd0b9a9db28825fdb628c483f5c1c968d897e", "size": 200742}]}}, "authorName": "K2040", "authorWebSite": "https://github.com/Kamui2040", "name": {"de-DE": "Esca Agnellis", "en-US": "Esca Agnellis", "es-ES": "Esca Agnellis", "fr-FR": "Esca Agnellis", "pt-PT": "Esca Agnellis"}, "summary": {"de-DE": "Lokale Ernährungspyramide mit Backup, PDF und optionalem Begleiter", "en-US": "Local food-pyramid tracking with backup, PDF and an optional companion", "es-ES": "Pirámide alimentaria local con copias, PDF y acompañante opcional", "fr-FR": "Pyramide alimentaire locale avec sauvegarde, PDF et compagnon facultatif", "pt-PT": "Pirâmide alimentar local com cópias, PDF e companheiro opcional"}, "description": {"de-DE": "Esca Agnellis ist eine lokale Android-App zum freundlichen, niedrigschwelligen Erfassen einer Ernährungspyramide.\n\nDie App funktioniert ohne Konto und ohne Internet-Berechtigung. Tracking-Daten bleiben auf dem Gerät. Es gibt keine Werbung, Telemetrie, Analytics, Cloud-Synchronisierung oder automatische Hintergrund-Datenerfassung.\n\nFunktionen:\n• Tagesansicht zum Abhaken von Portionen\n• Übersicht und Statistik für den eigenen Verlauf\n• Portionshilfe mit Hand- und Haushaltsmaßen\n• lokale Datensicherung und Wiederherstellung über die Android-Dokumentauswahl\n• lokale PDF-Berichte\n• Deutsch, Englisch, Spanisch, Französisch und europäisches Portugiesisch\n• helle, dunkle und gemütliche Pastell-Designs\n• optionaler lokaler Begleiter, standardmäßig deaktiviert und separat sicherbar\n\nDer Begleiter verwendet nur lokal verdiente In-App-Tokens. Es gibt keine Käufe, Werbung oder kostenpflichtigen Freischaltungen.\n\nDie Portionsangaben dienen der allgemeinen Orientierung. Esca Agnellis ist keine medizinische, diätische oder individuelle Ernährungsberatung und kein offizielles Angebot von BZfE oder BLE.\n\nDer Anwendungscode und die Build-Skripte sind freie Software unter GPL-3.0-only.\n", "en-US": "Esca Agnellis is a local Android app for friendly, low-pressure food-pyramid tracking.\n\nThe app works without an account and without Internet permission. Tracking data stays on the device. There are no ads, telemetry, analytics, cloud sync, or automatic background data collection.\n\nFeatures:\n• daily portion tracking\n• overview and statistics for your own history\n• portion guidance using hand and household measures\n• local backup and restore through Android's document picker\n• local PDF reports\n• German, English, Spanish, French, and European Portuguese\n• light, dark, and cozy pastel themes\n• an optional local companion, disabled by default and backed up separately\n\nThe companion uses only locally earned in-app tokens. There are no purchases, ads, or paid unlocks.\n\nPortion information is general orientation only. Esca Agnellis is not medical, dietary, or individualized nutritional advice and is not an official BZfE or BLE product.\n\nThe application code and build scripts are free software under GPL-3.0-only.\n", "es-ES": "Esca Agnellis es una aplicación local de Android para registrar una pirámide alimentaria de forma amable y sin presión.\n\nLa aplicación funciona sin cuenta y sin permiso de Internet. Los datos de seguimiento permanecen en el dispositivo. No hay anuncios, telemetría, analítica, sincronización en la nube ni recopilación automática de datos en segundo plano.\n\nFunciones:\n• registro diario de porciones\n• resumen y estadísticas del propio historial\n• orientación de porciones mediante medidas de la mano y del hogar\n• copia de seguridad y restauración locales mediante el selector de documentos de Android\n• informes PDF locales\n• alemán, inglés, español, francés y portugués europeo\n• temas claros, oscuros y pastel acogedores\n• acompañante local opcional, desactivado de forma predeterminada y con copia de seguridad separada\n\nEl acompañante utiliza únicamente tokens obtenidos localmente dentro de la aplicación. No hay compras, anuncios ni desbloqueos de pago.\n\nLa información sobre porciones ofrece solo orientación general. Esca Agnellis no proporciona asesoramiento médico, dietético ni nutricional individualizado y no es un producto oficial de BZfE o BLE.\n\nEl código de la aplicación y los scripts de compilación son software libre bajo GPL-3.0-only.\n", "fr-FR": "Esca Agnellis est une application Android locale pour suivre une pyramide alimentaire de manière bienveillante et sans pression.\n\nL'application fonctionne sans compte et sans autorisation Internet. Les données de suivi restent sur l'appareil. Il n'y a ni publicité, ni télémétrie, ni analyse d'utilisation, ni synchronisation dans le cloud, ni collecte automatique de données en arrière-plan.\n\nFonctions :\n• suivi quotidien des portions\n• vue d'ensemble et statistiques de votre propre historique\n• repères de portions fondés sur la main et des mesures domestiques\n• sauvegarde et restauration locales via le sélecteur de documents Android\n• rapports PDF locaux\n• allemand, anglais, espagnol, français et portugais européen\n• thèmes clairs, sombres et pastel chaleureux\n• compagnon local facultatif, désactivé par défaut et sauvegardé séparément\n\nLe compagnon utilise uniquement des jetons gagnés localement dans l'application. Il n'y a aucun achat, aucune publicité et aucun déblocage payant.\n\nLes indications de portions sont fournies uniquement à titre général. Esca Agnellis ne fournit pas de conseil médical, diététique ou nutritionnel individualisé et n'est pas un produit officiel du BZfE ou du BLE.\n\nLe code de l'application et les scripts de compilation sont des logiciels libres sous GPL-3.0-only.\n", "pt-PT": "Esca Agnellis é uma aplicação Android local para acompanhar uma pirâmide alimentar de forma amigável e sem pressão.\n\nA aplicação funciona sem conta e sem permissão de Internet. Os dados de acompanhamento permanecem no dispositivo. Não há publicidade, telemetria, análise de utilização, sincronização na nuvem nem recolha automática de dados em segundo plano.\n\nFuncionalidades:\n• registo diário de porções\n• visão geral e estatísticas do próprio histórico\n• orientação de porções com medidas da mão e medidas domésticas\n• cópia de segurança e restauro locais através do seletor de documentos do Android\n• relatórios PDF locais\n• alemão, inglês, espanhol, francês e português europeu\n• temas claros, escuros e pastel acolhedores\n• companheiro local opcional, desativado por predefinição e com cópia de segurança separada\n\nO companheiro utiliza apenas tokens obtidos localmente na aplicação. Não existem compras, publicidade ou desbloqueios pagos.\n\nAs informações sobre porções destinam-se apenas a orientação geral. Esca Agnellis não fornece aconselhamento médico, dietético ou nutricional individualizado e não é um produto oficial do BZfE ou do BLE.\n\nO código da aplicação e os scripts de compilação são software livre sob GPL-3.0-only.\n"}, "icon": {"en-US": {"name": "/icons/com.k2040.escaagnellis.40.png", "sha256": "5608cbf3218e41712f9d34a2b5f517fa445b6a00252926d1d25afb4357d84735", "size": 5065}}, "preferredSigner": "4cc80df280bec829e4b179b72c51db1ace173b7bcbe0ef92f9ecbda0c50b364b"}, "versions": {"744f926a2b03848626de826c9e731aaa28ab90e53b9b2da68414da55c88b7909": {"added": 1786866775484, "file": {"name": "/com.k2040.escaagnellis_40.apk", "sha256": "744f926a2b03848626de826c9e731aaa28ab90e53b9b2da68414da55c88b7909", "size": 16759063, "ipfsCIDv1": "bafybeia42fnkpkfjkvyrkv4ydm7irmcffazhe2yywcc7qaqqvb7s22go7u"}, "src": {"name": "/com.k2040.escaagnellis_40_src.tar.gz", "sha256": "8a00fbdfcb58f43b524bb803a8c3387ae770c830afa7a602e39b10a8ce7145ea", "size": 37335518}, "manifest": {"versionName": "0.16.0", "versionCode": 40, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["4cc80df280bec829e4b179b72c51db1ace173b7bcbe0ef92f9ecbda0c50b364b"]}}, "whatsNew": {"de-DE": "Neu in 0.16.0:\n• optionaler Begleiter mit Belohnungen und kleinen lokalen Interaktionen\n• Begleiter lokal benennen und separat sichern\n• PDF-Berichte direkt auf dem Gerät erstellen\n• Verbesserungen bei Sprachen, Themen und Bedienung\n• einheitlicher erster Start mit Infos, Changelog, Lizenz und Credits\n• weiterhin lokal, ohne Konto, Werbung oder Tracking\n", "en-US": "New in 0.16.0:\n• optional companion with rewards and small local interactions\n• name the companion locally and back it up separately\n• create PDF reports directly on the device\n• improvements to languages, themes, and usability\n• unified first launch with info, changelog, licence, and credits\n• still local, with no account, ads, or tracking\n", "es-ES": "Novedades de 0.16.0:\n• acompañante opcional con recompensas y pequeñas interacciones locales\n• nombre local y copia de seguridad separada del acompañante\n• informes PDF creados directamente en el dispositivo\n• mejoras de idiomas, temas y uso\n• primer inicio unificado con información, cambios, licencia y créditos\n• sigue siendo local, sin cuenta, anuncios ni seguimiento\n", "fr-FR": "Nouveautés de la version 0.16.0 :\n• compagnon facultatif avec récompenses et petites interactions locales\n• nom local et sauvegarde séparée du compagnon\n• rapports PDF créés directement sur l'appareil\n• améliorations des langues, thèmes et de l'utilisation\n• premier lancement unifié avec informations, nouveautés, licence et crédits\n• toujours local, sans compte, publicité ni suivi\n", "pt-PT": "Novidades na versão 0.16.0:\n• companheiro opcional com recompensas e pequenas interações locais\n• nome local e cópia de segurança separada do companheiro\n• relatórios PDF criados diretamente no dispositivo\n• melhorias de idiomas, temas e utilização\n• primeiro arranque unificado com informações, novidades, licença e créditos\n• continua local, sem conta, publicidade ou rastreio\n"}}}}, "com.katoaapps.openminilaunch": {"metadata": {"added": 1786866775484, "categories": ["Launcher"], "issueTracker": "https://github.com/katoaapps/openminilaunch/issues", "lastUpdated": 1786866775484, "license": "Apache-2.0", "sourceCode": "https://github.com/katoaapps/openminilaunch", "screenshots": {"phone": {"en-US": [{"name": "/com.katoaapps.openminilaunch/en-US/phoneScreenshots/1.png", "sha256": "66e302fa4d2a7660775f3080cdee9d3550aca2e9584f0e44eaf23d76e2cea8cf", "size": 86756}, {"name": "/com.katoaapps.openminilaunch/en-US/phoneScreenshots/2.png", "sha256": "4ec3f146d437b33583fe1160f04231cfe000155e586420018d47539849c31afc", "size": 257729}, {"name": "/com.katoaapps.openminilaunch/en-US/phoneScreenshots/3.png", "sha256": "4334bff84b24c20f7d8b2200861c2de2885df5b91579f3487b7c2d045d7b1ae6", "size": 142939}]}}, "authorEmail": "contact@katoaapps.com", "authorName": "Katoa Apps", "name": {"en-US": "MinkLauncher Open"}, "summary": {"en-US": "A minimal, keyboard-first Android home-screen launcher"}, "description": {"en-US": "MinkLauncher Open is a focused, one-page Android home-screen launcher designed around fast keyboard input and low visual noise.\n\nThe home screen provides a two-item to-do preview, eight configurable shortcuts, a five-app drawer, and the Magic Box command field.\n\nOn a physical-keyboard phone, just start typing from the home screen. The already-focused Magic Box appears with the first character preserved; no tap is required.\n\nMagic Box commands:\n\n• @ — choose a contact and compose a message\n• # — choose a contact, confirm, and place a call\n• - — add an internal to-do\n• $ — create a multiline note through an installed notes app\n• + — create a calendar event\n• ? — find and launch an installed app\n• Plain text — search local filenames or delegate a web query to Android’s selected search handler\n\nTo-dos can be added, checked, edited, deleted, and reordered. Local file results are grouped into photos, videos, documents, and audio, with thumbnails where Android provides them.\n\nPrivacy is a core feature:\n\n• No accounts, ads, analytics, trackers, or application server\n• Queries, to-dos, settings, and filename indexing stay on the device\n• Android cloud backup is disabled\n• Document search is limited to folders explicitly selected by the user\n• Permissions are requested only for features that need them\n\nMinkLauncher Open is released under the Apache License 2.0.\n"}, "icon": {"en-US": {"name": "/com.katoaapps.openminilaunch/en-US/icon_Krfk5dFvldkdnTATbfaEA2VV-wOaoA7kjVfVb6WEpLo=.png", "sha256": "2ab7e4e5d16f95d91d9d30136df684036555fb039aa00ee48d57d56fa584a4ba", "size": 1606}}, "preferredSigner": "ab90cc1d15f285e7c4de9b0812f1a475e18b765894d70a47245e6bed2297d3b5"}, "versions": {"d04291f89d770a617b5b60c9d91a3918244819334b9e68def31c624335dcc69c": {"added": 1786866775484, "file": {"name": "/com.katoaapps.openminilaunch_5.apk", "sha256": "d04291f89d770a617b5b60c9d91a3918244819334b9e68def31c624335dcc69c", "size": 10766880, "ipfsCIDv1": "bafybeiaq3ionyqgmtarbupsamhi4zco2yfpcxaxxfdln7ibigzsf73jlsq"}, "src": {"name": "/com.katoaapps.openminilaunch_5_src.tar.gz", "sha256": "d517e09bb33135fb59aa93162d56c96eae9c16da082ebcb45147f044f7ed54b3", "size": 483077}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.5.0", "versionCode": 5, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["ab90cc1d15f285e7c4de9b0812f1a475e18b765894d70a47245e6bed2297d3b5"]}, "usesPermission": [{"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.CALL_PHONE"}, {"name": "android.permission.EXPAND_STATUS_BAR"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.READ_MEDIA_VISUAL_USER_SELECTED"}, {"name": "com.katoaapps.openminilaunch.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Initial F-Droid release of MinkLauncher Open. Includes instant physical-keyboard input, the Magic Box, configurable shortcuts, local to-dos, contact actions, local filename search, selected-folder document search, query history, and light/dark themes. No ads, trackers, accounts, or proprietary integrations.\n"}}}}, "com.likhithpraveenk.storii": {"metadata": {"lastUpdated": 1786866775484, "description": {"en-US": "Storii is a modern, feature-rich client for <a href=\"https://github.com/advplyr/audiobookshelf\">Audiobookshelf</a> that focuses on a clean user experience and maintainable architecture.\n\n<b>Features:</b>\n\n- Stream audiobooks & podcasts with background playback and automatic progress sync\n- Download books for offline listening – fully functional download manager with pause/resume\n- Multi-user and multi-server support, including OIDC authentication\n- Personalized home screen with continue listening, recent series, and more\n- Advanced library browsing: filters, sorting, series grouping, and search\n- Customizable player: sleep timer, playback speed, chapter navigation, listening history, and bookmarks\n- Appearance settings: light/dark/system themes, dynamic colors, pure black mode, custom fonts, font scaling\n- Flexible navigation: reorder bottom tabs, choose startup screen, label behavior\n- Server admin tools (admin users): trigger library scans, re-scan/re-match items\n"}}, "versions": {"a45b45052055a2e40860460bb922d7d31464b44bd14ed565bcaef0ed8c924c26": {"added": 1786866775484, "file": {"name": "/com.likhithpraveenk.storii_5053.apk", "sha256": "a45b45052055a2e40860460bb922d7d31464b44bd14ed565bcaef0ed8c924c26", "size": 27162608, "ipfsCIDv1": "bafybeig44vr7nqmlqqbn6gsvtispxpheovb4ggnll46nido5l6tnle7usm"}, "src": {"name": "/com.likhithpraveenk.storii_5053_src.tar.gz", "sha256": "46398de70ea17392c8e4567d56c15d653d09d4c27ee15fc5717e76280b0f67da", "size": 68201379}, "manifest": {"nativecode": ["x86_64"], "versionName": "0.6.0", "versionCode": 5053, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["94732296445ca0c2511fac8a6f744b87fed67ced37d16428ef88985e0ba8676a"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.VIBRATE"}, {"name": "com.likhithpraveenk.storii.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "bfbcf7e95943ac4d922ca10c96f0de038fc8c2f40a6e7d9d5b5dee2e2a24a33f": {"added": 1786866775484, "file": {"name": "/com.likhithpraveenk.storii_5052.apk", "sha256": "bfbcf7e95943ac4d922ca10c96f0de038fc8c2f40a6e7d9d5b5dee2e2a24a33f", "size": 25639937, "ipfsCIDv1": "bafybeihm5jyknxycdooiey3co2tzh5e7r2nd7twotydnj4ugdez5csvhsy"}, "src": {"name": "/com.likhithpraveenk.storii_5052_src.tar.gz", "sha256": "22255c68f9c26bd5c3adcb5e921fb3cac07bbec7ade3649f8bb52442a009a3e9", "size": 68201003}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.6.0", "versionCode": 5052, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["94732296445ca0c2511fac8a6f744b87fed67ced37d16428ef88985e0ba8676a"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.VIBRATE"}, {"name": "com.likhithpraveenk.storii.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "09ba85b374a07e39d65968e59db072d5f9e6ce339e64de5ea82f10a9799959b6": {"added": 1786866775484, "file": {"name": "/com.likhithpraveenk.storii_5051.apk", "sha256": "09ba85b374a07e39d65968e59db072d5f9e6ce339e64de5ea82f10a9799959b6", "size": 23527779, "ipfsCIDv1": "bafybeif7xrunamitzq3hwxxrm5dikw6acarblglihdvt5chofqryomei5u"}, "src": {"name": "/com.likhithpraveenk.storii_5051_src.tar.gz", "sha256": "625b394e1092f84393b99fd3d726283d33068e17eaa229ec35ee25ba31f545cf", "size": 68200357}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "0.6.0", "versionCode": 5051, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["94732296445ca0c2511fac8a6f744b87fed67ced37d16428ef88985e0ba8676a"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.VIBRATE"}, {"name": "com.likhithpraveenk.storii.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.limecore.nexus": {"metadata": {"lastUpdated": 1786749285772, "icon": {"en-US": {"name": "/icons/com.limecore.nexus.29.png"}}}, "versions": {"68330ac624744023919409faf5d899a92c0d683fa5620c76698cc95284119d33": null, "45d9dac205d6915f4ea985a2bd7e27959a882d92235294b3bf64dd45e4882955": {"added": 1786749285772, "file": {"name": "/com.limecore.nexus_29.apk", "sha256": "45d9dac205d6915f4ea985a2bd7e27959a882d92235294b3bf64dd45e4882955", "size": 9127108, "ipfsCIDv1": "bafybeih42ay5g5va2cuvaqfhcv2ug2fx4cnxskxzytyvysuneoubuwizme"}, "src": {"name": "/com.limecore.nexus_29_src.tar.gz", "sha256": "bb6c0f0a8ef8e09c92f44220760971d6976e17538c2709830de9f4dc2aee13af", "size": 52816402}, "manifest": {"versionName": "1.9.1", "versionCode": 29, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["27e17d1fba157da6eacde58485aab56066200cc45ad00bd518d828367ec155e4"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.limecore.nexus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "The app connects to Supabase (cloud sync), Google (sign-in), third-party finance data providers, and a hosted AI service."}}, "whatsNew": {"ar": "إصلاح خلل في Life Score.\n\nكانت الميزانية الشهرية تُقاس مقابل أسبوع واحد فقط، فتظهر دفعة واحدة — اشتراك أو إيجار أو تأمين — كتجاوز يفوق أربعة أضعاف ويهبط بـ Life Score إلى الصفر رغم التزامك التام بالميزانية.\n\nصار الالتزام يُحسب من بداية الشهر مقابل الحد الشهري.\n", "de-DE": "Behebt einen Life-Score-Fehler.\n\nEin Monatsbudget wurde an einer einzelnen Woche gemessen, sodass eine Einmalzahlung — ein Abo, Miete, Versicherung — als mehr als 4-fache Überschreitung galt und den Life Score auf 0 drückte, obwohl das Monatsbudget exakt eingehalten war.\n\nDie Budgettreue wird jetzt seit Monatsbeginn gegen das Monatslimit gerechnet.\n", "en-US": "Fixes a Life Score bug.\n\nA monthly budget was being measured against a single week, so one lump-sum payment — a subscription, rent, insurance — could read as over 4x over budget and drop your Life Score to 0 even when you were exactly on budget for the month.\n\nBudget adherence is now month-to-date against your monthly limit, so spending 22 of a 22 budget scores full marks.\n", "es-ES": "Corrige un error de Life Score.\n\nUn presupuesto mensual se medía contra una sola semana, así que un pago único — una suscripción, el alquiler, un seguro — podía marcar más de 4x por encima y dejar tu Life Score en 0 aun estando exactamente dentro del presupuesto.\n\nAhora la adherencia se calcula desde el inicio del mes contra el límite mensual.\n", "fi-FI": "Korjaa Life Score -virheen.\n\nKuukausibudjettia verrattiin yhteen viikkoon, joten yksi kertamaksu — tilaus, vuokra, vakuutus — saattoi näyttää yli nelinkertaiselta ylitykseltä ja pudottaa Life Scoren nollaan, vaikka olit tarkalleen budjetissa.\n\nBudjetin seuranta lasketaan nyt kuukauden alusta kuukausirajaa vasten.\n", "fr-FR": "Corrige un bug du Life Score.\n\nUn budget mensuel était comparé à une seule semaine : un paiement unique — abonnement, loyer, assurance — pouvait afficher plus de 4x de dépassement et faire tomber le Life Score à 0 alors que le budget du mois était exactement respecté.\n\nLe suivi se fait désormais depuis le début du mois, face à la limite mensuelle.\n", "hi": "Life Score की एक बग ठीक की गई।\n\nमासिक बजट को केवल एक सप्ताह के मुक़ाबले मापा जा रहा था, इसलिए एक ही बार का भुगतान — सब्सक्रिप्शन, किराया, बीमा — 4 गुना से अधिक ओवर-बजट दिख सकता था और Life Score को 0 कर देता था, जबकि आप बिल्कुल बजट में थे।\n\nअब बजट पालन महीने की शुरुआत से मासिक सीमा के मुक़ाबले गिना जाता है।\n", "id": "Memperbaiki bug Life Score.\n\nAnggaran bulanan diukur terhadap satu minggu saja, sehingga satu pembayaran sekaligus — langganan, sewa, asuransi — bisa terbaca lebih dari 4x melebihi anggaran dan menjatuhkan Life Score ke 0 padahal kamu tepat sesuai anggaran.\n\nKini kepatuhan anggaran dihitung sejak awal bulan terhadap batas bulanan.\n", "pt-BR": "Corrige um erro no Life Score.\n\nUm orçamento mensal era medido contra uma única semana, então um pagamento único — assinatura, aluguel, seguro — podia marcar mais de 4x acima e zerar o Life Score mesmo com o mês exatamente dentro do orçamento.\n\nA aderência agora é calculada do início do mês contra o limite mensal.\n", "zh-CN": "修复 Life Score 的一个缺陷。\n\n此前月度预算被拿来与单独一周比较，因此一笔一次性支出（订阅、房租、保险）可能显示为超支 4 倍以上，即使你当月完全没有超预算，Life Score 也会归零。\n\n现在预算执行度按当月累计支出与月度上限计算。\n"}}}}, "com.ltrademark.hourly": {"metadata": {"lastUpdated": 1786866775484, "donate": ["https://github.com/sponsors/Ltrademark"]}, "versions": {"022878eacb76ba75ae75776ba4de9fb28984ed51aaa09426747f8135e2d69e7a": null, "01397bdb5462c276b4d9294cab2bd32b1ae24653f94df5d0f08812bc836a2219": {"added": 1786866775484, "file": {"name": "/com.ltrademark.hourly_13.apk", "sha256": "01397bdb5462c276b4d9294cab2bd32b1ae24653f94df5d0f08812bc836a2219", "size": 2156209, "ipfsCIDv1": "bafybeifxvdamayelrawik2ihse2ufjhvfxmygkv4kdwxob2z7ba47bywwu"}, "src": {"name": "/com.ltrademark.hourly_13_src.tar.gz", "sha256": "f6c10c401797cc736228d589b533c1bd2434cda50ad606546b3120ccfc11d9e8", "size": 7121053}, "manifest": {"versionName": "1.81", "versionCode": 13, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["d761b654c5f7a7e0cf7c9930d70946b8fcd00513bc60c719ed0e3fddbc7f9ab4"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM", "maxSdkVersion": 32}, {"name": "com.ltrademark.hourly.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Chimes can now be heard during Do Not Disturb. If you have already allowed HRLY through it in Android's settings, it will be heard from now on. If your device does not offer that, the new \"Ignore Do Not Disturb\" toggle does the same.\n- Custom sounds now play for their full length. Longer ones were cut off after half a second, which shortened the vibration too. Trimming still shortens a sound on purpose.\n- Quiet Hours and pausing still silence chimes either way.\n"}}}}, "com.m57.hermescontrol": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"ad6f7af39d77219b0fe7cb879202aa590c58be72f6cad86ab4e5b1107b6b4c3e": {"added": 1786866775484, "file": {"name": "/com.m57.hermescontrol_1220.apk", "sha256": "ad6f7af39d77219b0fe7cb879202aa590c58be72f6cad86ab4e5b1107b6b4c3e", "size": 11741426, "ipfsCIDv1": "bafybeicq3kru3utit33msp23rgpqhnk5qgfdsipkdbksc3xwaoxzibltji"}, "src": {"name": "/com.m57.hermescontrol_1220_src.tar.gz", "sha256": "e219ca960d229d8f4369539937234ee73e98530c88a8d0b67520e4fa41a31839", "size": 831480}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.22.0", "versionCode": 1220, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["b512258d20fd4e65a1ea4f62623bd4f18700c1ce48c302ae0fbb5e31736d192f"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "com.m57.hermescontrol.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.markleaf.notes": {"metadata": {"lastUpdated": 1786866775484, "summary": {"zh-CN": "本地优先的 Markdown 笔记，支持标签、搜索与文件导出"}, "description": {"de-DE": "Markleaf ist eine lokal-first Markdown-Notiz-App für Android.\n\nSchreibe einfaches Markdown, organisiere mit Inline-Tags, suche sofort lokal und behalte deine Notizen unter deiner Kontrolle. Markleaf speichert Notizen in einer lokalen Room-Datenbank und deklariert keine INTERNET-Berechtigung.\n\nSchreiben und Vorschau:\n\n* Live-Markdown-Vorschau mit Live-Syntaxfärbung\n* GFM-Tabellen, Checkboxen, Zitate, Callouts (> [!NOTE] …)\n* Syntax-Highlighting für Codeblöcke in 10 Sprachen\n* Fußnoten-Sprung Referenz ↔ Definition, Wikilinks und Backlinks\n* Smarte Formatierung, um Auswahl oder Wort in Fett/Kursiv/Durchgestrichen/Code einzuschließen\n* Fokusmodus, Wort- und Lesezeit-Statistik, Suchen und Ersetzen innerhalb einer Notiz\n\nOrdnen und Navigieren:\n\n* Schreibe einfach #Tags in den Text für automatische Indizierung (keine Ordner)\n* Quick Switcher und SQLite-FTS-Volltextsuche\n* Anheften, Archivieren, Papierkorb und Wiederherstellen\n\nSync und Import (No-Cloud):\n\n* Spiegle jede Notiz als .md-Datei in einen per SAF gewählten Ordner\n* Importiere externe .md / .txt-Dateien per Öffnen oder Teilen\n* Markdown-Export einzelner und aller Notizen, plus System-Teilen\n\nDesign und Barrierefreiheit:\n\n* Homescreen-Widget, biometrische Sperre, Option zum Blockieren von Screenshots\n* Hell / dunkel / Material You, Tablet-Layout mit zwei Spalten\n* Oberfläche in 7 Sprachen (Koreanisch, Englisch, Spanisch, Japanisch, Französisch, Deutsch, Vereinfachtes Chinesisch)\n\nDatenschutz und Verteilung:\n\n* Kein Konto, kein Markleaf-Server\n* Keine Analytik, Werbung, kein Tracking, kein Firebase, kein proprietäres Crash-Reporting-SDK\n* Keine INTERNET-Berechtigung, Android Auto-Backup deaktiviert\n* Benutzerdaten verlassen das Gerät nur durch explizite, vom Betriebssystem vermittelte Aktionen wie Export, Teilen, Öffnen externer Links oder einen vom Benutzer gewählten SAF-Ordner\n", "en-US": "Markleaf is a local-first Markdown note app for Android.\n\nWrite plain Markdown, organize with inline tags, search instantly, and keep your notes under your control. Markleaf stores notes in a local Room database and does not declare the INTERNET permission.\n\nWriting and preview:\n\n* Live Markdown preview with live syntax coloring\n* GFM tables, checkboxes, blockquotes, callouts (> [!NOTE] …)\n* Code block syntax highlighting for 10 languages\n* Footnote ref ↔ def jump, wikilinks and backlinks\n* Smart formatting to wrap a selection or word in bold/italic/strikethrough/code\n* Focus mode, word and reading-time stats, find and replace within a note\n\nOrganizing and navigating:\n\n* Just write #tags in the body for automatic indexing (no folders)\n* Quick switcher and SQLite FTS full-text search\n* Pin, archive, trash, and restore flows\n\nSync and import (No-Cloud):\n\n* Mirror each note as a .md file to a folder you pick via SAF\n* Import external .md / .txt files by opening or sharing them in\n* Single-note and all-notes Markdown export, plus system share\n\nDesign and accessibility:\n\n* Home screen widget, biometric lock, screenshot blocking option\n* Light / dark / Material You, tablet two-pane layout\n* UI in 7 languages (Korean, English, Spanish, Japanese, French, German, Simplified Chinese)\n\nPrivacy and distribution:\n\n* No account, no Markleaf server\n* No analytics, ads, tracking, Firebase, or proprietary crash reporting SDK\n* No INTERNET permission, Android Auto Backup disabled\n* User data leaves the device only through explicit OS-mediated actions such as export, share, external link opening, or a user-selected SAF folder\n", "es-ES": "Markleaf es una aplicación de notas Markdown local-first para Android.\n\nEscribe en Markdown estándar, organiza con etiquetas en línea, busca al instante y mantén tus notas bajo tu control. Markleaf guarda las notas en una base de datos Room local y no declara el permiso INTERNET.\n\nEscritura y vista previa:\n\n* Vista previa de Markdown en tiempo real con coloreado de sintaxis en vivo\n* Tablas GFM, casillas de verificación, citas, llamadas (> [!NOTE] …)\n* Resaltado de sintaxis de bloques de código para 10 lenguajes\n* Salto referencia ↔ definición de notas al pie, wikilinks y retroenlaces\n* Formato inteligente para envolver una selección o palabra en negrita/cursiva/tachado/código\n* Modo concentración, estadísticas de palabras y tiempo de lectura, buscar y reemplazar dentro de una nota\n\nOrganización y navegación:\n\n* Solo escribe #etiquetas en el cuerpo para una indexación automática (sin carpetas)\n* Cambiador rápido (quick switcher) y búsqueda de texto completo SQLite FTS\n* Fijar, archivar, papelera y restaurar\n\nSincronización e importación (No-Cloud):\n\n* Replica cada nota como un archivo .md en una carpeta que elijas mediante SAF\n* Importa archivos .md / .txt externos abriéndolos o compartiéndolos\n* Exportación Markdown de una nota o de todas, además de compartir del sistema\n\nDiseño y accesibilidad:\n\n* Widget de pantalla de inicio, bloqueo biométrico, opción de bloqueo de capturas de pantalla\n* Claro / oscuro / Material You, diseño de dos paneles para tablets\n* Interfaz en 7 idiomas (coreano, inglés, español, japonés, francés, alemán, chino simplificado)\n\nPrivacidad y distribución:\n\n* Sin cuenta, sin servidor de Markleaf\n* Sin analíticas, anuncios, rastreo, Firebase ni SDK propietario de informes de fallos\n* Sin permiso INTERNET, copia de seguridad automática de Android desactivada\n* Los datos del usuario solo salen del dispositivo mediante acciones explícitas del sistema operativo, como exportar, compartir, abrir un enlace externo o una carpeta SAF seleccionada por el usuario\n", "fr-FR": "Markleaf est une application de notes Markdown locale d'abord (local-first) pour Android.\n\nRédigez en Markdown brut, organisez avec des étiquettes intégrées, recherchez instantanément et gardez le contrôle de vos notes. Markleaf stocke vos notes dans une base de données Room locale et ne demande pas la permission INTERNET.\n\nÉcriture et aperçu :\n\n* Aperçu Markdown en temps réel avec coloration syntaxique en direct\n* Tableaux GFM, cases à cocher, citations, encadrés (> [!NOTE] …)\n* Coloration syntaxique des blocs de code pour 10 langages\n* Saut référence ↔ définition des notes de bas de page, liens wiki et rétroliens\n* Mise en forme intelligente pour entourer une sélection ou un mot de gras/italique/barré/code\n* Mode focus, statistiques de mots et de temps de lecture, rechercher et remplacer dans une note\n\nOrganisation et navigation :\n\n* Écrivez simplement des #étiquettes dans le corps pour une indexation automatique (sans dossiers)\n* Changeur rapide (quick switcher) et recherche plein texte SQLite FTS\n* Épingler, archiver, corbeille et restauration\n\nSynchronisation et import (No-Cloud) :\n\n* Miroir de chaque note en fichier .md vers un dossier choisi via SAF\n* Import de fichiers .md / .txt externes en les ouvrant ou en les partageant\n* Export Markdown d'une note ou de toutes les notes, plus partage système\n\nDesign et accessibilité :\n\n* Widget d'écran d'accueil, verrouillage biométrique, option de blocage des captures d'écran\n* Clair / sombre / Material You, disposition à deux volets pour tablettes\n* Interface en 7 langues (coréen, anglais, espagnol, japonais, français, allemand, chinois simplifié)\n\nConfidentialité et distribution :\n\n* Aucun compte, aucun serveur Markleaf\n* Pas de statistiques, publicités, suivi, Firebase ou SDK de rapport de crash propriétaire\n* Aucune permission INTERNET, sauvegarde automatique Android désactivée\n* Les données ne quittent l'appareil que par des actions explicites de l'OS, telles que l'exportation, le partage, l'ouverture de liens externes ou un dossier SAF sélectionné par l'utilisateur\n", "ja-JP": "Markleaf は Android 向けのローカルファースト Markdown ノートアプリです。\n\nシンプルな Markdown で書き、本文内のタグで整理し、ローカルで即座に検索でき、ノートはあなたの手元に残ります。Markleaf はノートをローカルの Room データベースに保存し、INTERNET 権限を宣言しません。\n\n作成とプレビュー:\n\n* リアルタイム Markdown プレビューとライブのシンタックスカラーリング\n* GFM テーブル、チェックボックス、引用、コールアウト(> [!NOTE] …)\n* 10 言語に対応したコードブロックのシンタックスハイライト\n* 脚注の参照 ↔ 定義ジャンプ、Wikilink とバックリンク\n* 選択範囲や単語を太字/斜体/取り消し線/コードで囲むスマートフォーマット\n* フォーカスモード、単語数・読了時間の統計、ノート内の検索・置換\n\n整理と探索:\n\n* 本文に #タグ を書くだけで自動インデックス(フォルダ不要)\n* クイックスイッチャーと SQLite FTS の全文検索\n* ピン留め、アーカイブ、ゴミ箱、復元のフロー\n\n同期と取り込み(No-Cloud):\n\n* SAF で選んだフォルダに各ノートを .md ファイルとしてミラーリング\n* 外部の .md / .txt ファイルを開く・共有で取り込み\n* 単一ノートおよび全ノートの Markdown エクスポート、システム共有\n\nデザインとアクセシビリティ:\n\n* ホーム画面ウィジェット、生体認証ロック、スクリーンショット遮断オプション\n* ライト / ダーク / Material You、タブレット向け 2ペインレイアウト\n* 7 言語の UI(韓国語、英語、スペイン語、日本語、フランス語、ドイツ語、簡体字中国語)\n\nプライバシーと配布:\n\n* アカウントなし、Markleaf サーバーなし\n* アナリティクス、広告、トラッキング、Firebase、独自クラッシュレポート SDK なし\n* INTERNET 権限なし、Android 自動バックアップ無効\n* ユーザーデータはエクスポート、共有、外部リンクの起動、ユーザー指定の SAF フォルダといった明示的な OS 経由の操作でのみ端末外へ出ます\n", "ko-KR": "Markleaf는 Android용 로컬 우선(local-first) Markdown 메모 앱입니다.\n\n표준 Markdown으로 빠르게 쓰고, 본문 안의 태그로 정리하고, 로컬에서 즉시 검색하세요. 노트는 기기 내부 Room 데이터베이스에 저장되며 Markleaf는 INTERNET 권한을 선언하지 않습니다.\n\n작성과 미리보기:\n\n* 실시간 Markdown 미리보기와 라이브 syntax 컬러링\n* GFM 표, 체크박스, 인용문, 콜아웃(> [!NOTE] …)\n* 10개 언어 코드 블록 syntax highlighting\n* 각주 ref ↔ def 점프, 위키링크와 백링크\n* 선택 영역이나 단어를 굵게/기울임/취소선/코드로 감싸는 스마트 포맷팅\n* 포커스 모드, 단어·읽기 시간 통계, 노트 안에서 찾기·바꾸기\n\n정리와 탐색:\n\n* 본문에 #태그만 쓰면 자동 인덱싱 (폴더 불필요)\n* 빠른 이동(Quick Switcher)과 SQLite FTS 전문 검색\n* 고정, 보관, 휴지통, 복원 흐름\n\n동기화와 가져오기 (No-Cloud):\n\n* 사용자가 선택한 SAF 폴더로 각 노트를 .md 파일로 미러링\n* 외부 .md / .txt 파일을 열기·공유로 가져오기\n* 단일 노트 및 전체 노트 Markdown 내보내기, 시스템 공유\n\n디자인과 접근성:\n\n* 홈 화면 위젯, 생체 인증 잠금, 스크린샷 차단 옵션\n* 라이트 / 다크 / Material You, 태블릿 2-pane 레이아웃\n* 7개 언어 UI (한국어, 영어, 스페인어, 일본어, 프랑스어, 독일어, 중국어 간체)\n\n개인정보와 배포 원칙:\n\n* 계정 없음, Markleaf 서버 없음\n* 분석, 광고, 추적, Firebase, 폐쇄형 크래시 리포팅 SDK 없음\n* INTERNET 권한 없음, Android 자동 백업 제외\n* 데이터는 내보내기, 공유, 외부 링크 열기, 사용자가 선택한 SAF 폴더 같은 명시적 OS 경로를 통해서만 기기 밖으로 이동합니다\n", "zh-CN": "Markleaf 是一款面向 Android 的本地优先 Markdown 笔记应用。\n\n书写纯 Markdown，用内联标签整理，即时搜索，让笔记始终由你掌控。Markleaf 将笔记保存在本地 Room 数据库中，并且不声明 INTERNET 权限。\n\n书写与预览：\n\n* 实时 Markdown 预览，支持实时语法着色\n* GFM 表格、复选框、引用、提示块（> [!NOTE] …）\n* 10 种语言的代码块语法高亮\n* 脚注引用 ↔ 定义跳转、Wiki 链接与反向链接\n* 智能格式化，为选区或单词加上粗体/斜体/删除线/代码\n* 专注模式、词数与阅读时长统计、笔记内查找替换\n\n整理与导航：\n\n* 只需在正文中写 #标签 即可自动索引（无需文件夹）\n* 快速切换与 SQLite FTS 全文搜索\n* 置顶、归档、回收站与恢复流程\n\n同步与导入（No-Cloud）：\n\n* 通过 SAF 选择文件夹，把每篇笔记镜像为 .md 文件\n* 用打开或分享的方式导入外部 .md / .txt 文件\n* 单篇与全部笔记的 Markdown 导出，以及系统分享\n\n设计与无障碍：\n\n* 主屏幕小组件、生物识别锁、屏蔽截屏选项\n* 浅色 / 深色 / Material You，平板双栏布局\n* 7 种语言界面（韩语、英语、西班牙语、日语、法语、德语、简体中文）\n\n隐私与分发：\n\n* 无需账户，没有 Markleaf 服务器\n* 没有分析、广告、跟踪、Firebase 或专有崩溃报告 SDK\n* 不声明 INTERNET 权限，已关闭 Android 自动备份\n* 只有在你明确执行导出、分享、打开外部链接或选择 SAF 文件夹等由系统中介的操作时，用户数据才会离开设备\n"}}, "versions": {"41653b548fca9065589dfe1c66068c74228d1c2a9c8c2c38b5f30e6f43fc772a": null, "2dceb88da3ce4102f591d80b8aa58ccb4bdf03533561f1735c2929e52fe525ef": null, "423b51de05ea664b46917701099f88a013484f1de2db5154f4c5198138277240": {"added": 1786866775484, "file": {"name": "/com.markleaf.notes_126.apk", "sha256": "423b51de05ea664b46917701099f88a013484f1de2db5154f4c5198138277240", "size": 2926095, "ipfsCIDv1": "bafybeie6t6or46xgixig6czceoslzh4js3exulay2pe3vwo6rjmp3bynwm"}, "src": {"name": "/com.markleaf.notes_126_src.tar.gz", "sha256": "f085e615053c180bd06e01824dce15453543ac3c4940a723c602f439bcdcab3c", "size": 11867610}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.32.4", "versionCode": 126, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["0be97352a650c3d1a3d2332fd18afc44e0c95a4abca347e9250a2b8a7eecf91a"]}, "usesPermission": [{"name": "android.permission.VIBRATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.markleaf.notes.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "Kleine Verbesserungen am Papierkorb: Die Schaltflächen „Wiederherstellen\" und „Löschen\" sind jetzt schlanker, sodass lange Notiztitel auf schmalen Bildschirmen mehr Platz behalten, und die Zeilen bleiben beim Wiederherstellen oder Löschen einer Notiz stabil.\n", "en-US": "Small trash-screen refinements: the Restore and Delete buttons are now slimmer, so long note titles keep more room on narrow screens, and trash rows stay stable when you restore or delete a note.\n", "es-ES": "Pequeños refinamientos en la papelera: los botones «Restaurar» y «Eliminar» ahora son más finos, así los títulos largos conservan más espacio en pantallas estrechas, y las filas se mantienen estables al restaurar o eliminar una nota.\n", "fr-FR": "Quelques raffinements de la corbeille : les boutons « Restaurer » et « Supprimer » sont désormais plus fins, ce qui laisse plus de place aux titres longs sur les écrans étroits, et les lignes restent stables lorsque vous restaurez ou supprimez une note.\n", "ja-JP": "ゴミ箱画面を改良しました。復元・削除ボタンがよりスリムになり、狭い画面でも長いノートタイトルに十分なスペースが確保されます。また、ノートを復元・削除してもリストの行が安定して保たれます。\n", "ko-KR": "휴지통 화면을 다듬었습니다. 복원·삭제 버튼이 더 슬림해져 좁은 화면에서 긴 노트 제목이 더 많은 공간을 차지하고, 노트를 복원하거나 삭제할 때 목록 행이 안정적으로 유지됩니다.\n", "zh-CN": "优化了回收站界面：恢复和删除按钮更紧凑，窄屏上长笔记标题能保留更多空间；恢复或删除笔记时，列表行保持稳定。\n"}}, "2157dab5a0a77fcd0b818328bdff7c037e819568c88473844911b6e69ecc0e0f": {"added": 1786749285772, "file": {"name": "/com.markleaf.notes_125.apk", "sha256": "2157dab5a0a77fcd0b818328bdff7c037e819568c88473844911b6e69ecc0e0f", "size": 2926095, "ipfsCIDv1": "bafybeib2huz5qb2jexevz6kup2qxwdjbmn64gftdun26knlye6667bapsq"}, "src": {"name": "/com.markleaf.notes_125_src.tar.gz", "sha256": "10ba00880edd5cdfa18943711c9bebba72e640045f003d55cf23619f78310e4f", "size": 11865560}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.32.3", "versionCode": 125, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["0be97352a650c3d1a3d2332fd18afc44e0c95a4abca347e9250a2b8a7eecf91a"]}, "usesPermission": [{"name": "android.permission.VIBRATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.markleaf.notes.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "Die Schaltflächen „Wiederherstellen“ und „Löschen“ im Papierkorb werden nicht mehr durch lange Notiztitel aus dem Bildschirm gedrängt. Sie bleiben immer vollständig rechts sichtbar, und der Titel wird stattdessen mit Auslassungspunkten gekürzt – so lässt sich eine Notiz zuverlässig löschen, egal wie lang ihr Name ist.\n", "en-US": "Recover and Delete buttons in the trash bin no longer get pushed off-screen by long note titles. They now stay fully visible on the right, and the title shrinks with an ellipsis instead — so deleting a note works reliably no matter how long its name is.\n", "es-ES": "Los botones «Restaurar» y «Eliminar» de la papelera ya no se salen de la pantalla con los títulos de notas largos. Ahora permanecen siempre totalmente visibles a la derecha, y el título se recorta con puntos suspensivos. Eliminar una nota funciona de forma fiable sin importar lo largo que sea su nombre.\n", "fr-FR": "Les boutons « Restaurer » et « Supprimer » de la corbeille ne sont plus repoussés hors de l'écran par les titres de notes trop longs. Ils restent toujours entièrement visibles à droite, et le titre est tronqué avec des points de suspension. Supprimer une note fonctionne donc de manière fiable, quelle que soit la longueur de son nom.\n", "ja-JP": "ゴミ箱の復元・削除ボタンが、長いノートタイトルによって画面外に押し出されることがなくなりました。ボタンは常に画面右側に完全に表示され、タイトルは省略記号で縮小されます。タイトルがどんなに長くても、ノートを確実に削除できます。\n", "ko-KR": "휴지통의 복원·삭제 버튼이 긴 노트 제목 때문에 화면 밖으로 밀려나지 않습니다. 이제 버튼은 항상 화면 오른쪽에 온전히 보이고, 제목은 넘치면 줄임표로 줄어듭니다. 제목이 아무리 길어도 노트를 정확히 삭제할 수 있습니다.\n", "zh-CN": "回收站中的“恢复”和“删除”按钮不再被过长的笔记标题挤出屏幕。按钮现在始终完整显示在右侧，标题过长时会以省略号截断。无论标题多长，都可以可靠地删除笔记。\n"}}, "3a9be6f126343683e4c53faeb898e33df31c958fa478b5f21850634a83a4483b": {"whatsNew": {"zh-CN": "编辑器中的两处配色修复。引用块和分隔线此前使用固定的灰色，不随主题变化，在浅色页面上的对比度低于正文保持可读所需的程度；现在它们会像编辑器中其他结构标记一样跟随主题。标记笔记已锁定为预览模式的琥珀色徽章，在浅色顶栏上也过淡，现已加深。深色主题不变。\n"}}}}, "com.matedroid": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"43890cb39f77bc7843cdd67ef8a0d8f1144c00c2254702d723c0aa2162996a92": null, "c829b27836e541c2df4253f645088d31cf9e461c4b92370e1aecb4031295f405": {"added": 1786749285772, "file": {"name": "/com.matedroid_178651792.apk", "sha256": "c829b27836e541c2df4253f645088d31cf9e461c4b92370e1aecb4031295f405", "size": 17875580, "ipfsCIDv1": "bafybeian7fobzsmorhgt5t3ujvhhvuthqdfjm3viksgora5nkhu6jhlfze"}, "src": {"name": "/com.matedroid_178651792_src.tar.gz", "sha256": "1b3fe6caec8c62c10ff42a12e105e84579c35ec970d320321de0fb71e206daa2", "size": 12047162}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.10.1", "versionCode": 178651792, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["92b34b1e456504fbacafcc3505d132c630eac75f0bd96878d4b769b20cb71a5b"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.POST_PROMOTED_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.matedroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"ca-ES": "Més ràpida, més lleugera i més precisa: millor rendiment, menys consum de bateria i moltes correccions per a qui fa servir milles.\n\nCanvis:\n- Desplaçament, gràfics i pantalles més fluids\n- Les comprovacions s'alenteixen amb el cotxe aparcat\n- Sincronització incremental en lloc de completa\n\nCorregit:\n- Eficiència, velocitat i distàncies errònies en milles\n- Notificació de càrrega inestable amb dos cotxes\n- Errors de mapa, botó enrere i gràfics\n", "en-US": "Faster, lighter and more accurate: a broad performance pass, smarter background checks that save battery, and many fixes for miles users.\n\nChanged:\n- Smoother scrolling, charts and screens\n- Background checks slow down while the car is parked\n- Syncs are incremental instead of full re-downloads\n\nFixed:\n- Wrong efficiency, speed and distances for miles users\n- Charging notification flickering with two cars\n- Map, back button and chart glitches\n", "es-ES": "Más rápida, más ligera y más precisa: mejor rendimiento, menos consumo de batería y muchas correcciones para quienes usan millas.\n\nCambios:\n- Desplazamiento, gráficos y pantallas más fluidos\n- Las comprobaciones se ralentizan con el coche aparcado\n- Sincronización incremental en vez de completa\n\nCorregido:\n- Eficiencia, velocidad y distancias erróneas en millas\n- Notificación de carga inestable con dos coches\n- Fallos de mapa, botón atrás y gráficos\n", "it-IT": "Più veloce, più leggera e più precisa: prestazioni migliorate, meno consumo di batteria e tante correzioni per chi usa le miglia.\n\nModifiche:\n- Scorrimento, grafici e schermate più fluidi\n- I controlli in background rallentano ad auto parcheggiata\n- Sincronizzazione incrementale invece che completa\n\nCorrezioni:\n- Efficienza, velocità e distanze errate in miglia\n- Notifica di ricarica instabile con due auto\n- Problemi di mappa, tasto indietro e grafici\n", "zh-CN": "更快、更轻、更准确。图表、列表和小组件的全面性能优化，后台检查更智能以节省电量，并修复了大量英里单位相关的问题。\n\n变更：\n- 滚动、图表和界面更流畅\n- 车辆停放时后台检查频率降低\n- 同步改为增量同步，不再全量重新下载\n\n修复：\n- 英里单位下能耗、速度和距离数值错误\n- 双车时充电通知闪烁\n- 地图、返回键和图表的若干问题\n"}}}}, "com.mattermost.rnbeta": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"882620b2e9989006ee63c52b55a0d22e457708786546f9cbf66f708f18378fb3": null, "3df53d62168f50415025316f637da66a7d9fff5536f44cbe5a032f512d593330": null, "3c6ab686b01521bc4646dd3ce9d64ee6ac0cf877cb1a061e664c38a7378905b8": null, "4dcd826fd8e0b512020f59a936cb5ae827f2d93e8282b50c538ea6ee49d6952a": null, "d5f70ee53a38f4c80cab0a790bdd8acd6bd1eeb3537ceecf0c65bfbbcdd30add": {"added": 1786749285772, "file": {"name": "/com.mattermost.rnbeta_79604.apk", "sha256": "d5f70ee53a38f4c80cab0a790bdd8acd6bd1eeb3537ceecf0c65bfbbcdd30add", "size": 112785007, "ipfsCIDv1": "bafybeifeb6at7d3x7tlounjqn5lv5mphahdozlw3hyblexppdxhsh7c2z4"}, "src": {"name": "/com.mattermost.rnbeta_79604_src.tar.gz", "sha256": "9b947b8a7588ac014f09ef53e7b394e6cb16e66b39238babb2d0263566bbb7d8", "size": 228397398}, "manifest": {"nativecode": ["x86_64"], "versionName": "2.43.0", "versionCode": 79604, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["1ec651d68a5163ef4d2bba3be6bca4a18cdf2fc1f532ab0d6620dc956a4434d7"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "com.mattermost.rnbeta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}], "usesPermissionSdk23": [{"name": "android.permission.VIBRATE"}]}}, "9166ffad2f662cecce99cd3bc1d52c70a8361f6b3a25641c18054e880df6ba17": {"added": 1786749285772, "file": {"name": "/com.mattermost.rnbeta_79603.apk", "sha256": "9166ffad2f662cecce99cd3bc1d52c70a8361f6b3a25641c18054e880df6ba17", "size": 109639375, "ipfsCIDv1": "bafybeifsrpk6u73o6jixif74424qlodaixjczqswico7rrjiw3ahyllfiy"}, "src": {"name": "/com.mattermost.rnbeta_79603_src.tar.gz", "sha256": "77bfeba8944b14e8e250b7d0dce49523dcb516692c412b7634ec21bb53eefc96", "size": 228399872}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "2.43.0", "versionCode": 79603, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["1ec651d68a5163ef4d2bba3be6bca4a18cdf2fc1f532ab0d6620dc956a4434d7"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "com.mattermost.rnbeta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}], "usesPermissionSdk23": [{"name": "android.permission.VIBRATE"}]}}, "8810c5d4581cecbf8c04e43a4a151f764077b620a5a824438d5544263fa1ce8c": {"added": 1786749285772, "file": {"name": "/com.mattermost.rnbeta_79602.apk", "sha256": "8810c5d4581cecbf8c04e43a4a151f764077b620a5a824438d5544263fa1ce8c", "size": 111388175, "ipfsCIDv1": "bafybeibajc5mxq7bz727sbrxvyrsxunieng6aelb4dab33ktkzab245lcy"}, "src": {"name": "/com.mattermost.rnbeta_79602_src.tar.gz", "sha256": "8a029194a78a8f5e243a76349e3a087ed905c154f73a706cfe02b580e1b15968", "size": 228381374}, "manifest": {"nativecode": ["x86"], "versionName": "2.43.0", "versionCode": 79602, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["1ec651d68a5163ef4d2bba3be6bca4a18cdf2fc1f532ab0d6620dc956a4434d7"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "com.mattermost.rnbeta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}], "usesPermissionSdk23": [{"name": "android.permission.VIBRATE"}]}}, "6c72d73b7495273d0616256ac4729c34429fd45f7185dc8e23536cb4fa82eb56": {"added": 1786749285772, "file": {"name": "/com.mattermost.rnbeta_79601.apk", "sha256": "6c72d73b7495273d0616256ac4729c34429fd45f7185dc8e23536cb4fa82eb56", "size": 94836495, "ipfsCIDv1": "bafybeia2q2f5jvoihxgy35i2xmtlb5a5bxtrnkykylnyoykczvfgqtdcdm"}, "src": {"name": "/com.mattermost.rnbeta_79601_src.tar.gz", "sha256": "4cd1cd11fadac5878d67c7d855a865f1e2e77b292487764deab7b06ec1521de0", "size": 228383390}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "2.43.0", "versionCode": 79601, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["1ec651d68a5163ef4d2bba3be6bca4a18cdf2fc1f532ab0d6620dc956a4434d7"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "com.mattermost.rnbeta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}], "usesPermissionSdk23": [{"name": "android.permission.VIBRATE"}]}}}}, "com.megamaced.nccollectives": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"cc12cf548ff215ef230ddf45af0e10d36441b4628b8f838875b28b0274d1c880": {"added": 1786749285772, "file": {"name": "/com.megamaced.nccollectives_27.apk", "sha256": "cc12cf548ff215ef230ddf45af0e10d36441b4628b8f838875b28b0274d1c880", "size": 4932230, "ipfsCIDv1": "bafybeigbb2vago32inqkvkecfta7m6jyo5atvgrq62ikxjtvnss5ykk2di"}, "src": {"name": "/com.megamaced.nccollectives_27_src.tar.gz", "sha256": "c019d22496584ea3cec1eba099d39af21f6cb2ec7b2b91e4f832cbfe6a1f3eda", "size": 2663927}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.6.1", "versionCode": 27, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 36}, "signer": {"sha256": ["65402e2578d91727d43c6849da20622d0fad160734c6272d887c167767d44b91"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.megamaced.nccollectives.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Fixes pages and collectives getting stuck showing what they looked like when you first opened them. A page now checks the server for changes every time you open it, so edits made in the web interface or on another device show up. Page lists refresh when you pull down on them and when you return to them, and Settings gains a Sync now button along with when the last sync worked — or why it didn't.\n"}}}}, "com.money.manager.ex": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"b89ca42881c1a38ab4af7402e82a8a26309fd8501d55ede36e18f1fb62dd31fa": null, "59fac8a8fa48adec9cb1d6887de7366111195b4caf527caeb05369c908eb2aaf": {"added": 1786749285772, "file": {"name": "/com.money.manager.ex_1115.apk", "sha256": "59fac8a8fa48adec9cb1d6887de7366111195b4caf527caeb05369c908eb2aaf", "size": 53580867, "ipfsCIDv1": "bafybeib6qfjmgj2n75ksfuv6v6o7urqdbpcdqiosxlcuhvomwelyvpcpte"}, "src": {"name": "/com.money.manager.ex_1115_src.tar.gz", "sha256": "d426715f11bca10d9c46d7930ac3d830654639c282a2f2295bc1340733adce8c", "size": 14818154}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "5.5.10", "versionCode": 1115, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 36}, "signer": {"sha256": ["5070f673f6a62b6634b0b953b0e2821578efc2f17d05bbf3ebe7bb8b24b15a61"]}, "usesPermission": [{"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.money.manager.ex.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "## What's Changed\n* Show account name in transaction list item by @AZKZero in https://github.com/moneymanagerex/android-money-manager-ex/pull/2991\n* Search category recursively\n* Fix visibility of reconciled balance\n* Use concrete MIME for Google Drive export\n* improve Sync with pocketbase by @wolfsolver in https://github.com/moneymanagerex/android-money-manager-ex/pull/3008\n* Various fixes\n\n## New Contributors\n* @AZKZero\n* @PingouinFerreux\n\n**Full Changelog**: https://github.com/moneymanagerex/"}}}}, "com.mskd.flux": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"7537d4f3eb6c81882f60ca1c656ec7b3616a35a9453436eabee6d854c487f067": null, "48a2da1d01bf11e40416b35088e87354384af913566be7b259c7366f0ad3fbda": {"added": 1786866775484, "file": {"name": "/com.mskd.flux_32.apk", "sha256": "48a2da1d01bf11e40416b35088e87354384af913566be7b259c7366f0ad3fbda", "size": 31573411, "ipfsCIDv1": "bafybeicjfsauzlcqfc2z35luiyjvrdigwhk3mieoufxtxyspmhgc63hab4"}, "src": {"name": "/com.mskd.flux_32_src.tar.gz", "sha256": "73d7ae335e11250dd05b847f8606ed9fe8f79ef930e20c358a55b4d99312df16", "size": 45255654}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.7.1", "versionCode": 32, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 37}, "signer": {"sha256": ["8e5fcb643e8137d5ff413b0b33286f17f846d2bf6b24a4e5e392672c3fec8195"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.mskd.flux.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Feature: Choose your favorite navigation style\n- UI: New Icons (actually, it was in the previous version)\n- UI: AMOLED background in some screens\n- Fix: Crashes with the new feature Genres", "fr-FR": "- Feature: Choisissez votre style de navigation préféré\n- UI: Nouvelles icônes (en vrai c'était déjà dans la version précédente)\n- UI: Fond d'écran AMOLED pour certains écrans\n- Fix: Crashs sur la nouvelle fonctionnalité des Genres"}}}}, "com.musheer360.swiftslate": {"metadata": {"lastUpdated": 1786866775484, "icon": {"en-US": {"name": "/icons/com.musheer360.swiftslate.227.png"}}}, "versions": {"fa2c6dcaacef648028ee3d6255c4da5db44ee58458c578179b9330a7b69595cc": null, "ab56830b193d81d89e01387816292525b89d268aa745f043edc4892b3770b217": {"added": 1786866775484, "file": {"name": "/com.musheer360.swiftslate_227.apk", "sha256": "ab56830b193d81d89e01387816292525b89d268aa745f043edc4892b3770b217", "size": 1834714, "ipfsCIDv1": "bafybeib36hhemfzvqlwnep3tamxtxuj6wgbm4hknllymxuwfrzishnob7y"}, "src": {"name": "/com.musheer360.swiftslate_227_src.tar.gz", "sha256": "278340d3a36822e922ec219a1864b49c1ce8691c23cfb07224560fbdf148cf41", "size": 1217810}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.0.76", "versionCode": 227, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["5e0746f51987071969183333d077ea401fa76ba12f7d698d37baac50c76c221c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.musheer360.swiftslate.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Connects to non-free AI services (Google Gemini, Groq, OpenAI-compatible endpoints) for text processing."}}, "whatsNew": {"en-US": "- ci(workflow): add manual dispatch trigger for release recovery\n- i18n(sv): add the 10 strings shipped after the Swedish PR was opened\n- fix(service): harden remaining crash paths, add interrupted-service banner (#125)\n- feat(settings): fetch and pick models from custom endpoints (#136)\n- fix(api): surface real provider errors, stop benching the only key, accept CGNAT endpoints (#138)\n- feat(i18n): add Swedish translation\n"}}}}, "com.nevar.nzik.foss": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"82c396c13d2e3dd77a5e38216cdc7cb70c3e26855e3806a5d8ce8eaf8e32a2fe": null, "057e51b42b4c30861c155f44a3aeac0d34de4e3ed11ede688f139e876061c077": {"added": 1786749285772, "file": {"name": "/com.nevar.nzik.foss_85.apk", "sha256": "057e51b42b4c30861c155f44a3aeac0d34de4e3ed11ede688f139e876061c077", "size": 137421543, "ipfsCIDv1": "bafybeig6tkvzzbokknejcku7ck3txconbakm4c7wztlmf2k52q5xjpwkoy"}, "src": {"name": "/com.nevar.nzik.foss_85_src.tar.gz", "sha256": "4a8ad3918d6a4e20d29f0b16d8ab08f9633c117d7312c5e6dc28e89a397850b2", "size": 173688572}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "7.4.7-f", "versionCode": 85, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["b473991ec08a17996a9ef2405934ce35d333ea38135ebfc1b6f4d2ab953132aa"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.SET_WALLPAPER"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "com.nevar.nzik.foss.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Relies on YouTube/YouTube Music for core playback and metadata. Uses Piped and Invidious as alternative frontends, with instance lists fetched from GitHub. Uses external APIs for lyrics and stats (KuGou, LrcLib, BetterLyrics, Return YouTube Dislike) and Google Translate for lyrics translation. Connects to GitHub for app updates and to Crowdin for translator avatars. Optionally connects to Discord for Rich Presence."}}, "whatsNew": {"en-US": "Hotfix:\n- Temporary revert media3 to 1.10.1"}}}}, "com.nextcloud.android.beta": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"a213107a0f1376969c9ee4befc82081a4a04f824b5a1e513ca4fe7f92d383646": null, "64c1bb78be51f88abb3665ee75825ff1d76e75f5c47a3c86320c4ca90c1b227b": null, "492d15c03df37cf0611884c1bd1c2e8d051ab698ee274341cd38d7dfe7e6987b": {"added": 1786866775484, "file": {"name": "/com.nextcloud.android.beta_20260814.apk", "sha256": "492d15c03df37cf0611884c1bd1c2e8d051ab698ee274341cd38d7dfe7e6987b", "size": 94367267, "ipfsCIDv1": "bafybeiado5o67gav3nub74igf5yhkoy2d4vifxmvo6mplqgpzdifq6ztbm"}, "src": {"name": "/com.nextcloud.android.beta_20260814_src.tar.gz", "sha256": "6c1df467de4e55765f2366c843fb174a98f2328d7596f265e7f011b9ac3c01c7", "size": 43262284}, "manifest": {"nativecode": ["arm64-v8a", "x86_64"], "versionName": "20260814", "versionCode": 20260814, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["384eb42838013bf0928bde0ceeae847cf5c1f69612c9163865ee73fba40732b9"]}, "usesPermission": [{"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.WRITE_CALENDAR"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_SYNC_STATS"}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.WRITE_SYNC_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT", "maxSdkVersion": 25}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.AUTHENTICATE_ACCOUNTS"}, {"name": "android.permission.GET_ACCOUNTS"}, {"name": "android.permission.MANAGE_ACCOUNTS"}, {"name": "android.permission.USE_CREDENTIALS"}, {"name": "com.nextcloud.android.beta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "107064e1e8d033661ca0891777336f79fd6cb4fc162a4e200271715fe7565919": {"added": 1786749285772, "file": {"name": "/com.nextcloud.android.beta_20260813.apk", "sha256": "107064e1e8d033661ca0891777336f79fd6cb4fc162a4e200271715fe7565919", "size": 94367267, "ipfsCIDv1": "bafybeibcf43e7jne6mdvajrfr6rwryzpe55grngfcz7vyynn66bcqkxnea"}, "src": {"name": "/com.nextcloud.android.beta_20260813_src.tar.gz", "sha256": "ef0e9e37e436ef7f3b5b5ce84cb1e4464eea8532bc742a97fb6e9982956b0350", "size": 43261218}, "manifest": {"nativecode": ["arm64-v8a", "x86_64"], "versionName": "20260813", "versionCode": 20260813, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["384eb42838013bf0928bde0ceeae847cf5c1f69612c9163865ee73fba40732b9"]}, "usesPermission": [{"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.WRITE_CALENDAR"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_SYNC_STATS"}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.WRITE_SYNC_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT", "maxSdkVersion": 25}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.AUTHENTICATE_ACCOUNTS"}, {"name": "android.permission.GET_ACCOUNTS"}, {"name": "android.permission.MANAGE_ACCOUNTS"}, {"name": "android.permission.USE_CREDENTIALS"}, {"name": "com.nextcloud.android.beta.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.noorconnect.app": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"185c274ee25dfc216f74afdce4a58535ba58eebb1e07bf6663a7a51a6afec882": {"added": 1786866775484, "file": {"name": "/com.noorconnect.app_7.apk", "sha256": "185c274ee25dfc216f74afdce4a58535ba58eebb1e07bf6663a7a51a6afec882", "size": 111841756, "ipfsCIDv1": "bafybeihkjrko3o7sy2rus3y7kyojcskfem5br6trmniu6wwf5tkalq4fve"}, "src": {"name": "/com.noorconnect.app_7_src.tar.gz", "sha256": "1b9529cb3ccda9fed6c105789a8752b060be3949d64064653f57ef5918c2527b", "size": 275048542}, "manifest": {"versionName": "2.2.0", "versionCode": 7, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["227aecfe91c33dc5bbe2d6fb632a9411f433475fe69588651a7e9b207d9b936c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.ACTIVITY_RECOGNITION"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "com.noorconnect.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Connects to third-party web services for Islamic content including prayer times (aladhan.com), Quran text (alquran.cloud), audio recitations (quranicaudio.com), radio streams, and live streaming. No tracking or analytics SDKs present."}}}}}, "com.omaawr.tuisku": {"metadata": {"added": 1786866775484, "categories": ["Note"], "changelog": "https://github.com/omaawr/tuisku/releases", "issueTracker": "https://github.com/omaawr/tuisku/issues", "lastUpdated": 1786866775484, "license": "GPL-3.0-only", "sourceCode": "https://github.com/omaawr/tuisku", "screenshots": {"phone": {"en-US": [{"name": "/com.omaawr.tuisku/en-US/phoneScreenshots/1.png", "sha256": "1691af327fe584be652548e059786160628c7ed95b16561e6dbdb885cb045939", "size": 48826}, {"name": "/com.omaawr.tuisku/en-US/phoneScreenshots/2.png", "sha256": "266d9443cdc3c78ebdeef5e67fb8857cb864a28baa8af9ac240d0802b3008c12", "size": 53807}, {"name": "/com.omaawr.tuisku/en-US/phoneScreenshots/3.png", "sha256": "38b82eb942c5b34f1c66d671c85ff8da82728f5cd38f807d2a28c4c0bd67920b", "size": 34081}, {"name": "/com.omaawr.tuisku/en-US/phoneScreenshots/4.png", "sha256": "b64f0bf2ef08c874562d6ee3631b61bde9b1cebd81cc6d518133366fcb9db25f", "size": 105118}]}}, "authorName": "Omar", "authorWebSite": "https://omawr.pages.dev", "name": {"en-US": "Tuisku"}, "summary": {"en-US": "A simple and lightweight encrypted notes app"}, "description": {"en-US": "Tuisku is a simple and lightweight notes app that encrypts your notes with the ChaCha20 algorithm stored internally, you can share these notes unencrypted (if you wanted to) using the share button ontop of the note editor.\n\nYou can also disable screenshoting in Settings and view your encryption key there."}, "icon": {"en-US": {"name": "/com.omaawr.tuisku/en-US/icon_EAUK0Lj7rqo7FHXoJmDdpH6AfXLpGsBhKXYPQI0WKhY=.png", "sha256": "10050ad0b8fbaeaa3b1475e82660dda47e807d72e91ac06129760f408d162a16", "size": 2220}}, "preferredSigner": "db2911b11ba6b08a7a8ba317d168307743e4f211a51e9aa6db81dd3c9a53b2e9"}, "versions": {"54856eb7e8d75b71cd85e3431f35d482f7fe426675c7e66af0396c0406d973a5": {"added": 1786866775484, "file": {"name": "/com.omaawr.tuisku_13.apk", "sha256": "54856eb7e8d75b71cd85e3431f35d482f7fe426675c7e66af0396c0406d973a5", "size": 5649939, "ipfsCIDv1": "bafybeiclhqlxzkxlvy5hxcuriqeyymyxuy27z3gwimwu6jct4qf2cwx7le"}, "src": {"name": "/com.omaawr.tuisku_13_src.tar.gz", "sha256": "c45f5b294410cda557edefd68c2cc4a34e84c97666f568fb1ddc2320602045ac", "size": 2640014}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.1.2-1", "versionCode": 13, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 37}, "signer": {"sha256": ["db2911b11ba6b08a7a8ba317d168307743e4f211a51e9aa6db81dd3c9a53b2e9"]}, "usesPermission": [{"name": "com.omaawr.tuisku.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.orgzlyrevived": {"metadata": {"lastUpdated": 1786749285772, "name": {"it-IT": "Orgzly Revived"}, "summary": {"tr-TR": "org-mode biçiminde not almak ve yapılacaklar listelerini yönetmek için kullanıla"}, "description": {"tr-TR": "Orgzly Diriliş, not almak ve yapılacaklar listelerini yönetmek için kullanılan bir taslak oluşturma aracıdır.\n\nNot defterlerinizi düz metin olarak saklayabilir ve mobil cihazınızdaki, SD kartınızdaki veya WebDAV üzerinden bir dizinle senkronize edebilirsiniz.\n\nNot defterleri Org mode dosya biçiminde kaydedilir.\n\n“Org mode, hızlı ve etkili bir düz metin sistemiyle not tutmak, yapılacaklar listelerini yönetmek, projeleri planlamak ve belgeler oluşturmak içindir.”\n\nDaha fazla bilgi için <a href='https://orgmode.org/'>orgmode.org</a> adresini ziyaret edin.\n\n <b>Özellikler:</b>\n\n* Notlar ve görevler oluşturun, düzenleyin ve silin\n\n* Alt notları daraltın ve genişletin\n\n* Görevleri planlayın ve son tarihlerini belirleyin\n\n* Notlar için öncelikler ve etiketler belirleyin\n\n* Hızlı menüleri açmak için notları sola veya sağa kaydırın\n\n* Notları çeşitli özelliklere göre arayın\n\n* Hızlı erişim için aramalar oluşturun ve kaydedin\n\n* Not defterlerini bir veya daha fazla dizinle senkronize edin\n\nOrgzly Diriliş, Orgzly uygulamasının topluluk tarafından geliştirilmiş bir sürümüdür.\n"}}, "versions": {"d6102349ac01cd405b6dd5048c34763de390ee923814e890405b571fc948bfbc": null, "50c9d74ad453427524318c3cbe4edf8f54f15d8e2f04301f1c5ae01285fade1e": {"added": 1786749285772, "file": {"name": "/com.orgzlyrevived_292.apk", "sha256": "50c9d74ad453427524318c3cbe4edf8f54f15d8e2f04301f1c5ae01285fade1e", "size": 8802016, "ipfsCIDv1": "bafybeih7redsur265yl6ahd5thtk5zzssx4bk3kucq4ojr73dxguuftixq"}, "src": {"name": "/com.orgzlyrevived_292_src.tar.gz", "sha256": "e6867c1e8b1dc47e3572e410752878eba90e46aa1b4257202ed62c7c2d2ac768", "size": 5998146}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.23.0", "versionCode": 292, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["6fc9c2e22d07d25ce77e2e963455053c38b8318a1a2491b3ed95d50cba85493d"]}, "usesPermission": [{"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.WRITE_CALENDAR"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.REORDER_TASKS"}, {"name": "com.orgzlyrevived.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "• Add basic support for capture templates.\n• Fix cut notes behavior to eliminate risk of data loss.\n• Hide “Refine Search” button on saved search queries.\n• Save checkbox toggles immediately in single note view.\n"}}, "8613267d59e0f836695ca1bf3ec5e3787cb74d76bb96237513d447317760bc3d": {"whatsNew": {"en-US": "• Fix bug when opening saved search from the widget.\n• Sharing note now uses on-screen content, instead of stored content.\n• Add menu actions for sharing note title and content separately.\n• Don't add extra hour when insert timestamp during note editing.\n• Upgrade dependencies.\n• Update translations.\n"}}}}, "com.peer.topeer.global_send": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"9f6a16b6c27c06ba8742351cb8e811a837e1c090f2bc068a0e3a0952f99b00fa": null, "b7e87108b22942b994cf8b349c770d5f3e20928bd7670f158d38a91559f06e4a": null, "b29fee61b07bbcf5c3f2f013940efe7b9b0c5bd54db68a4e4f7387be77f485f7": null, "b140efe249923b004a2c1197af3133e837b553cc4e2ebe0c6cc409890c78b474": {"added": 1786749285772, "file": {"name": "/com.peer.topeer.global_send_74000.apk", "sha256": "b140efe249923b004a2c1197af3133e837b553cc4e2ebe0c6cc409890c78b474", "size": 34898192, "ipfsCIDv1": "bafybeib45cxlfpsdw5cdziw7vl42tlbzi2zh2wezwlq4fwvqgjgcmbir3q"}, "src": {"name": "/com.peer.topeer.global_send_74000_src.tar.gz", "sha256": "80507b958adaaab2112bdc692eaf8c622cc1b4f81a7b1dc0dd8a56e11d80761d", "size": 351448691}, "manifest": {"nativecode": ["x86_64"], "versionName": "0.2.7", "versionCode": 74000, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 34}, "signer": {"sha256": ["fd03dae4a870e0335099f7f835e1fe9b7b9c0349733cf8278dee695a7aede7c4"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "com.peer.topeer.global_send.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "75260163c9f84704fb8f4bc98e28b09a13f2cadb98c41075eacc629e3b559563": {"added": 1786749285772, "file": {"name": "/com.peer.topeer.global_send_72000.apk", "sha256": "75260163c9f84704fb8f4bc98e28b09a13f2cadb98c41075eacc629e3b559563", "size": 31464841, "ipfsCIDv1": "bafybeie7j63ywk4dletuevrzarqd3vpy6rf6mztwycgrayxyrorvh6queq"}, "src": {"name": "/com.peer.topeer.global_send_72000_src.tar.gz", "sha256": "4fbbcdde6092719564b02deb3c4afa449a6b457b70ed91d1f34b54e3f7b0b40d", "size": 351447932}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.2.7", "versionCode": 72000, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 34}, "signer": {"sha256": ["fd03dae4a870e0335099f7f835e1fe9b7b9c0349733cf8278dee695a7aede7c4"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "com.peer.topeer.global_send.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "7d10dbf0266e8affea78722354866889f58f3e25b2b71e1e45fa7a38e0f9921f": {"added": 1786749285772, "file": {"name": "/com.peer.topeer.global_send_71000.apk", "sha256": "7d10dbf0266e8affea78722354866889f58f3e25b2b71e1e45fa7a38e0f9921f", "size": 24347483, "ipfsCIDv1": "bafybeiadog2s2myt645vzss74esnmn35cvtkfm3pfyt63s7wdc5iljtvc4"}, "src": {"name": "/com.peer.topeer.global_send_71000_src.tar.gz", "sha256": "7e73969b2e6d6d6488b9c1fe7693e26b7323f92181b8084d8746c130ca17b2fd", "size": 351448697}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "0.2.7", "versionCode": 71000, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 34}, "signer": {"sha256": ["fd03dae4a870e0335099f7f835e1fe9b7b9c0349733cf8278dee695a7aede7c4"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "com.peer.topeer.global_send.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.pennywiseai.tracker": {"metadata": {"lastUpdated": 1786749285772, "name": {"en-US": "PennyWise: SMS Expense Tracker"}, "summary": {"en-US": "Auto-track UPI & bank SMS. Private expense tracker and budget app, no sign-up."}, "description": {"en-US": "Your bank already texts you every transaction. PennyWise reads those SMS on your phone and turns them into an automatic expense tracker — no manual entry, no sign-up, nothing uploaded.\n\n★ Why PennyWise asks for SMS permission\nReading bank SMS is how the app works — it is the entire product. Everything happens on your device: no server ever receives a message, there is no account to create, and the complete source code is public (AGPL-3.0) so anyone can verify exactly what it does. Would rather not grant it? You can still add transactions by hand or import a PDF statement.\n\n★ Automatic expense tracking\n• Every UPI payment, card swipe, ATM withdrawal and bank transfer becomes a categorized transaction\n• 142 banks and payment services across 23 countries, with multi-currency support\n• Works with any UPI app — it reads your bank's SMS, not the app\n• A clean, searchable spending timeline that stays up to date on its own\n\n★ Budgets and insights\n• Set monthly budgets per category and watch progress as you spend\n• Spending trends, category breakdowns and month-on-month comparisons\n• Automatic subscription detection — finds the recurring payments you forgot about\n• Smart rules to auto-categorize transactions your way\n\n★ On-device AI assistant\nAsk \"what did I spend on food last month?\" and get a real answer. The AI model (Qwen 2.5) runs locally on your phone — no API calls, no cloud, works offline.\n\n★ Private by design\n• No account, no login, no email required\n• No ads, no trackers, no analytics on your financial data\n• Nothing leaves your device\n• Open source (AGPL-3.0) — read the code yourself\n\n★ Free, with an optional Pro upgrade\nPennyWise is free to use. Where in-app purchases are available, an optional Pro upgrade adds unlimited custom rules, PDF statement imports, CSV export and duplicate-account merge — and directly supports a solo developer building PennyWise independently. Builds distributed without in-app purchases have all of it unlocked from the start.\n\nA money manager, budget planner and spending tracker in one — for people who hate typing in expenses.\n"}}, "versions": {"1822aa64762bca2d19bd8b4e95d1366a6acb98d187dc7205d67045abbca4cbf5": null, "ecfd8f98bfbc201438cae5a95e80806d8ba10fc3adc8a62ef72d9ebc09d909c4": {"added": 1786749285772, "file": {"name": "/com.pennywiseai.tracker_102.apk", "sha256": "ecfd8f98bfbc201438cae5a95e80806d8ba10fc3adc8a62ef72d9ebc09d909c4", "size": 47915645, "ipfsCIDv1": "bafybeig4hrq7kdvxdvoqx5gtwlaat25jnbvtekkih6jooyexpfvlxpqdma"}, "src": {"name": "/com.pennywiseai.tracker_102_src.tar.gz", "sha256": "67d70714d88c4eaef41e85b9c92d4896d8e77a89ee4bc958acb32cde3adbea50", "size": 20084383}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "2.18.1", "versionCode": 102, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["235d652b2012fd70cfd6b4919f2e665e684a3a14998ddd286ffd077eed4c1702"]}, "usesPermission": [{"name": "android.permission.READ_SMS"}, {"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.pennywiseai.tracker.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "• Spending Pie widget — pin a live breakdown of your spending categories directly to your home screen\n• Groups section on the home screen — a quick-access rail of all your transaction groups\n• Monthly Recap — generate a shareable summary card for any month, with an AI-crafted caption to kick off the next month's habit\n• Mark any two selected transactions as a transfer, with improved automatic transfer detection\n"}}}}, "com.pgpony.android": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"482edf9df3802740795de4b3b62a7cbab3bb8c74b2b0a996e1bef7c26a2042e6": null, "537cbc81b01d2c63c411c77d452e4b838f90163ecdb60589ed5d6512e86c64d9": {"added": 1786749285772, "file": {"name": "/com.pgpony.android_411.apk", "sha256": "537cbc81b01d2c63c411c77d452e4b838f90163ecdb60589ed5d6512e86c64d9", "size": 15154684, "ipfsCIDv1": "bafybeihzlvjd3vupjmxl7zljyj344my3gjfvkjjdtqkpe2vgdhsxu4v47e"}, "src": {"name": "/com.pgpony.android_411_src.tar.gz", "sha256": "a3b90fade2d46ac788fa8fa34f0c0f0e35b52620561254d3aa6e73a9ddb7782c", "size": 1779732}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.1.1", "versionCode": 411, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["446bf9e621222a40c66cd2476e1a97105ccb2a9b16a01a91c1c7eb90765b50dc"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.NFC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.pgpony.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Fixes creating a key at a large display or font size. The onboarding slides could not scroll, so on phones set to a bigger display or font scale the Create Key button could sit below the screen edge with no way to reach it. The bundle encryption result and the biometric lock screen had the same missing scroll and got the same fix. Nothing changes at default display settings.\n"}}}}, "com.polonio.duwave": {"metadata": {"categories": ["Local Media Player", "Online Media Player"], "lastUpdated": 1786866775484, "screenshots": {"phone": {"en-US": [{"name": "/com.polonio.duwave/en-US/phoneScreenshots/1.png", "sha256": "fa34c86b19c9dd03d251498a8851ce736ca60ad66cd340f0157497e019e155c9", "size": 621374}, {"name": "/com.polonio.duwave/en-US/phoneScreenshots/2.jpeg", "sha256": "da55626a58f4d3f34911a0f1d21973ca0b64e2a5e757d4352f6e117c18a75b5e", "size": 52475}, {"name": "/com.polonio.duwave/en-US/phoneScreenshots/2.png", "sha256": "325466f8d52c9fbc8b2af24d3da784ace8f0c66616b00d5327064ca0bbee6a30", "size": 309315}, {"name": "/com.polonio.duwave/en-US/phoneScreenshots/3.jpeg", "sha256": "07c288fde9487a54cba3d8ca3c225064fa6b1dcdfeb8fd681d4d3c74b732a841", "size": 68310}, {"name": "/com.polonio.duwave/en-US/phoneScreenshots/3.png", "sha256": "a848174b53de4974a00a47fa8350737d05ddf33394a59b02957fd4c4dfbbabbb", "size": 233847}, {"name": "/com.polonio.duwave/en-US/phoneScreenshots/4.jpeg", "sha256": "5ac3f7cc8e53a281854fa0c1d82b9a29c20bd1fa86fc317f9d53f91a62dea358", "size": 147106}, {"name": "/com.polonio.duwave/en-US/phoneScreenshots/5.jpeg", "sha256": "3374915a8ea77affd54604a7eb2a7b27720b0a30bc3d24aaf1cfd30821f12ef0", "size": 63506}, {"name": "/com.polonio.duwave/en-US/phoneScreenshots/6.jpeg", "sha256": "ad0816b40e8f7fdb17f6c3f0a3c17cc4daf604b4cf976a41c3fff6f9fc1ece6f", "size": 48303}]}}, "icon": {"en-US": {"name": "/icons/com.polonio.duwave.9.png"}}}, "versions": {"9e5286a03c8ada9703a8e47c6106e4cfeccfc023caeffd38703bc995c55875eb": {"added": 1786866775484, "file": {"name": "/com.polonio.duwave_9.apk", "sha256": "9e5286a03c8ada9703a8e47c6106e4cfeccfc023caeffd38703bc995c55875eb", "size": 7911828, "ipfsCIDv1": "bafybeiaszdwnjbcbwudhqo3obm6to6p6hsrt3cd5evbkc2nb5mqbje46oy"}, "src": {"name": "/com.polonio.duwave_9_src.tar.gz", "sha256": "5af608ba2b88315b960867b2326539c9478592571437131d4d1c3c2eb26e2f0b", "size": 2812321}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.0.1", "versionCode": 9, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["9908558b3a5a9a71f2c1d8d62812cecaa1bca95a86972f47bf2a51a3398031a5"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.polonio.duwave.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.powerdino.splatoon3_companion": {"metadata": {"lastUpdated": 1786749285772, "description": {"en-US": "An app for checking all this schedules from Splatoon 3:\n- Regular Battles\n- Anarchy Battles (Series/Open)\n- X Battles\n- Salmon Run\n- Splatfest\n- Challenges\n\nThis app is not affiliated with Nintendo. All product names, logos, and brands are property of their respective owners.\n"}}, "versions": {"31de0b7d574482b026a2ac7e899712381c78a3a9407e3e17f4195891a5cec760": null, "d9e855c4df00d75ab669867518f78e009ff72eab6a885a24664b719d2bb5edaa": {"added": 1786749285772, "file": {"name": "/com.powerdino.splatoon3_companion_21.apk", "sha256": "d9e855c4df00d75ab669867518f78e009ff72eab6a885a24664b719d2bb5edaa", "size": 5336498, "ipfsCIDv1": "bafybeib7ar4jqmevt7gigxdmwgw4tjlatwmikaevmeynjzf7xbbiqqqt6a"}, "src": {"name": "/com.powerdino.splatoon3_companion_21_src.tar.gz", "sha256": "a895ba74ccb2cd53392ea4d99fd2ec16e8a4cfca0c3c68ec543795af205c57a6", "size": 4094124}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.1.1", "versionCode": 21, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["80882d7283524e284eb6136f9135e4569e3dc3c3cdeebaad5b4ccc8a902871ad"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.powerdino.splatoon3_companion.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Depends on splatoon.oatmealdome.me servers"}}, "whatsNew": {"en-US": "v1.1.1:\n- Fixed bug where no schedule composable didn't appear in splatfest screen, even when they weren't any schedules.\n- Improved Salmon run weapon icon loading and optimized images.\n- Added reload button in the dropdown menu"}}, "eda0e4bce3033c1715a0032fca7737b2b55b4f32ed71758e32340a3bb311d1f6": {"whatsNew": {"en-US": "v1.1:\n- Added challenge screen\n- Improved transitions\n- Added support for multiple languages supported by the API (Please if anything is wrong send an issue with the error and the correct translation)\n- Fixed bug for splatfest screen where the title for tricolor appeared without a tricolor stage on rotation\n- Removed screams and sounds when afk\n"}}, "2f0ac47c684554936e690442d39c9b183452b4bfd57b5926161b0545ef6b8e3e": {"whatsNew": {"en-US": "v1.1-Beta3:\n- Fixed timezones issue\n- Added weapon icons to salmon run\n"}}}}, "com.prayer_times": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"c2952af1c1d4e2e8766d562f8dcdd7f9a3ab6a1e9f37867d899214c9fd83b396": null, "8689b824ab79cff97fd0607b7055bd6c9ba4a639df1594960ad51e3f56a80a80": {"added": 1786866775484, "file": {"name": "/com.prayer_times_237.apk", "sha256": "8689b824ab79cff97fd0607b7055bd6c9ba4a639df1594960ad51e3f56a80a80", "size": 60468166, "ipfsCIDv1": "bafybeig5hnpc3svo6e3ctqufv6kqd3sfts2dnwswv3qflrq6kwnqqkhg3i"}, "src": {"name": "/com.prayer_times_237_src.tar.gz", "sha256": "7a74047253630d477a8da55fdb056e1cebe75f12ac697ecf03d80ce40eea470a", "size": 175254614}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "2.8.10", "versionCode": 237, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["cdb25eecdba1ad6773be11e0bc7f532c88ec3f85459832523988c250c83f0e91"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_PROMOTED_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"}, {"name": "com.prayer_times.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS", "maxSdkVersion": 30}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Prayer times from AlAdhan, whose server code is not published."}, "TetheredNet": {"en-US": "Optional features rely on fixed services (AlAdhan, Nominatim)."}}, "whatsNew": {"ar": "كانت بعض كلمات المصحف تختفي. عادت.\n\n• كان بعض السطور يفقد كلمته الأخيرة — نحو سطر من كل ثمانية، في معظم الصفحات. النص والخطوط سليمة دائمًا؛ الخلل كان في طريقة الرسم. أُصلح، ويُفحص الآن في صفحات المصحف كلها.\n• الرسم البياني صار يمرَّر في الاتجاه الصحيح في العربية والأردية والفارسية والعبرية.\n• حذف ملفات القرآن التي خلّفها تحديث سابق.\n", "en-US": "Words were going missing from the mushaf. They are back.\n\n• Some lines of the Quran were losing their last word — roughly one line in eight, on nearly every page. The text and the fonts were always right; the renderer was asking phones for something they could quietly refuse. Fixed, and now checked on all 604 pages.\n• The graph scrolls the right way round in Arabic, Urdu, Persian and Hebrew.\n• Quran files left behind by an older version are cleared out.\n", "sv-SE": "Ord försvann ur mushaf. De är tillbaka.\n\n• Vissa rader i Koranen tappade sitt sista ord — ungefär var åttonde rad, på nästan varje sida. Texten och typsnitten var alltid rätt; felet låg i uppritningen. Åtgärdat, och kontrolleras nu på alla 604 sidor.\n• Grafen rullar åt rätt håll på arabiska, urdu, persiska och hebreiska.\n• Koranfiler som en äldre version lämnat kvar rensas bort.\n"}}}}, "com.procrastilearn.app": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"d44c1c12addde96b87b1fd40e3b403b18c61bb2d48d610701af50719497b1dd4": null, "80552f37b1ab86f6c811a7f69d659187fc60023e75dd9aff175162d4b038f35b": {"added": 1786866775484, "file": {"name": "/com.procrastilearn.app_13.apk", "sha256": "80552f37b1ab86f6c811a7f69d659187fc60023e75dd9aff175162d4b038f35b", "size": 25217768, "ipfsCIDv1": "bafybeidxqelerkovwpok2ekvap3cbsugpgqz2lszyzz227w2aiunabkwfi"}, "src": {"name": "/com.procrastilearn.app_13_src.tar.gz", "sha256": "50a4ea491476dd804cf3300ff59bfdff0f57dd43aaec8a80ec4e94f8386921b3", "size": 3237062}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.3.5", "versionCode": 13, "usesSdk": {"minSdkVersion": 30, "targetSdkVersion": 36}, "signer": {"sha256": ["4fe800ea6e35655d54e7a36ed83004696d11c1cd341e468952a8ffc11dc47c50"]}, "usesPermission": [{"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.procrastilearn.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Add a rating delay setting to lock overlay rating buttons to prevent quick clicks just to close overlay.\nShrink the dojo header a bit to leave more room for cards.\n", "es-ES": "Añadido un ajuste de retraso en la valoración para bloquear brevemente los botones de valoración en la tarjeta de bloqueo y evitar clics rápidos solo para cerrarla.\nReducida un poco la cabecera del dojo para dejar más espacio a las tarjetas.\n", "fr-FR": "Ajout d'un délai de verrouillage réglable pour les boutons de notation sur la carte de verrouillage, afin d'éviter les clics rapides juste pour la fermer.\nRéduction de la hauteur de l'en-tête du dojo pour laisser plus de place aux cartes.\n", "it-IT": "Aggiunta un'impostazione per il ritardo di valutazione, che blocca brevemente i pulsanti di valutazione sulla carta di blocco per evitare clic rapidi fatti solo per chiuderla.\nRidotta leggermente l'altezza dell'intestazione del dojo per lasciare più spazio alle carte.\n", "ru-RU": "Добавили настройку задержки перед оценкой — кнопки оценки на карточке блокировки ненадолго блокируются, чтобы нельзя было закрыть её случайным быстрым тапом\nНемного уменьшили высоту шапки додзё, чтобы освободить больше места для карточек\n", "uk": "Додали налаштування затримки перед оцінкою — кнопки оцінки на картці блокування ненадовго блокуються, щоб не можна було закрити її випадковим швидким тапом\nТрохи зменшили висоту шапки додзьо, щоб звільнити більше місця для карток\n", "zh-CN": "新增评分延迟设置，可短暂锁定拦截卡片上的评分按钮，防止只是为了关闭卡片而随手快速点击。\n略微缩小了道场页面的顶部区域高度，为卡片留出更多空间。\n"}}}}, "com.relaypony.android": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"bafc3df5c4d064f4d879cfb37f1af770e4559dc1736426858aee639fb5c80fd9": {"added": 1786749285772, "file": {"name": "/com.relaypony.android_10.apk", "sha256": "bafc3df5c4d064f4d879cfb37f1af770e4559dc1736426858aee639fb5c80fd9", "size": 13249627, "ipfsCIDv1": "bafybeigyacupeb7jsg55t6uwl6kabw2qn5t246tds2suu7d7p2dcks7shu"}, "src": {"name": "/com.relaypony.android_10_src.tar.gz", "sha256": "267ede1a42a747bdd22700957467fae889363885287215543b37da4947f0b791", "size": 2546271}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.1", "versionCode": 10, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["d65cd80dcda1d92b869211b02ae607691ccde93351007e811f7e49189ac099c9"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.NEARBY_WIFI_DEVICES"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "com.relaypony.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 28}]}}}}, "com.reteclock": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"7b5379f570573a5121591131023689426bff5e6c176f2796d96e5dcc1c1bdf2e": null, "1a9a310ce118e545aa945898cf9755eeb44d4692159fc67bb18e8f2e06b8d8f0": null, "6d5b129d7c37a9768c374276e438e3fa7de6f462473183b22c536bed3e1601cb": {"added": 1786866775484, "file": {"name": "/com.reteclock_37.apk", "sha256": "6d5b129d7c37a9768c374276e438e3fa7de6f462473183b22c536bed3e1601cb", "size": 287753, "ipfsCIDv1": "bafybeicauuxojr6636wkpl5prcp4piuohobmpiaqasarxzi2h3ujhffo2e"}, "src": {"name": "/com.reteclock_37_src.tar.gz", "sha256": "5d1de1a8d81aed9fec9474403c05655c13877b39f5ae5591a99dd168255910e6", "size": 1318900}, "manifest": {"versionName": "0.20.0", "versionCode": 37, "usesSdk": {"minSdkVersion": 9, "targetSdkVersion": 28}, "signer": {"sha256": ["90446b5280aa4ce34bfe8b33252ef6be902c744d4f5af203a5995a4bbd4c641d"]}, "usesPermission": [{"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.VIBRATE"}]}, "whatsNew": {"en-US": "* Outline, next to bold, italic and underline, chosen line by line. It is drawn\n  in the opposite of your text colour, so writing keeps its edges over a picture\n  whatever colour that picture happens to be.\n"}}, "d67b83f8a1b1e7a92a287a6e3e61f9a2e3a5257ce38599f834193b45a04e230d": {"added": 1786749285772, "file": {"name": "/com.reteclock_32.apk", "sha256": "d67b83f8a1b1e7a92a287a6e3e61f9a2e3a5257ce38599f834193b45a04e230d", "size": 287753, "ipfsCIDv1": "bafybeiadzoldb5uzmo3w2louozciijv33vlubowxjsb5m6m3dbskr5zl5e"}, "src": {"name": "/com.reteclock_32_src.tar.gz", "sha256": "6ff92921942e2e0e0448309961497afa852673cb4108c160b406585ab4b0fdb0", "size": 1142098}, "manifest": {"versionName": "0.18.1", "versionCode": 32, "usesSdk": {"minSdkVersion": 9, "targetSdkVersion": 28}, "signer": {"sha256": ["90446b5280aa4ce34bfe8b33252ef6be902c744d4f5af203a5995a4bbd4c641d"]}, "usesPermission": [{"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.VIBRATE"}]}, "whatsNew": {"en-US": "* The calendar's weekday headings no longer run into one another: they shrink\n  to fit their columns, so the grid reads evenly spaced.\n"}}}}, "com.retekey": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"7f3b6315571da243eaab6a4ce36a8df2a150a355fa45fb779ed151f04fe44df9": {"added": 1786749285772, "file": {"name": "/com.retekey_95.apk", "sha256": "7f3b6315571da243eaab6a4ce36a8df2a150a355fa45fb779ed151f04fe44df9", "size": 511153, "ipfsCIDv1": "bafybeidp2bi356myl2dan4zi2emrict3fqfmv6g2nqzn4tibbwm57aatt4"}, "src": {"name": "/com.retekey_95_src.tar.gz", "sha256": "d6177114a95a6501497437f17b217f63ffd12bba5c657424580443927f167eb8", "size": 1341585}, "manifest": {"versionName": "0.1.94", "versionCode": 95, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["9edf10f8088e6eeece9831687fde92dcb737c774f1d39ec37c596905ae020c35"]}, "usesPermission": [{"name": "android.permission.VIBRATE"}]}, "whatsNew": {"en-US": "The key-click volume setting works now. It was asking the platform to\nplay its own keypress sound at a given volume, and plenty of devices -\nSamsung's among them - ignore that volume and use the system's touch\nsound level instead, so the slider appeared to do nothing. The click is\nthe keyboard's own sample now, played by the keyboard, so the number\nyou set is the volume you get. Turning it to zero still silences it.\n"}}}}, "com.rouf.freeview": {"metadata": {"added": 1786866775484, "categories": ["Internet", "Reading"], "issueTracker": "https://github.com/roufsyed/FreeView/issues", "lastUpdated": 1786866775484, "license": "MIT", "sourceCode": "https://github.com/roufsyed/FreeView", "screenshots": {"phone": {"en-US": [{"name": "/com.rouf.freeview/en-US/phoneScreenshots/1_home.jpeg", "sha256": "c1b7b9a73518a9867ebb6ef653b991d337f05a04decae6107bb3542657070fa3", "size": 62724}, {"name": "/com.rouf.freeview/en-US/phoneScreenshots/2_settings.jpeg", "sha256": "35ce2415e4fd798c73bd45aef020a7ee3d250915c67bb69c58cb53160ac427c5", "size": 43506}, {"name": "/com.rouf.freeview/en-US/phoneScreenshots/3_history.jpeg", "sha256": "525aef67e1e6fa12b96ea8bb424410e6cb6602952c20cd0842cfe0d3944082bb", "size": 39085}, {"name": "/com.rouf.freeview/en-US/phoneScreenshots/4_articleView.jpeg", "sha256": "b3d6ce299b2935688f5c624675f8c7eec969f983580762881b65cda7645a72ca", "size": 85188}]}}, "authorName": "Rouf Syed", "name": {"en-US": "FreeView"}, "summary": {"en-US": "Read Medium articles for free through your choice of reader service"}, "description": {"en-US": "FreeView is a lightweight, ad-free reader for Medium articles. Share a Medium link to FreeView (or paste it into the app) and it opens the full article through the free reader service of your choice - no browser clutter and no login.\n\n<b>Features</b>\n<ul>\n<li>Multiple reader services: Read-Medium, Freedium, Archive.today, Archive.is, and a Medium parser vercel app</li>\n<li>Open a link by sharing it from any app, pasting it into the in-app address bar, or tapping a medium.com link and choosing FreeView</li>\n<li>Optional reading history - keep your last 20, 50, or 100 articles and reopen them with a tap</li>\n<li>Multi-select in the history list (long-press) to delete entries</li>\n<li>Settings for the reader service, theme (light / dark / system), and article text size</li>\n<li>Clean Material 3 interface with a collapsing top bar and full light and dark support</li>\n</ul>\n\n<b>How it works</b>\n<p>Pick a reader service in Settings. Share or paste a Medium link - or tap a link and choose FreeView - and it rewrites the link for that service and loads the article. You can switch services any time and revisit past reads from History or your saved Bookmarks. Tapping works for Medium articles on any domain (medium.com and custom publication domains alike); FreeView is offered for web links in the system \"Open with\" chooser.</p>\n\n<b>Note</b>\n<p>FreeView is not affiliated with Medium or any of the reader services it opens. It hosts, scrapes, and modifies nothing - it only opens publicly available pages in a WebView. Those services are third-party and outside FreeView's control.</p>\n"}, "icon": {"en-US": {"name": "/com.rouf.freeview/en-US/icon_cDbhzCxuMsl7jINTcwJ30EkHPDy80hqvuQ0G_F_qicQ=.png", "sha256": "7036e1cc2c6e32c97b8c8353730277d049073c3cbcd21aafb90d06fc5fea89c4", "size": 6737}}, "preferredSigner": "12035293daabc95bba142e0deebab9ec36dfcb85e30a0f1f83bd7005cdea41f6"}, "versions": {"4c3cb01dd07743e2d014fc590e8bda6ab05c4fda6e217363ce51904c856fff5f": {"added": 1786866775484, "file": {"name": "/com.rouf.freeview_3.apk", "sha256": "4c3cb01dd07743e2d014fc590e8bda6ab05c4fda6e217363ce51904c856fff5f", "size": 1883695, "ipfsCIDv1": "bafybeibjpqy6r43wzm5xuxsjhbecobovtiliexns2p3i4q7fvbk4og4dme"}, "src": {"name": "/com.rouf.freeview_3_src.tar.gz", "sha256": "f3055e17e8a3ca63b345a0812e80cb5aab9ee31ef3b5d95e15f601a902e0fd0d", "size": 393099}, "manifest": {"versionName": "1.2", "versionCode": 3, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["12035293daabc95bba142e0deebab9ec36dfcb85e30a0f1f83bd7005cdea41f6"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.rouf.freeview.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Loads articles through third-party reader and proxy services such as Read-Medium, archive.today and medium-parser, which are non-free network services."}}, "whatsNew": {"en-US": "Bookmarks: save articles, browse them in a dedicated list, delete with long-press multi-select, and bookmark straight from your History.\n\nOpen links directly: tap a Medium link anywhere - on medium.com or a custom publication domain - and choose FreeView (Settings has an \"Open Medium links in FreeView\" shortcut). FreeView is offered for web links in the system \"Open with\" chooser.\n\nReading view: the link field is always available, a loading bar shows progress, and the toolbar adapts while you re"}}}}, "com.rtbishop.look4sat": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"26d36169112ed12ba115dd9caed0f79f9a970671d3219054c8fe6e2322ea3f89": null, "9d6b0a15f7ae678c7167e4360f4d63e4dcbc82312589f461554d0b5c5904cf1f": {"added": 1786866775484, "file": {"name": "/com.rtbishop.look4sat_446.apk", "sha256": "9d6b0a15f7ae678c7167e4360f4d63e4dcbc82312589f461554d0b5c5904cf1f", "size": 7928271, "ipfsCIDv1": "bafybeic7ollu7sph2sh5bh4vwmxfwba6qxpdirchvzyjhofucz35edheyy"}, "src": {"name": "/com.rtbishop.look4sat_446_src.tar.gz", "sha256": "4677371d51aafc17cbe18823711c2adf003ac4fa7e6a44a32bb77ce84adf03e3", "size": 5714666}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.4.6", "versionCode": 446, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["bca485cdb26a2d1d832a87e393995888c22a374c8f2febc553a7df574c3b6590"]}, "usesPermission": [{"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "com.rtbishop.look4sat.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "* Added AMSAT status tracking page by MCKero6423 (#234)\n* Tweaked Radar track on reposition by atsunatsu (#235)\n* Tweaked linear transponder calc by atsunatsu (#236)\n* Added saving per-sat doppler offset by atsunatsu (#237)\n* Added custom freq offset setting to network reporting\n* Added ability to customize data sources via import\n* Fixed star chart in README by PingouinFerreux (#240)\n"}}, "8d178a7fca1aac8020b70d60b6cbee55190d3a855843d698aa69d1073072339b": {"whatsNew": null}}}, "com.searchlauncher.app": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"810e4fb9f8eaeb5f3b17a48a1eb159da0fba865fd9157c7853783a90b88d2e0f": {"added": 1786866775484, "file": {"name": "/com.searchlauncher.app_253.apk", "sha256": "810e4fb9f8eaeb5f3b17a48a1eb159da0fba865fd9157c7853783a90b88d2e0f", "size": 25180537, "ipfsCIDv1": "bafybeia6x7gvbckjpengq6il2zr7xl54dv7tmr6pfiqv75vdr7hbxvsage"}, "src": {"name": "/com.searchlauncher.app_253_src.tar.gz", "sha256": "1eac37bd172be9cfa21a06c24ce05895a94c3e1b1e8a19a3d1861999400c81ff", "size": 8474346}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.0.15", "versionCode": 253, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 36}, "signer": {"sha256": ["553f628023ac5739ed10cfdfad26e9c79ad5ef669cd187c8effa97c733b1d6b0"]}, "usesPermission": [{"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.PACKAGE_USAGE_STATS"}, {"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.WRITE_SETTINGS"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.EXPAND_STATUS_BAR"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "com.android.alarm.permission.SET_ALARM"}, {"name": "com.searchlauncher.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.REORDER_TASKS"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Search shortcuts and search suggestions query third-party services such as Google, YouTube and Wikipedia. They are optional and can be removed."}, "Tracking": {"en-US": "Optional crash reporting to a self-hosted GlitchTip instance. It is off until you opt in, and can be turned off again in Settings."}}, "whatsNew": {"en-US": "Things that quietly did nothing now work.\n\n- Downloads work in the browser. Tapping a link to an APK, a PDF or any other file used to do nothing at all; files now save to your Downloads folder.\n- Chats you can actually find. Messaging apps publish a few conversations and cache the rest, and only the first few were being indexed. WhatsApp went from 10 findable chats to 31 on my phone. This finds chats by name and opens them; it does not read your messages.\n- Shortcuts that never opened, open. Con"}}}}, "com.shapeshed.aerial": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"cfcbb55c4fe6b03623ee5d78ce7dfdf7e573252970fd6243dd41f913d61aa97d": null, "24cecb5fb271d11f945c963ef1f062da1de9ea63f1557f51fc1692bc624648c8": {"added": 1786866775484, "file": {"name": "/com.shapeshed.aerial_16.apk", "sha256": "24cecb5fb271d11f945c963ef1f062da1de9ea63f1557f51fc1692bc624648c8", "size": 11677874, "ipfsCIDv1": "bafybeibfmk6eaubtkxl4vqdzekomwd7dmuoapfxmtfw76a6izb4jgfqawy"}, "src": {"name": "/com.shapeshed.aerial_16_src.tar.gz", "sha256": "8600d554025b951cd82699fbd42d3124ca9d410e792465dd79c3295673a104ac", "size": 7700722}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.6.1", "versionCode": 16, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["b84e94d220e39d5d754bb7439de2712fde2005e5be2dab1ddb55480d30443dab"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "com.shapeshed.aerial.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Scroll long track and station titles in the mini player and Now Playing screen.\n- Fix restoring paused playback and notification navigation after screen sleep.\n- Add Russian, Estonian, and Turkish translations.\n"}}}}, "com.shapeshed.kiosk": {"metadata": {"added": 1786749285772, "categories": ["Forum", "News"], "changelog": "https://github.com/shapeshed/kiosk/blob/HEAD/CHANGELOG.md", "issueTracker": "https://github.com/shapeshed/kiosk/issues", "lastUpdated": 1786749285772, "license": "Apache-2.0", "sourceCode": "https://github.com/shapeshed/kiosk", "screenshots": {"phone": {"en-US": [{"name": "/com.shapeshed.kiosk/en-US/phoneScreenshots/1.png", "sha256": "9f6e8411e4c6f2f515dbd6a197ac149c0e5b8e9ed91126ac01bc9eb2cc190c84", "size": 238846}, {"name": "/com.shapeshed.kiosk/en-US/phoneScreenshots/2.png", "sha256": "01490028fbe20436c9fa95d1236dfcac660b1b26d1c184021ffe1899e8c490da", "size": 340935}, {"name": "/com.shapeshed.kiosk/en-US/phoneScreenshots/3.png", "sha256": "1140149bbfa3c986cc26ebc86ca838ddc7eb7ac271a1ffca453d476e040ea241", "size": 210490}]}}, "authorName": "shapeshed", "name": {"en-US": "Kiosk"}, "summary": {"en-US": "A Hacker News reader for Android."}, "description": {"en-US": "Kiosk is a Hacker News reader for Android.\n\nIt is built around reading, not browsing. Browse Hacker News feeds, search historical stories, read articles in a distraction-free native reader, and keep comments close at hand.\n\nFeatures:\n- Browse Top, New, Best, Ask, Show, and Jobs.\n- Search historical Hacker News stories.\n- Read articles in a native reader powered by Mozilla Readability.\n- Swipe between stories in the current feed.\n- Open comments quickly in a bottom sheet.\n- Use reader themes, fonts, Speed Reader, and Read Aloud.\n- Expand article images and pinch to zoom.\n- Open PDFs, X/Twitter, YouTube, and external links in the default app or browser.\n\nKiosk has no accounts, ads, analytics, tracking SDKs, Firebase, Crashlytics, or Google Play Services dependency.\n"}, "donate": ["https://www.paypal.com/donate/?hosted_button_id=MZVB3E2RYYWV8"], "icon": {"en-US": {"name": "/com.shapeshed.kiosk/en-US/icon_S42fHW3CFCVCqb5dqefqJHGOM7sBfvKyRZuy32N-Oy0=.png", "sha256": "4b8d9f1d6dc2142542a9be5da9e7ea24718e33bb017ef2b2459bb2df637e3b2d", "size": 2948}}, "preferredSigner": "b84e94d220e39d5d754bb7439de2712fde2005e5be2dab1ddb55480d30443dab"}, "versions": {"6965a103f15ccda6d21239faac274502f821417c2d19ee6a248da3f9ee7abb21": {"added": 1786749285772, "file": {"name": "/com.shapeshed.kiosk_1.apk", "sha256": "6965a103f15ccda6d21239faac274502f821417c2d19ee6a248da3f9ee7abb21", "size": 5512962, "ipfsCIDv1": "bafybeicld7gaa62xgsgbc77gdp4mtzey4rfp6s3mebyle6bdjyirnlvkhe"}, "src": {"name": "/com.shapeshed.kiosk_1_src.tar.gz", "sha256": "04a6e79569f7c11f5b50287694ecc9e28f659cb5d01d38fa55ba4ea615844010", "size": 3877604}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.1.0", "versionCode": 1, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["b84e94d220e39d5d754bb7439de2712fde2005e5be2dab1ddb55480d30443dab"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.shapeshed.kiosk.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "Relies on the Hacker News API and Algolia HN Search API."}}, "whatsNew": {"en-US": "Initial release baseline:\n- Six Hacker News feeds and historical search.\n- Native reader with warmed Readability extraction cache.\n- Comments, Speed Reader, Read Aloud, and zoomable article images.\n- External handling for PDFs, X/Twitter, YouTube, and links.\n"}}}}, "com.sidhant.einsteinriddle": {"metadata": {"added": 1786749285772, "categories": ["Puzzle Game"], "issueTracker": "https://github.com/sidhant947/Einstein-Riddle/issues", "lastUpdated": 1786749285772, "license": "GPL-3.0-only", "sourceCode": "https://github.com/sidhant947/Einstein-Riddle", "screenshots": {"phone": {"en-US": [{"name": "/com.sidhant.einsteinriddle/en-US/phoneScreenshots/1.png", "sha256": "941192e31c62092eb7dd2bfe1b962b2e5d68f14c7a5efae916cc4bd88bbf8828", "size": 85764}, {"name": "/com.sidhant.einsteinriddle/en-US/phoneScreenshots/2.png", "sha256": "95e38763a3eba80ad37c103292ab5310d0368ccc47da091e12a8820b797866d5", "size": 28044}, {"name": "/com.sidhant.einsteinriddle/en-US/phoneScreenshots/3.png", "sha256": "f7605bbc8f7a15df84dbd8bb180d152e0677f7b586a8bea7b383573e962322bd", "size": 96130}, {"name": "/com.sidhant.einsteinriddle/en-US/phoneScreenshots/4.png", "sha256": "4b672dece435f19e4feeeedc0b852a8870be310d7fe52425454662ae81a8f0e5", "size": 80833}]}}, "authorName": "Sidhant", "authorWebSite": "https://sidhant.is-a.dev/", "liberapay": "sidhant947", "name": {"en-US": "Einstein's Riddle"}, "summary": {"en-US": "Einstein's Riddle (also known as the Zebra Puzzle)"}, "description": {"en-US": "FEATURES:\n\n- 100% Privacy: Fully offline play. No data collection, tracking, or network requests required.\n\n- Completely Ad-free: No ads, no interruptions.\n\n- No Trackers: Zero analytics, zero telemetries, zero third-party SDKs.\n\n- Infinite Levels: Unlimited dynamically generated logic puzzles with guaranteed unique solutions. Daily Challenge is same for everyone."}, "donate": ["https://github.com/sponsors/sidhant947"], "icon": {"en-US": {"name": "/com.sidhant.einsteinriddle/en-US/icon_6jLT0U-KqdGb84Xm8ShDgGpcnXEchkHwUBUDPSqOOYc=.png", "sha256": "ea32d3d14f8aa9d19bf385e6f12843806a5c9d711c8641f05015033d2a8e3987", "size": 197983}}, "preferredSigner": "18046aeee9d44a9f6d61947fcefceb6dee6cd24067b7a7a9c39c1fe730552a8c"}, "versions": {"573af4279f6edaf8e800d4da8ad42a3216e4c2f7664681b62d4745e5db039eb5": {"added": 1786749285772, "file": {"name": "/com.sidhant.einsteinriddle_13.apk", "sha256": "573af4279f6edaf8e800d4da8ad42a3216e4c2f7664681b62d4745e5db039eb5", "size": 8170250, "ipfsCIDv1": "bafybeiclxyw4dz6e5vl2hoidzduzbb5keuyha2ggcqigzum6rfnwodrx44"}, "src": {"name": "/com.sidhant.einsteinriddle_13_src.tar.gz", "sha256": "a061244622abcaefcda3585ffc7b315d4d6c6baac6957a7ec553616ad8b55ecc", "size": 29465651}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.0.0", "versionCode": 13, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["18046aeee9d44a9f6d61947fcefceb6dee6cd24067b7a7a9c39c1fe730552a8c"]}, "usesPermission": [{"name": "com.sidhant.einsteinriddle.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "e8a6fa0a19d62cb41fa5e2f37a347da6684146b8ef185e9f397210fac1f51e22": {"added": 1786749285772, "file": {"name": "/com.sidhant.einsteinriddle_12.apk", "sha256": "e8a6fa0a19d62cb41fa5e2f37a347da6684146b8ef185e9f397210fac1f51e22", "size": 7994131, "ipfsCIDv1": "bafybeiaifgongby73dh3ikruobeg2pqv6rhpybx5duil57q36zws6hwp4q"}, "src": {"name": "/com.sidhant.einsteinriddle_12_src.tar.gz", "sha256": "cb82ccc3bdf228c00c4d9b469c0500495c14a52c8715e65b28d1640eff316792", "size": 29464813}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.0.0", "versionCode": 12, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["18046aeee9d44a9f6d61947fcefceb6dee6cd24067b7a7a9c39c1fe730552a8c"]}, "usesPermission": [{"name": "com.sidhant.einsteinriddle.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "1d85bf45368ba3442b89090ea38057507937ad846286cefdbb0ef70f9416c87f": {"added": 1786749285772, "file": {"name": "/com.sidhant.einsteinriddle_11.apk", "sha256": "1d85bf45368ba3442b89090ea38057507937ad846286cefdbb0ef70f9416c87f", "size": 7449369, "ipfsCIDv1": "bafybeidvxxnltqetm7juty352rx2dov3fenc5xu2522zmpch5sq2h5pf4q"}, "src": {"name": "/com.sidhant.einsteinriddle_11_src.tar.gz", "sha256": "4949213c7b0079b25c5e07c4d82ddf14e736914a18858222c0cc32c680655876", "size": 29466034}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.0.0", "versionCode": 11, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["18046aeee9d44a9f6d61947fcefceb6dee6cd24067b7a7a9c39c1fe730552a8c"]}, "usesPermission": [{"name": "com.sidhant.einsteinriddle.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.sidhant.watersort": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"f34082a5fd352090fb744196bd6c45d98c6dcbe3a02fe62ccc0082795f3d3d90": null, "4d619f140accf8ece6dfaf3181b964cf18f99fbd92823d958326c3d4445937f5": {"added": 1786749285772, "file": {"name": "/com.sidhant.watersort_121.apk", "sha256": "4d619f140accf8ece6dfaf3181b964cf18f99fbd92823d958326c3d4445937f5", "size": 7822120, "ipfsCIDv1": "bafybeihfrnbki3motmrji4ug5qg6ngn6rlsajmlixdw2pwj5gqwayn2lxe"}, "src": {"name": "/com.sidhant.watersort_121_src.tar.gz", "sha256": "8adb71264ae6fdd76e99b4d293fe61d6bd0858886783508a4cb6a5428b19fd56", "size": 34041536}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.0.11", "versionCode": 121, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["aecb14872f4311e327e4eafd49e58ef63cd3f1eb8114c64a20cc4f8e4bc80c6f"]}, "usesPermission": [{"name": "com.sidhant.watersort.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.skyd.anivu": {"metadata": {"lastUpdated": 1786866775484, "screenshots": {"phone": {"en-US": [{"name": "/com.skyd.anivu/en-US/phoneScreenshots/1.jpg", "sha256": "d48c1b017b9178974cfb93ea57bcad5b9ab5ff17b1cee3d45e8e7ca7d3343ebd", "size": 57604}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/10.jpg", "sha256": "23a59a55890eb38963dead2e0c34588d5eb9373a1300a71799f5e72d2c09cc8e", "size": 45975}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/11.jpg", "sha256": "8fa986a1f63e48dedf3a630e4a71cba27aa82043f770cf92ef017891ed68cb8c", "size": 46686}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/2.jpg", "sha256": "b7160434d8fa2df4ed70e4f8e1e2e0d0da119503f11eca93debe3bfc8c9bd0ac", "size": 38488}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/3.jpg", "sha256": "1ad8a173cccc127a8bfd2cfd5ce4cf7330c4ffc5364aa5f67eef08a1b625a688", "size": 64038}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/4.jpg", "sha256": "a47cd3b212445c43d072c012a9f293b76558b6907dd6e7e830a24fc9c43a2e08", "size": 72764}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/5.jpg", "sha256": "865f727295e327b2b5824d5e89eaaf8da789d161b9daf4732efde343440cc63e", "size": 50258}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/6.jpg", "sha256": "2d50cad3c416cf224c3e38566e55326dbc2fb72b0239c283140ac9f4027745f5", "size": 36888}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/7.jpg", "sha256": "47cc11ee0a20ae5785e9de39d86226ee119182d9d0f6b59a6cd32acc09004b30", "size": 34036}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/8.jpg", "sha256": "402d6eeeb83e22a8e01a9b08bed72da18f17489a3d073638ad5a712a8a2cdb44", "size": 38637}, {"name": "/com.skyd.anivu/en-US/phoneScreenshots/9.jpg", "sha256": "5b186bd65bfdb9641a65f8bb09b4a84306d7a5171cab3d2d5fc147ce2b96e5ba", "size": 37006}], "zh-CN": [{"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/10.jpg", "sha256": "3bf09b82535c5283975a9c3f4ffae3f5ed939205b2fb595e5ee896fefaab4a88", "size": 43694}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/11.jpg", "sha256": "84865054a8cea866df04252d37f3fcd86a6924a78646779f626a6b00f2cad87c", "size": 67270}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/2.jpg", "sha256": "21a2ba8d2d066ebc52e499b34b06ccc1af75d5c67b5ab2bbfee98fafc7bb0569", "size": 37300}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/3.jpg", "sha256": "ffadf685462fc48599d5ad00e36498846e6e88329e77db80e2e5f3f9a046c305", "size": 82727}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/4.jpg", "sha256": "d630af4931a6fe1d29171aeb835fcb8f76c0940be31afc66b6a7c13fb1f1b708", "size": 84397}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/5.jpg", "sha256": "126d2929629a85e8b1d91f8559349f44d959640355a5534b03d5c239848bf67f", "size": 50762}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/6.jpg", "sha256": "353648cb96103672e7568987378bfc39ed0e619ca1a44bf89913d74da3866451", "size": 35355}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/7.jpg", "sha256": "9b37765a767545986963d6936edbe4b3d66070d74f5c2f7ec3659ff5672ea91a", "size": 30417}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/8.jpg", "sha256": "197d1b19b6c0caa247c198c5266ede38f5d63b60a449e30cc2a759e836da713c", "size": 38466}, {"name": "/com.skyd.anivu/zh-CN/phoneScreenshots/9.jpg", "sha256": "2cd5623c98366e9f4093fca8d39b424e541348877bc6304a84a35b5d3f5c934b", "size": 37962}], "zh-TW": [{"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/1.jpg", "sha256": "dd260055754a1ec9ff0a24d2a079edc7a9adf6fd8155b459789782143c201646", "size": 56841}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/10.jpg", "sha256": "90133f22784e7a100990872291ebe4719382c691cac1f62807641fe3c4ed9518", "size": 36506}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/11.jpg", "sha256": "b2de7a319e9f18eb1f8f3267984e92343340283bdacd35b5b7e2790c2d835100", "size": 34561}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/2.jpg", "sha256": "334223fbf2588ae8caa8a342626e893811c6a6d167a1f766428960554e8d651f", "size": 27441}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/3.jpg", "sha256": "349be1de89063b58958a6d1dd46a3648fbe963a235552466f1e8cc658a74b2d3", "size": 69496}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/4.jpg", "sha256": "c85c43e6a838754443ba0e7561f44f02104037337afc5fef98d6034d20a43609", "size": 55579}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/5.jpg", "sha256": "41a4fd48ee0e781f907fb6f5158e898215ce7698a6106f5b72aba8e1bbfe7ded", "size": 52250}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/6.jpg", "sha256": "329b1ff3b36938a589df0df589e8a14119621642898955d10d2afbc257754279", "size": 35012}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/7.jpg", "sha256": "b16433f04552c68e198c038ccabb6d622b7aa08b2bf6ea08e8a3c0d3f792eded", "size": 27492}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/8.jpg", "sha256": "b31f41883f874e532bff7c94c278f2f201b89fb1aa0e726ee4c08d3a69a73d43", "size": 36755}, {"name": "/com.skyd.anivu/zh-TW/phoneScreenshots/9.jpg", "sha256": "7db96ca84560e2f1d56f358d7f1fe4d71834464d50f852e2f546fb2862f81042", "size": 40601}]}}, "description": {"en-US": "PodAura, an all-in-one Podcast tool for RSS subscription and updates, media downloads and playback.\nPodAura utilizes the MVI architecture and fully adopts the Material You design style. All pages are developed using Jetpack Compose.\n<h3>💡 Features</h3>\n* <strong>Subscribe to RSS</strong>, Update RSS, <strong>Read</strong> RSS\n* <strong>Automatically update RSS</strong> subscriptions\n* <strong>Download enclosures</strong> (enclosure tags) in RSS articles\n* <strong>Automated</strong> podcast <strong>media downloads</strong>\n* <strong>Play media enclosures or downloaded videos</strong>\n* Support variable playback <strong>speed</strong>, setup <strong>audio track</strong>, <strong>subtitle track</strong>, etc\n* <strong>Double-finger</strong> gesture to <strong>rotate and zoom</strong> video, <strong>long press</strong> to speed up playback\n* <strong>Swipe</strong> on the video to <strong>control volume</strong>, <strong>brightness</strong>, and <strong>playback position</strong>\n* <strong>Searching</strong> existing <strong>RSS subscription content</strong>\n* <strong>Play other videos on the phone</strong>\n* Support <strong>custom MPV player</strong>\n* Support <strong>import and export</strong> subscriptions via <strong>OPML</strong>\n* Support <strong>dark mode</strong>\n* ......\n", "zh-CN": "PodAura，一个集 RSS 订阅与更新、媒体下载与播放为一体的播客工具。\n使用 MVI 架构，完全采用 Material You 设计风格。使用 Jetpack Compose 开发。\n<h3>💡 主要功能</h3>\n* <strong>订阅</strong> RSS、<strong>更新</strong> RSS、<strong>阅读</strong> RSS\n* <strong>自动更新 RSS 订阅</strong>\n* <strong>下载</strong> RSS 文章中的<strong>附件</strong>（enclosure 标签）\n* <strong>自动下载播客媒体</strong>\n* <strong>播放</strong>媒体附件或已下载的<strong>媒体文件</strong>\n* <strong>更改播放速度</strong>、设置<strong>音轨</strong>、<strong>字幕轨道</strong>等\n* <strong>双指旋转缩放视频画面</strong>、<strong>长按</strong>视频<strong>倍速播放</strong>\n* <strong>滑动</strong>调整<strong>音量</strong>、<strong>屏幕亮度和播放位置</strong>\n* 支持<strong>搜索已获取的 RSS 订阅或文章</strong>\n* <strong>播放</strong>手机中的<strong>其他视频</strong>\n* 支持<strong>自定义 MPV</strong> 播放器\n* 支持通过 <strong>OPML 导入导出</strong>订阅\n* 支持<strong>深色模式</strong>\n* ......\n", "zh-TW": "PodAura，一個集 RSS 訂閱與更新、媒體下載與播放為一體的播客應用程式。\n使用 MVI 架構，完全採用 Material You 設計風格。使用 Jetpack Compose 開發。  \n<h3>💡 主要功能</h3>\n* <strong>訂閱</strong> RSS、<strong>更新</strong> RSS、<strong>閱讀</strong> RSS\n* <strong>自動更新 RSS 訂閱</strong>\n* <strong>下載</strong> RSS 文章中的附件（enclosure 標籤）\n* <strong>自動播客媒體下載</strong>\n* <strong>播放</strong>已下載的<strong>影片檔案</strong>\n* <strong>更改播放速度</strong>，設定<strong>音軌</strong>、<strong>字幕軌</strong>等\n* <strong>雙指旋轉縮放影片畫面</strong>、<strong>長按</strong>影片<strong>倍速播放</strong>\n* <strong>滑動</strong>調整<strong>音量</strong>、<strong>螢幕亮度和播放位置</strong>\n* 支援<strong>搜尋已獲取的 RSS 訂閱或文章</strong>\n* <strong>播放</strong>手機中的<strong>其他影片</strong>\n* 支援<strong>自訂 MPV</strong> 播放器\n* 支援透過 <strong>OPML 匯入和匯出</strong>訂閱\n* 支援<strong>深色模式</strong>\n* ......\n"}, "donate": ["https://www.buymeacoffee.com/SkyD666"]}, "versions": {"b21128c77975b60072ae0e1d8387343a92f3d4ac6f50e3b5250312b31bff75e0": null, "c740a368327a12be3855e6b35fba91ab2b3e7e2499da4c894ebdc6564b08413b": {"added": 1786866775484, "file": {"name": "/com.skyd.anivu_31.apk", "sha256": "c740a368327a12be3855e6b35fba91ab2b3e7e2499da4c894ebdc6564b08413b", "size": 69102837, "ipfsCIDv1": "bafybeihqirvp22ghkwcl4cdqkqwb7kye5wedl2olrc6gymyv2x5rww72xu"}, "src": {"name": "/com.skyd.anivu_31_src.tar.gz", "sha256": "2136d676e42039a92eb98c4ad2c2d81d7031af250547afe43911d20cc610788f", "size": 4083521}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "3.3", "versionCode": 31, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["370ee0ac18f02e24df6b8efff2c0cee98d0d986bf3eaa87cc7ffc76e988257bd"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "com.skyd.anivu.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.sshborg": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"8104c594c37b62585283604799bc5900e8c91b7d6ec3cd7535a0d1d9ceb44f31": null, "b533f55893a51ee1004530b5c19472befbbab2ea20d565fa1b239ff539931c97": {"added": 1786749285772, "file": {"name": "/com.sshborg_26.apk", "sha256": "b533f55893a51ee1004530b5c19472befbbab2ea20d565fa1b239ff539931c97", "size": 15246843, "ipfsCIDv1": "bafybeidrdbcv4t675hquncz2jttrrmeyjrn5hvtytylu2yhnlw7b3fr6pq"}, "src": {"name": "/com.sshborg_26_src.tar.gz", "sha256": "9ff0fd8b871e565b52ea06508f2e6c62133bb3ad3b5e79656cc1019be7edac29", "size": 4875056}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.13.1", "versionCode": 26, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 36}, "signer": {"sha256": ["0c872c49e1a4b7873432ae4741cb78347d4b5d07d46a99f6b63f6734641abb82"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.sshborg.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "• Neu gestaltete Fehler- und Trennungsbildschirme: klare Zusammenfassung plus ausklappbare Details zum Scrollen und Kopieren\n• Stabilere Verbindungen: hält das WLAN während aktiver Sitzungen wach und prüft die Verbindung häufiger\n• Seltenen Absturz behoben und informiert dich jetzt, wenn Androids Hintergrund-Zeitlimit deine Sitzungen beendet\n", "en-US": "• Redesigned connection error and disconnect screens: a clear summary plus expandable details you can scroll and copy\n• More stable connections: keeps Wi-Fi awake during active sessions and checks the link more often\n• Fixed a rare crash and now notifies you when Android's background time limit stops your sessions\n", "es-ES": "• Pantallas de error y desconexión rediseñadas: un resumen claro más detalles desplegables que puedes desplazar y copiar\n• Conexiones más estables: mantiene el Wi-Fi activo durante las sesiones y comprueba el enlace más a menudo\n• Corregido un fallo poco frecuente y ahora te avisa cuando el límite de tiempo en segundo plano de Android detiene las sesiones\n", "fr-FR": "• Écrans d'erreur et de déconnexion repensés : un résumé clair et des détails dépliables à faire défiler et à copier\n• Connexions plus stables : garde le Wi-Fi actif pendant les sessions et vérifie le lien plus souvent\n• Correction d'un plantage rare et vous avertit désormais quand la limite de temps en arrière-plan d'Android arrête vos sessions\n", "it-IT": "• Schermate di errore e disconnessione ridisegnate: un riepilogo chiaro più dettagli espandibili che puoi scorrere e copiare\n• Connessioni più stabili: mantiene il Wi-Fi attivo durante le sessioni e controlla il collegamento più spesso\n• Corretto un raro arresto anomalo e ora ti avvisa quando il limite di tempo in background di Android interrompe le sessioni\n", "ja-JP": "• 接続エラーと切断の画面を刷新：分かりやすい要約と、スクロール・コピーできる展開可能な詳細\n• より安定した接続：セッション中は Wi-Fi をスリープさせず、接続をより頻繁に確認\n• まれなクラッシュを修正し、Android のバックグラウンド時間制限でセッションが停止した際に通知するようになりました\n", "pt-PT": "• Ecrãs de erro e desconexão redesenhados: um resumo claro e detalhes expansíveis que pode percorrer e copiar\n• Ligações mais estáveis: mantém o Wi-Fi ativo durante as sessões e verifica a ligação com mais frequência\n• Corrigida uma falha rara e agora avisa quando o limite de tempo em segundo plano do Android interrompe as sessões\n", "ru-RU": "• Переработаны экраны ошибок и отключения: понятная сводка и разворачиваемые детали, которые можно прокрутить и скопировать\n• Более стабильные соединения: держит Wi-Fi активным во время сессий и чаще проверяет связь\n• Исправлен редкий сбой, и теперь приложение уведомляет, когда ограничение времени Android в фоне останавливает сессии\n", "uk": "• Оновлені екрани помилок і відключення: чіткий підсумок і розгортані деталі, які можна гортати та копіювати\n• Стабільніші з'єднання: тримає Wi-Fi активним під час сеансів і частіше перевіряє зв'язок\n• Виправлено рідкісний збій, і тепер застосунок сповіщає, коли обмеження часу Android у фоні зупиняє сеанси\n", "zh-CN": "• 重新设计的连接错误和断开界面：清晰的摘要，以及可展开、可滚动、可复制的详情\n• 更稳定的连接：会话期间保持 Wi-Fi 唤醒，并更频繁地检查链路\n• 修复了一个罕见的崩溃，现在当 Android 的后台时间限制停止会话时会通知你\n"}}}}, "com.streak.app": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"3c35cadf3c4617699b1b66a586f132f402e3809a0adb1efe0bf47599ac6fb3bc": null, "399d1ce9eb8f10b612162a047b8d8ebb4425c5832ef00e65ed3d26006f9048ea": null, "c1a8c818b5fb70a7c5daf39e6ac74f9b841863f7f39cc63efc276f04115d09a0": null, "583d99d2abfa41d6cffda43d0137328382dcd6e2016f25833b515a2600ba6682": {"added": 1786749285772, "file": {"name": "/com.streak.app_63.apk", "sha256": "583d99d2abfa41d6cffda43d0137328382dcd6e2016f25833b515a2600ba6682", "size": 36415969, "ipfsCIDv1": "bafybeidw2b2rbb3b67dd6j2lumzed3stup6c72iewdpan4fjl6fdnne5ui"}, "src": {"name": "/com.streak.app_63_src.tar.gz", "sha256": "b96de4310a090c5dada3192187d257261d62a7d70995e841cda76c112468f380", "size": 185764892}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.5.0", "versionCode": 63, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["27b548f18df7181cf57423eaf0bc0ccfaa3558bd90bc16f12ec8d3c62d8ae956"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.streak.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}, "whatsNew": {"en-US": "🚀 New version 1.5.0\n⏱️ Focus survives leaving the app, and belongs to each habit\n📊 Focus stats: time per habit, charts and logging past sessions\n✅ A to-do list beside your habits, and a timeline to plan the day\n🔁 Every X days: the days in between are no longer misses\n💬 Write your own quotes and choose which ones show up\n🎨 Widgets can follow your system light or dark theme\n🐛 Fixed consistency, reordering with filters and stale widgets\n", "es-ES": "🚀 Nueva versión 1.5.0\n⏱️ Focus sobrevive al salir de la app, y es de cada hábito\n📊 Estadísticas de Focus: tiempo por hábito, gráficas y sesiones a mano\n✅ Lista de tareas junto a tus hábitos, y una línea de tiempo del día\n🔁 Cada X días: los días intermedios ya no cuentan como fallo\n💬 Escribe tus propias frases y elige cuáles salen\n🎨 Los widgets pueden seguir el tema claro u oscuro del sistema\n🐛 Arreglados la constancia, reordenar con filtros y widgets desfasados\n", "ru-RU": "🚀 Новая версия 1.5.0\n⏱️ Фокус переживает выход из приложения и привязан к привычке\n📊 Статистика фокуса: время по привычкам, графики и ручные сессии\n✅ Список задач рядом с привычками и таймлайн дня\n🔁 Каждые X дней: промежуточные дни больше не считаются пропуском\n💬 Свои цитаты и выбор, какие из них показывать\n🎨 Виджеты могут следовать светлой или тёмной теме системы\n🐛 Исправлены постоянство, порядок с фильтрами и устаревшие виджеты\n", "zh-CN": "🚀 新版本 1.5.0\n⏱️ 专注离开应用也不会中断，并且属于每个习惯\n📊 专注统计：各习惯用时、图表，还能手动补记过去的会话\n✅ 习惯旁边多了待办清单，以及一天的时间轴\n🔁 每 X 天：中间那些天不再算作失败\n💬 可以写自己的语录，并选择显示哪些\n🎨 小组件可以跟随系统的浅色或深色主题\n🐛 修复了坚持度、筛选后排序和小组件不更新的问题\n"}}, "39cdebe0e2389ddcbc84bda50be3ae7a73007d32eac941977ed0c2148e33223c": {"added": 1786866775484, "file": {"name": "/com.streak.app_62.apk", "sha256": "39cdebe0e2389ddcbc84bda50be3ae7a73007d32eac941977ed0c2148e33223c", "size": 34988477, "ipfsCIDv1": "bafybeid6kczfch4hhy5rv6e6eow6wopjpwusanwrj6ep2oa7dr6kar2vqe"}, "src": {"name": "/com.streak.app_62_src.tar.gz", "sha256": "644f82623da28f25c87cb092c030a98625ecd077cd3eb37cc07d04c3f1605ef0", "size": 185761658}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.5.0", "versionCode": 62, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["27b548f18df7181cf57423eaf0bc0ccfaa3558bd90bc16f12ec8d3c62d8ae956"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.streak.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}, "whatsNew": {"en-US": "🚀 New version 1.5.0\n⏱️ Focus survives leaving the app, and belongs to each habit\n📊 Focus stats: time per habit, charts and logging past sessions\n✅ A to-do list beside your habits, and a timeline to plan the day\n🔁 Every X days: the days in between are no longer misses\n💬 Write your own quotes and choose which ones show up\n🎨 Widgets can follow your system light or dark theme\n🐛 Fixed consistency, reordering with filters and stale widgets\n", "es-ES": "🚀 Nueva versión 1.5.0\n⏱️ Focus sobrevive al salir de la app, y es de cada hábito\n📊 Estadísticas de Focus: tiempo por hábito, gráficas y sesiones a mano\n✅ Lista de tareas junto a tus hábitos, y una línea de tiempo del día\n🔁 Cada X días: los días intermedios ya no cuentan como fallo\n💬 Escribe tus propias frases y elige cuáles salen\n🎨 Los widgets pueden seguir el tema claro u oscuro del sistema\n🐛 Arreglados la constancia, reordenar con filtros y widgets desfasados\n", "ru-RU": "🚀 Новая версия 1.5.0\n⏱️ Фокус переживает выход из приложения и привязан к привычке\n📊 Статистика фокуса: время по привычкам, графики и ручные сессии\n✅ Список задач рядом с привычками и таймлайн дня\n🔁 Каждые X дней: промежуточные дни больше не считаются пропуском\n💬 Свои цитаты и выбор, какие из них показывать\n🎨 Виджеты могут следовать светлой или тёмной теме системы\n🐛 Исправлены постоянство, порядок с фильтрами и устаревшие виджеты\n", "zh-CN": "🚀 新版本 1.5.0\n⏱️ 专注离开应用也不会中断，并且属于每个习惯\n📊 专注统计：各习惯用时、图表，还能手动补记过去的会话\n✅ 习惯旁边多了待办清单，以及一天的时间轴\n🔁 每 X 天：中间那些天不再算作失败\n💬 可以写自己的语录，并选择显示哪些\n🎨 小组件可以跟随系统的浅色或深色主题\n🐛 修复了坚持度、筛选后排序和小组件不更新的问题\n"}}, "82e8a0a16ee1a9a993d157f95c9090c3fe4eca2542d9e0f02f64dba3c9cb0ad9": {"added": 1786749285772, "file": {"name": "/com.streak.app_61.apk", "sha256": "82e8a0a16ee1a9a993d157f95c9090c3fe4eca2542d9e0f02f64dba3c9cb0ad9", "size": 32684445, "ipfsCIDv1": "bafybeifupojfyzfpuynzh4tjxawzodgnq7kugvfoqfmkbuyvfiyu2husj4"}, "src": {"name": "/com.streak.app_61_src.tar.gz", "sha256": "fc83e28c14faa02624a24264814d13d1a98a3c060ca4bc5c0b4465c11158e035", "size": 185763443}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.5.0", "versionCode": 61, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["27b548f18df7181cf57423eaf0bc0ccfaa3558bd90bc16f12ec8d3c62d8ae956"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "com.streak.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}, "whatsNew": {"en-US": "🚀 New version 1.5.0\n⏱️ Focus survives leaving the app, and belongs to each habit\n📊 Focus stats: time per habit, charts and logging past sessions\n✅ A to-do list beside your habits, and a timeline to plan the day\n🔁 Every X days: the days in between are no longer misses\n💬 Write your own quotes and choose which ones show up\n🎨 Widgets can follow your system light or dark theme\n🐛 Fixed consistency, reordering with filters and stale widgets\n", "es-ES": "🚀 Nueva versión 1.5.0\n⏱️ Focus sobrevive al salir de la app, y es de cada hábito\n📊 Estadísticas de Focus: tiempo por hábito, gráficas y sesiones a mano\n✅ Lista de tareas junto a tus hábitos, y una línea de tiempo del día\n🔁 Cada X días: los días intermedios ya no cuentan como fallo\n💬 Escribe tus propias frases y elige cuáles salen\n🎨 Los widgets pueden seguir el tema claro u oscuro del sistema\n🐛 Arreglados la constancia, reordenar con filtros y widgets desfasados\n", "ru-RU": "🚀 Новая версия 1.5.0\n⏱️ Фокус переживает выход из приложения и привязан к привычке\n📊 Статистика фокуса: время по привычкам, графики и ручные сессии\n✅ Список задач рядом с привычками и таймлайн дня\n🔁 Каждые X дней: промежуточные дни больше не считаются пропуском\n💬 Свои цитаты и выбор, какие из них показывать\n🎨 Виджеты могут следовать светлой или тёмной теме системы\n🐛 Исправлены постоянство, порядок с фильтрами и устаревшие виджеты\n", "zh-CN": "🚀 新版本 1.5.0\n⏱️ 专注离开应用也不会中断，并且属于每个习惯\n📊 专注统计：各习惯用时、图表，还能手动补记过去的会话\n✅ 习惯旁边多了待办清单，以及一天的时间轴\n🔁 每 X 天：中间那些天不再算作失败\n💬 可以写自己的语录，并选择显示哪些\n🎨 小组件可以跟随系统的浅色或深色主题\n🐛 修复了坚持度、筛选后排序和小组件不更新的问题\n"}}}}, "com.terminator.app": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"35d70adf13e8201381907ecfd2ad204e9787b7026c22d824b5a7431ff45d0a64": {"added": 1786866775484, "file": {"name": "/com.terminator.app_8.apk", "sha256": "35d70adf13e8201381907ecfd2ad204e9787b7026c22d824b5a7431ff45d0a64", "size": 7026021, "ipfsCIDv1": "bafybeidk4eo7xhdnme6pkd34w2lqimgjfvs656wozqsznmu5tow2az5tcq"}, "src": {"name": "/com.terminator.app_8_src.tar.gz", "sha256": "c06c66faf9e7a1760f86c6ef45f75e4c1f6431bfe5b91c884c1b679d34443acd", "size": 1957414}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.3.6", "versionCode": 8, "usesSdk": {"minSdkVersion": 33, "targetSdkVersion": 37}, "signer": {"sha256": ["2ceccbe571e76d60d46776d59c58158dbf46349e81eb3b0d700f37ea2f9e3434"]}, "usesPermission": [{"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "com.terminator.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.tk.quicksearch": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"91a2ddb5815d3ad365e53985aecc18b2f931dd84df3deb2fe36e5c5426167412": null, "23089bb8487c6c39a5c9781e887338c129e8803b28d3d06f1cce873c6836665a": {"added": 1786749285772, "file": {"name": "/com.tk.quicksearch_73.apk", "sha256": "23089bb8487c6c39a5c9781e887338c129e8803b28d3d06f1cce873c6836665a", "size": 6339464, "ipfsCIDv1": "bafybeiejqbsiwiv3hfazha24jinwrq5dmcr4euggs26nelcfey66cs2rn4"}, "src": {"name": "/com.tk.quicksearch_73_src.tar.gz", "sha256": "c6f2b044181b0dec59f1f892f103b600088addc599d84a54b972b08d536b4c78", "size": 16212839}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.0.1", "versionCode": 73, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["2b04de470fc4d9543aef5c06c9cbf4d7822c97ca20b7700620674275a8efe080"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.EXPAND_STATUS_BAR"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.PACKAGE_USAGE_STATS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.CALL_PHONE"}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.tk.quicksearch.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Optional AI providers and some search shortcuts connect to proprietary network services when enabled or configured by the user."}}, "whatsNew": {"en-US": "- Pin search results to notification panel by long-pressing\n- Rank search results based on whether they are recently opened or most opened\n- Improved today's agenda experience (requires calendar permission)\n- New search engine: Kagi\n- Option to allow two app rows in search results\n- Performance optimisations\n- Smaller app size and bug fixes\n"}}}}, "com.tristinbaker.idlefantasy": {"metadata": {"lastUpdated": 1786866775484, "description": {"en-US": "Idle Fantasy is a free and open source offline idle RPG inspired by classic MMORPGs. Train skills, fight in dungeons, craft gear, and complete quests. No internet connection, account, or ads required.\n\n<b>Features</b>\n\n• <b>23 trainable skills</b>: Mining, Fishing, Woodcutting, Farming, Thieving, Smithing, Cooking, Fletching, Crafting, Firemaking, Runecrafting, Herblore, Construction, Prayer, Mercantile, Agility, Slayer, Attack, Strength, Defense, Ranged, Magic, and Hitpoints\n\n• <b>Session-based training</b>: Start a session and close the app. Come back up to an hour later to collect your loot and XP. Agility reduces session time.\n\n• <b>29 dungeons</b>: Fight solo bosses and enemies to earn combat XP, coins, and rare drops. Equip weapons and armour to deal more damage.\n\n• <b>Crafting system</b>: Smelt bars, cook fish, fletch bows and arrows, craft jewellery. Consume gathered materials and earn XP and items.\n\n• <b>Prayer</b>: Bury bones collected from combat to earn Prayer XP.\n\n• <b>Equipment system</b>: Equip weapons, armour, tools, and jewellery to boost stats and skill efficiency.\n\n• <b>Quest system</b>: 189 quests spanning all skills. Earn XP rewards on completion.\n\n• <b>Pet system</b>: Rare pets can drop while training skills. Each pet provides a permanent XP boost to their linked skill.\n\n• <b>Achievements</b>: Track milestones across levelling, combat, quests, and collections.\n\n• <b>NPC Shop</b>: Buy supplies and sell your gathered resources for coins.\n\n• <b>No ads. No accounts. No internet required.</b> Your save data stays on your device.\n\n• <b>Translations</b>: Partial and full translations available for 16 languages.\n\nIdle Fantasy is free software released under the GPL-3.0 licence. Source code is available on the project repository.\n\n<b>Get updates faster</b>\n\nAdd the official Idle Fantasy repository to F-Droid to receive updates as soon as they are released, instead of waiting for the main F-Droid index to catch up.\n\n1. Open F-Droid and go to Settings → Repositories\n2. Tap + and paste: https://idlefantasy.tristinbaker.xyz/fdroid/repo\n3. Search for Idle Fantasy, open the app page, and under Repositories set Idle Fantasy as the preferred source.\n"}}, "versions": {"b59998962ad918628962771105b21ede59170928a30249c1d00a0e87befee138": null, "a0512e926a1b90ad1c1a53f68509b5cda20861c4cc2f6f96cb367bd33fd42a63": null, "db6c64be71c2a7e1cf3cd638d96df61d0aa056909023a4f4757817f7bddbb41a": {"added": 1786866775484, "file": {"name": "/com.tristinbaker.idlefantasy_132.apk", "sha256": "db6c64be71c2a7e1cf3cd638d96df61d0aa056909023a4f4757817f7bddbb41a", "size": 8884500, "ipfsCIDv1": "bafybeibzgm7cncvpvdtk7viign67ipcfv7gvcqx5aarsdopnlh6kmq2vom"}, "src": {"name": "/com.tristinbaker.idlefantasy_132_src.tar.gz", "sha256": "d9f1bdea0be954e0290a945a08b23c090e97407f1c9510e6b91563caf3a2cb78", "size": 9026221}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.13.5", "versionCode": 132, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["99a980a934cb0149bfbdd5f4358471ffe69302e0467bae4d8574d4feeda34010"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "com.tristinbaker.idlefantasy.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "• Large translatability pass (thanks widowild1, Azerliap, and mh-tp for the detailed audit): agility course names, crafting recipe names, the shop's 2× XP boost name, bestiary stat labels and dungeon locations, carnival prize stats and item appraisal names, potion sequence letters (now translator-chosen per language so colours can't collide), farming picker labels and planting messages, daily quest monster names, combat log food names, expedition lore notes, Infinite Tower session names, and cap"}}, "98059affbcbc71361fce7e5d08c7d2e5b249c788b548d83dc307e2702281a61a": {"added": 1786749285772, "file": {"name": "/com.tristinbaker.idlefantasy_131.apk", "sha256": "98059affbcbc71361fce7e5d08c7d2e5b249c788b548d83dc307e2702281a61a", "size": 8416588, "ipfsCIDv1": "bafybeihwzwaxdnxrssps3cdirrt2g3y6d4q4dr7afzkq7tr5e56gcmodde"}, "src": {"name": "/com.tristinbaker.idlefantasy_131_src.tar.gz", "sha256": "8f29ee2d88ecb82696f90c567a4bae8afbda39c4e1b09eda3ab47acf420be45d", "size": 8637927}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.13.4", "versionCode": 131, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["99a980a934cb0149bfbdd5f4358471ffe69302e0467bae4d8574d4feeda34010"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "com.tristinbaker.idlefantasy.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "• The 2× XP boost now costs 2.5M coins (down from 25M) but can no longer be stacked: a new boost can't be bought while one is running, and purchases are limited to one per week, resetting Monday 6am alongside weekly quests; previously stockpiled boost time is unaffected\n• Fixed the quest icons legend flashing over the home screen when tapping Settings quickly after returning from the Skills page: taps no longer register on a page that is still animating out, which could also open Settings uninte"}}}}, "com.tutpro.baresip.plus": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"059263889c6cbd68972f3f9e041fc02e34d57eccf7de4908fe4ac77cfb3627fa": null, "5650053ef9e6064bd5b34954a15b02c7c29dff21d62678b49b6b6f84b5afadca": {"added": 1786866775484, "file": {"name": "/com.tutpro.baresip.plus_298.apk", "sha256": "5650053ef9e6064bd5b34954a15b02c7c29dff21d62678b49b6b6f84b5afadca", "size": 104093754, "ipfsCIDv1": "bafybeielay5bao5uvkbrufznliiutue7ipycasug3hbgszfc64jxvgcbo4"}, "src": {"name": "/com.tutpro.baresip.plus_298_src.tar.gz", "sha256": "95e61a4ea350a5510f917f305305884ae3bb41b642cf2dbcea9e8ccd4785a278", "size": 1203348}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "77.1.5", "versionCode": 298, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["e6dcb08385c2f80681f65e39e22d29ef0d5719a41638b40f76d2dd6168706bee"]}, "usesPermission": [{"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_PHONE_CALL"}, {"name": "android.permission.FOREGROUND_SERVICE_MICROPHONE"}, {"name": "android.permission.FOREGROUND_SERVICE_CAMERA"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.MANAGE_OWN_CALLS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.DISABLE_KEYGUARD"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.CALL_PHONE"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.READ_PHONE_NUMBERS"}, {"name": "android.permission.READ_CALL_LOG"}, {"name": "android.permission.WRITE_CALL_LOG"}, {"name": "android.permission.USE_FULL_SCREEN_INTENT"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.BROADCAST_STICKY"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.SEND_SMS"}, {"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.READ_SMS"}, {"name": "android.permission.RECEIVE_MMS"}, {"name": "com.tutpro.baresip.plus.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Added \"Create Mobile Account\" sub-setting to \"Default Phone App\" setting because it is not possible to detect reliably if device has SIM that allows placing calls/SMS messages\n"}}}}, "com.unciv.app": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"bef2c5db477d709f538defc11b57b89dec7736b3675fe23d52ca84796d578529": null, "9e8a7af151bcf237deae33bd71b72a93692ae8ec723e154f5874622b2db0af0f": {"added": 1786866775484, "file": {"name": "/com.unciv.app_1246.apk", "sha256": "9e8a7af151bcf237deae33bd71b72a93692ae8ec723e154f5874622b2db0af0f", "size": 27109196, "ipfsCIDv1": "bafybeibqcs5up3ys4bmscfrzzxl3mmzvon2rj4tus4jvgf4mezz47he5z4"}, "src": {"name": "/com.unciv.app_1246_src.tar.gz", "sha256": "12ce9aae486e57b850e78fb9800c1bebc9faf12b86a934bd3dec91f6e49543fb", "size": 46470385}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "4.21.8", "versionCode": 1246, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["cd16e386469f23988fc9cdeca01bfefbd0deaed13a4907bce76e91acc9662c68"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "com.unciv.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Fixed rivers on water near Rock of Gibraltar\n\nResolved OOM errors on crash screen\n\nResolved ANRs from tech picker and notification overview screens\n\nFixed checking tile resource filters in dev console, for resources with revealing tech\n\nAI \"trade for war declaration\" reworked to disallow \"kamikaze wars\"\n\nNicer trade overview UI\n\nBy unciv-loof:\n- Non vanilla ranking types \n- Hide average turn time until a full turn has been played \n\nMax players with spectator - By SomeTroglodyte"}}}}, "com.unmark.app": {"metadata": {"added": 1786749285772, "categories": ["Graphics"], "changelog": "https://github.com/EmreO33/unmark/releases", "issueTracker": "https://github.com/EmreO33/unmark/issues", "lastUpdated": 1786749285772, "license": "GPL-3.0-or-later", "sourceCode": "https://github.com/EmreO33/unmark", "name": {"en-US": "Unmark"}, "summary": {"en-US": "Remove watermarks and unwanted objects from photos, entirely on-device"}, "description": {"en-US": "Unmark lets you paint over a watermark, logo, or unwanted object in a photo and\nerase it, entirely on your phone, with no internet connection required and nothing\nuploaded anywhere.\n\nWatermark removal uses a small, pure-Kotlin nearest-fill and smoothing algorithm.\nThere is no AI/ML model, no bundled weights, and no native code. See the project\nREADME for how it works.\n\nFeatures:\n\n* On-device inpainting, no cloud processing, no network permission\n* Manual brush selection with adjustable brush size\n* Undo last stroke / reset mask, original photo is never overwritten\n* Automatic metadata stripping (EXIF, XMP, possible C2PA) on save, with a scan showing\n  you what was found in the photo before it's gone\n* Save result to your gallery or share it directly\n* No ads, no trackers, no analytics, no account required\n"}, "icon": {"en-US": {"name": "/icons/com.unmark.app.7.png", "sha256": "85d0d73c991f14827b35153998f368da927380832dd90bb42d6f720849b6be71", "size": 4532}}, "preferredSigner": "7e5502a0362b1bbb4d2847e2bc301624ef0cd74073836c73a498aa20365761ad"}, "versions": {"7f323ccc71ac5447d0007f11c3d1da30c895abeefcbd8c3678bdc50569a85455": {"added": 1786749285772, "file": {"name": "/com.unmark.app_7.apk", "sha256": "7f323ccc71ac5447d0007f11c3d1da30c895abeefcbd8c3678bdc50569a85455", "size": 2085043, "ipfsCIDv1": "bafybeih45niivpdavr3bi5j2joddtb3bmln5askgoolbqk2h3daqfixrou"}, "src": {"name": "/com.unmark.app_7_src.tar.gz", "sha256": "bdd076b2dc68497bb44a86e272bf65075112e3fac28a254020899b1889fe863d", "size": 1361254}, "manifest": {"versionName": "0.4.0", "versionCode": 7, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 34}, "signer": {"sha256": ["7e5502a0362b1bbb4d2847e2bc301624ef0cd74073836c73a498aa20365761ad"]}, "usesPermission": [{"name": "com.unmark.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Removed automatic vendor watermark detection, it was unreliable. Batch process now works by drawing one watermark box on a preview photo and reusing it across the whole batch, instead of guessing a vendor's watermark position.\n"}}}}, "com.vipedev.kords2": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"4524a2cd4ad7a48fc77deba0a1350ea999e523f9c2f663bd77f75ebaadb34681": {"added": 1786866775484, "file": {"name": "/com.vipedev.kords2_16.apk", "sha256": "4524a2cd4ad7a48fc77deba0a1350ea999e523f9c2f663bd77f75ebaadb34681", "size": 28441208, "ipfsCIDv1": "bafybeig7mdaojeqdvis2daiczs3g3x4v7q35nh5xjoqlsjikmoskpidd4m"}, "src": {"name": "/com.vipedev.kords2_16_src.tar.gz", "sha256": "d7a53e6288787a27fdcb695844fd8a151a8dd2d52d7701d3bf7d655a61f5b6ce", "size": 403363998}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.4.0", "versionCode": 16, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["c26440752d3ef519ab7ab7fa6e424b462f45513ccb864d4d2f9a73a63de8b0c1"]}, "usesPermission": [{"name": "com.vipedev.kords2.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.werdeil.lyriondashboard": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"41679154ee4b47879cc434fa441011900585e93a6120c64212c63a3fb870a97d": {"added": 1786749285772, "file": {"name": "/com.werdeil.lyriondashboard_205.apk", "sha256": "41679154ee4b47879cc434fa441011900585e93a6120c64212c63a3fb870a97d", "size": 1548891, "ipfsCIDv1": "bafybeigavqtemcyso6bflt35diaqxtbowbpnqhyuh6yvszswe6wloixctq"}, "src": {"name": "/com.werdeil.lyriondashboard_205_src.tar.gz", "sha256": "730520abae85bd7bc959898567c1428e09bf38e38cb51630aad957100155de5f", "size": 1059134}, "manifest": {"versionName": "0.2.5", "versionCode": 205, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["6bb5af62735790594892258efe460965fdd19c95696e623606138d93b8c27d0a"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "com.werdeil.lyriondashboard.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "com.xmrchat.xmrpod": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"a495438e8ddb6b2283932a7ac56f79ab63a7edfd36b3d5834926591d81ee8fee": null, "bc5d25891e65b0fcc5cee0438b0b4479b46357b3672af03f9f1989f128203a19": {"added": 1786866775484, "file": {"name": "/com.xmrchat.xmrpod_14.apk", "sha256": "bc5d25891e65b0fcc5cee0438b0b4479b46357b3672af03f9f1989f128203a19", "size": 14727512, "ipfsCIDv1": "bafybeif4f7z5ih7dxqhcotvw4okodhhsmsxirjr4ves7cjbjzytw62ftwu"}, "src": {"name": "/com.xmrchat.xmrpod_14_src.tar.gz", "sha256": "817edf5c1ef5a65e08344c72e21e2ba5e39836d7696cd8f241cfe3dd30e15c15", "size": 9119155}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.1.13", "versionCode": 14, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["92744dda059cee0d258b1865376e57f33d67d4b2f92ae7857074e9b390c3a61c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "com.xmrchat.xmrpod.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "Depends on xmrchat.com and nest.xmrchat.com for creator discovery and tipping"}}, "whatsNew": {"en-US": "- Fix release builds crashing immediately on launch.\n"}}, "7b2f8932243545bd05f366cb8e05e0021ad7d57a28724f87bcbda37f3ace777f": {"added": 1786749285772, "file": {"name": "/com.xmrchat.xmrpod_13.apk", "sha256": "7b2f8932243545bd05f366cb8e05e0021ad7d57a28724f87bcbda37f3ace777f", "size": 14678381, "ipfsCIDv1": "bafybeib5piavu7evppzk4i2fwd6tldof3cteac2e6im6fjgun436cn4zea"}, "src": {"name": "/com.xmrchat.xmrpod_13_src.tar.gz", "sha256": "2ee9a7f9736408b7e3f5955db6b39faf8d350c717b1085f0470b5b4b39f30752", "size": 9118494}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.1.12", "versionCode": 13, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["92744dda059cee0d258b1865376e57f33d67d4b2f92ae7857074e9b390c3a61c"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "com.xmrchat.xmrpod.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"TetheredNet": {"en-US": "Depends on xmrchat.com and nest.xmrchat.com for creator discovery and tipping"}}, "whatsNew": {"en-US": "- Show XMRChat tip tiers in the Monero tipping form.\n- Enforce XMRChat page minimum tip amounts and tier-specific message lengths before opening a wallet.\n- Support creator page fiat currencies when previewing tip amounts.\n\n- Open tips with the documented universal Monero URI format and omit unsupported transaction descriptions.\n- Launch wallet deep links with browser-style intent metadata so Cake Wallet opens the send screen reliably.\n- Show clearer XMRChat tip creation errors for network failu"}}}}, "de.georgelsas.tuttocounter": {"metadata": {"lastUpdated": 1786866775484, "screenshots": {"phone": {"de-DE": [{"name": "/de.georgelsas.tuttocounter/de-DE/phoneScreenshots/1.png", "sha256": "74482b18065ecfb944a8f61a98d7184846b831ee82fbbd92fc0437bdd9e09945", "size": 87431}, {"name": "/de.georgelsas.tuttocounter/de-DE/phoneScreenshots/2.png", "sha256": "711a9bf1c48c9be7a25ebacc9bc6cc57d9a8ba8515b595006686cef7d3559b0b", "size": 471938}, {"name": "/de.georgelsas.tuttocounter/de-DE/phoneScreenshots/3.png", "sha256": "54c705a0ea952a4907f6f928780896986ee0e1661785633686091bb102eb0e50", "size": 141901}, {"name": "/de.georgelsas.tuttocounter/de-DE/phoneScreenshots/4.png", "sha256": "f3ab09af157855b7684aeba09db5fe419dfa294ab17e2858433c6a0e26452690", "size": 101692}], "en-US": [{"name": "/de.georgelsas.tuttocounter/en-US/phoneScreenshots/1.png", "sha256": "afd42ef5d522d807dde12ccfc795af0b7d9723ac241035354f657b99e8a6e9a1", "size": 99417}, {"name": "/de.georgelsas.tuttocounter/en-US/phoneScreenshots/2.png", "sha256": "4a037689fc2596e873784d007df78fcff65166fb7703c585b436e4f929f744dd", "size": 509585}, {"name": "/de.georgelsas.tuttocounter/en-US/phoneScreenshots/3.png", "sha256": "54c705a0ea952a4907f6f928780896986ee0e1661785633686091bb102eb0e50", "size": 141901}, {"name": "/de.georgelsas.tuttocounter/en-US/phoneScreenshots/4.png", "sha256": "f3ab09af157855b7684aeba09db5fe419dfa294ab17e2858433c6a0e26452690", "size": 101692}]}}}, "versions": {"d2925cef5aa122e760ea1536bb50e034acc6ab3bb6d5d4a30e59484866eb43ef": null, "875bce4ad8fd69f4530209f44b233f6542a26a47ff490ba07999a885870810e5": {"added": 1786866775484, "file": {"name": "/de.georgelsas.tuttocounter_15.apk", "sha256": "875bce4ad8fd69f4530209f44b233f6542a26a47ff490ba07999a885870810e5", "size": 6158130, "ipfsCIDv1": "bafybeihe2iuwob7obnkzurfjpmjjw7dcxb6ovemp7u7o6mu3kcpyfdfi4q"}, "src": {"name": "/de.georgelsas.tuttocounter_15_src.tar.gz", "sha256": "bde8f3f3eb715368c641bf0f4eb5dd73512435f573495f0e9a112f99a55c2329", "size": 3325156}, "manifest": {"versionName": "0.9.0", "versionCode": 15, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["42508a5ace9246117fed63c97d8688d1879749a56adb9a1e39a0dd0cdcd08bd1"]}, "usesPermission": [{"name": "de.georgelsas.tuttocounter.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "de.hauke_stieler.geonotes": {"metadata": {"lastUpdated": 1786866775484, "summary": {"cs": "Aplikace na vytváření georeferencovaných poznámek", "es": "Una aplicación sencilla para crear notas georreferenciadas."}, "description": {"cs": "Jednoduchá aplikace pro vytváření a správu georeferencovaných poznámek (text a fotky) na mapě. Cílem je rychlé vytváření poznámek bez jakékoli zbytečné interakce. Typickým využitím je sbírání geoprostorových dat, která lze později nahrát do OpenStreetMap.\n\nZákladní funkce:\n<ul>\n<li>Vytváření, přesouvání a mazání poznámek na mapě</li>\n<li>Připojování fotek k poznámkám</li>\n<li>Kategorizace poznámek</li>\n<li>Seznam všech poznámek</li>\n<li>Zobrazení a sledování aktuální polohy</li>\n<li>Export všech poznámek ve formátu GeoJSON nebo GPX</li>\n</ul>\n", "es": "<p>Una aplicación sencilla para crear y gestionar notas georreferenciadas (texto y fotos) en un mapa. El objetivo es crear notas de manera muy rápida y sin sobrecargar interacciones innecesarias. El caso de uso típico es recopilar datos geoespaciales que luego pueden cargarse en OpenStreetMap.</p>\n\n<p>Actualmente, las características básicas son:</p>\n<ul>\n<li>Crear, mover y eliminar notas en un mapa</li>\n<li>Adjuntar fotos a una nota</li>\n<li>Categorizar notas</li>\n<li>Lista de todas las notas</li>\n<li>Mostrar y seguir la ubicación actual</li>\n<li>Exportar todas las notas en formato GeoJSON o GPX</li>\n<li>Crear y restaurar copias de seguridad completas</li>\n</ul>\n"}}, "versions": {"b6cbc4cc1143eea2cb3bf785a87312f7f4139b68cc6919f8167a0e6672830760": null, "3ae39524abafcd791871f4d38954fe7095572442eae9f527b8fe553b0dc3fb81": {"added": 1786866775484, "file": {"name": "/de.hauke_stieler.geonotes_1008000.apk", "sha256": "3ae39524abafcd791871f4d38954fe7095572442eae9f527b8fe553b0dc3fb81", "size": 59596529, "ipfsCIDv1": "bafybeieliqjgyrpgsecc4p57realiukvy5jomwpeuaoaz2e4qt4ozfur6q"}, "src": {"name": "/de.hauke_stieler.geonotes_1008000_src.tar.gz", "sha256": "04e981cde18adb099cec7d2eed5dd8d66ac0a9c6b47d3287011bcbea982d283a", "size": 4799613}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.8.0", "versionCode": 1008000, "usesSdk": {"minSdkVersion": 27, "targetSdkVersion": 37}, "signer": {"sha256": ["739d24c894627555c697a7f73283a966db6308be9d29a80479029817c1d77f31"]}, "usesPermission": [{"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "de.hauke_stieler.geonotes.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}, "whatsNew": {"de-DE": "1.8.0:\n\nChanges:\n\n* Migration von osmdroid zu MapLibre\n  * Zoom-Buttons wurden entfernt (Zoomen geht weiterhin per Pinch-Geste oder durch doppelten Tap mit rauf-/runter-Bewegung des Fingers)\n* Speichern von Exporten nutzt nun den normalen Datei-Explorer statt des Teilen-Dialogs", "en-US": "1.8.0:\n\nChanges:\n\n* Migration from osmdroid to MapLibre\n  * Removal of zoom buttons (zoom by pinching-gesture or by tapping twice and moving finger up/down)\n* Save exports as normal files, i.e. via file-chooser instead of share-dialog", "hu": "1.8.0:\n\nVáltoztatások:\n\n* Költöztetés az osmdroid programkönyvtárról a MapLibre programkönyvtárra\n* Nagyítási gombok eltávolítása (nagyítás összecsippentéses kézmozdulattal vagy kétszeri koppintással, majd az ujj felfelé/lefelé mozgatásával)\n* Exportálások mentése normál fájlokként, azaz a fájlválasztón keresztül a megosztás párbeszédablak helyett\n"}}, "7ee121ea65b9f4d665530ae9d8ff14d73a2d7cb9f7a575e1296ea791d6626a1e": {"whatsNew": {"hu": "1.7.1:\n\nVáltoztatások:\n\n* Javítva lett a GeoJSON importálásában lévő hiba, ahol a kategóriák helytelenül lettek létrehozva\n"}}}}, "de.lolo.rssreader": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"21745ef48a65468ff1d625bf887a154c54d0a427b0f6cb8993b80b0208569fd1": null, "952a2d7d23813e22d9edb2095ab45bd1cb5e843054decb776a92f863b49d0839": {"added": 1786749285772, "file": {"name": "/de.lolo.rssreader_159.apk", "sha256": "952a2d7d23813e22d9edb2095ab45bd1cb5e843054decb776a92f863b49d0839", "size": 12847097, "ipfsCIDv1": "bafybeieogmdjgw5xwb4m4f5mdmmq2z2f3kuxnuyrcvkmuflbflfgmbp55q"}, "src": {"name": "/de.lolo.rssreader_159_src.tar.gz", "sha256": "f02c5e83d80cceebf9e8ed009e07200408129981347d2cf90c35070bbb2ad5ff", "size": 3449736}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.87.30", "versionCode": 159, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["2fb2657d3215dce8bc1b5a7ad84cf083ea6f3e3cde242fdb65e21d81a3b61e02"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "de.lolo.rssreader.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "de.markusfisch.android.binaryeye": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"8c052dd5e6d4df1221e3ade5ce8c34eb7281d5f200b4f035d3d2b4864f6321c0": null, "598f494d060c7bab38cb1cb21077efc8ebdc2b8b8a9ca2482c4f9ae667c10a48": {"added": 1786749285772, "file": {"name": "/de.markusfisch.android.binaryeye_177.apk", "sha256": "598f494d060c7bab38cb1cb21077efc8ebdc2b8b8a9ca2482c4f9ae667c10a48", "size": 9454797, "ipfsCIDv1": "bafybeicfxx3f4xnxfengr2nd2pyzkvnyoqxzdkhkcmur66wef5yxol4bee"}, "src": {"name": "/de.markusfisch.android.binaryeye_177_src.tar.gz", "sha256": "e18f7380635530d2d114397b018faa733ce9856b0e8a679e898fe9680a66afd7", "size": 2249802}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.75.2", "versionCode": 177, "features": [{"name": "android.hardware.camera"}], "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 37}, "signer": {"sha256": ["9ecdbf0677dd50609c76c2ba05dbe362232327b10a1c37cd58722993d9fe5d57"]}, "usesPermission": [{"name": "android.permission.ACCESS_FINE_LOCATION", "maxSdkVersion": 28}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "de.markusfisch.android.binaryeye.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 28}]}, "whatsNew": {"en-US": "* Update ZXingCpp\n\n"}}}}, "de.metager.metagerapp.fdroid": {"metadata": {"issueTracker": "https://gitlab.metager.de/metager/metager-app/-/issues", "lastUpdated": 1786866775484, "sourceCode": "https://gitlab.metager.de/metager/metager-app", "screenshots": {"phone": {"da-DK": [{"name": "/de.metager.metagerapp.fdroid/da-DK/phoneScreenshots/1.png", "sha256": "fab762c3ce1b7443a9c1d02d57dd69542306cbb3ed1767b6b99de578bfd66cb6", "size": 135270}, {"name": "/de.metager.metagerapp.fdroid/da-DK/phoneScreenshots/2.png", "sha256": "9ec26caabfa04b61fb91ed196a27ba3f539a9e631e53ba91cf537bc309259148", "size": 129674}, {"name": "/de.metager.metagerapp.fdroid/da-DK/phoneScreenshots/3.png", "sha256": "6b77076001709187493b85b6bcbf1588270162ee1cbdfa4e609bf9fa81a1ab7b", "size": 331807}, {"name": "/de.metager.metagerapp.fdroid/da-DK/phoneScreenshots/4.png", "sha256": "ce93412f01c0562988b5115b0c4cbe4594b31dee34897010cdb6ed750b072616", "size": 401266}, {"name": "/de.metager.metagerapp.fdroid/da-DK/phoneScreenshots/5.png", "sha256": "40aad5415f7f241e9acee88fb9cd6a45967b17e6d7921dad29ba673337388d10", "size": 230734}, {"name": "/de.metager.metagerapp.fdroid/da-DK/phoneScreenshots/6.png", "sha256": "c201d2a2a1c3e48a6cc566c7ca9d4cc304ecdaef69f7be56aa55ef7a5b3fc9ad", "size": 1076772}, {"name": "/de.metager.metagerapp.fdroid/da-DK/phoneScreenshots/7.png", "sha256": "9bb8f9f31ef38731cebeba6cb2a81fc5189c761b610753216ca8655bf491e465", "size": 172261}], "de-DE": [{"name": "/de.metager.metagerapp.fdroid/de-DE/phoneScreenshots/1.png", "sha256": "56dcd374ba291a85c6b65c07601262e4c879b21621304a56daa93f8aa66c1268", "size": 142579}, {"name": "/de.metager.metagerapp.fdroid/de-DE/phoneScreenshots/2.png", "sha256": "1dfeb90b3fcff3dea2bdb27226b19c5fe9b635d1b6a208bb326da14544f6c3a9", "size": 127815}, {"name": "/de.metager.metagerapp.fdroid/de-DE/phoneScreenshots/3.png", "sha256": "631e65ca1d931c0804599fdd8dd14e8a78ea06006fd32907aa3bc79d6dbe54b1", "size": 299333}, {"name": "/de.metager.metagerapp.fdroid/de-DE/phoneScreenshots/4.png", "sha256": "920b61a90a834bf8bd3a23bfdf029923982509a99517bf5dded0959c7312aea4", "size": 402167}, {"name": "/de.metager.metagerapp.fdroid/de-DE/phoneScreenshots/5.png", "sha256": "9bafb397ed2518de4aa1289abd14cf3214704eb910870aa824f21076318a0f5b", "size": 216257}, {"name": "/de.metager.metagerapp.fdroid/de-DE/phoneScreenshots/6.png", "sha256": "f3335776af0f3f17b8e7ee45713da959481a286aadefb87f5a4b232242e12027", "size": 1080806}, {"name": "/de.metager.metagerapp.fdroid/de-DE/phoneScreenshots/7.png", "sha256": "a0e001f0d848c6fc087ee177c1ba148bf23686b19c8478cdac981e126c948478", "size": 186907}], "en-GB": [{"name": "/de.metager.metagerapp.fdroid/en-GB/phoneScreenshots/1.png", "sha256": "5292de018dc8486a7e239416cfd91f5bce39675cc209ae3e74de83e732461036", "size": 132031}, {"name": "/de.metager.metagerapp.fdroid/en-GB/phoneScreenshots/2.png", "sha256": "1b5e3ee760f14e35eb1cbec1bb07624d4a62077de21a51cc92fece4d40024754", "size": 131486}, {"name": "/de.metager.metagerapp.fdroid/en-GB/phoneScreenshots/3.png", "sha256": "e59baa12841c105da67d0eb451600f4a1d736b41274ee8fe65a1e7c7cdd78be4", "size": 329713}, {"name": "/de.metager.metagerapp.fdroid/en-GB/phoneScreenshots/4.png", "sha256": "416378b516cc836d9ecbbd3dd36e5f4c002e8d967342f6b9054944bdb80201ca", "size": 399655}, {"name": "/de.metager.metagerapp.fdroid/en-GB/phoneScreenshots/5.png", "sha256": "3459af77fa3ba2d348ec78164a3bdbe1c670ae124beec949d775bd81ecccb95a", "size": 229118}, {"name": "/de.metager.metagerapp.fdroid/en-GB/phoneScreenshots/6.png", "sha256": "dd9faea21ef9c9d4feb3a1d94d5a4bf23cb36bd25cd44ee3c03e16e3f3bbf915", "size": 1045050}, {"name": "/de.metager.metagerapp.fdroid/en-GB/phoneScreenshots/7.png", "sha256": "db5b44831dc365765eb292c52a93482cc2bb747df74c3f0c9a20424cc7d55f3f", "size": 171592}], "en-US": [{"name": "/de.metager.metagerapp.fdroid/en-US/phoneScreenshots/1.png", "sha256": "5292de018dc8486a7e239416cfd91f5bce39675cc209ae3e74de83e732461036", "size": 132031}, {"name": "/de.metager.metagerapp.fdroid/en-US/phoneScreenshots/2.png", "sha256": "1b5e3ee760f14e35eb1cbec1bb07624d4a62077de21a51cc92fece4d40024754", "size": 131486}, {"name": "/de.metager.metagerapp.fdroid/en-US/phoneScreenshots/3.png", "sha256": "e59baa12841c105da67d0eb451600f4a1d736b41274ee8fe65a1e7c7cdd78be4", "size": 329713}, {"name": "/de.metager.metagerapp.fdroid/en-US/phoneScreenshots/4.png", "sha256": "416378b516cc836d9ecbbd3dd36e5f4c002e8d967342f6b9054944bdb80201ca", "size": 399655}, {"name": "/de.metager.metagerapp.fdroid/en-US/phoneScreenshots/5.png", "sha256": "3459af77fa3ba2d348ec78164a3bdbe1c670ae124beec949d775bd81ecccb95a", "size": 229118}, {"name": "/de.metager.metagerapp.fdroid/en-US/phoneScreenshots/6.png", "sha256": "dd9faea21ef9c9d4feb3a1d94d5a4bf23cb36bd25cd44ee3c03e16e3f3bbf915", "size": 1045050}, {"name": "/de.metager.metagerapp.fdroid/en-US/phoneScreenshots/7.png", "sha256": "db5b44831dc365765eb292c52a93482cc2bb747df74c3f0c9a20424cc7d55f3f", "size": 171592}], "es-ES": [{"name": "/de.metager.metagerapp.fdroid/es-ES/phoneScreenshots/1.png", "sha256": "ad6974142ea85999f6901f932a30b1d708d3bee36c24202471d0a075345b580c", "size": 140552}, {"name": "/de.metager.metagerapp.fdroid/es-ES/phoneScreenshots/2.png", "sha256": "e8c5ba43be248c7319d22111b2ecbcbdbbd2858c2bffa95cda51275af32ce116", "size": 150796}, {"name": "/de.metager.metagerapp.fdroid/es-ES/phoneScreenshots/3.png", "sha256": "9e49c89eee58f12c1c08e23df6c447a8ee9b77d66fb9f98b3fef665a547a235b", "size": 296656}, {"name": "/de.metager.metagerapp.fdroid/es-ES/phoneScreenshots/4.png", "sha256": "bc620c1e210fe8ecb96eb2dd0f30ec38ad8aac16661bec5ef617f026c34e1c36", "size": 405244}, {"name": "/de.metager.metagerapp.fdroid/es-ES/phoneScreenshots/5.png", "sha256": "fd1d078ee4066c280f38f50e4ba58b9e4d7e13a9f47e26d781ac705617d6b46e", "size": 247047}, {"name": "/de.metager.metagerapp.fdroid/es-ES/phoneScreenshots/6.png", "sha256": "6880801a89220f9b680c113036b833021e7fe27034723abf748af2b7ad2a6029", "size": 1064576}, {"name": "/de.metager.metagerapp.fdroid/es-ES/phoneScreenshots/7.png", "sha256": "d250f438d255d4cbe61fe5cd44436a938ed72ce48a9b5778aa2acadc6c69b203", "size": 188231}], "es-US": [{"name": "/de.metager.metagerapp.fdroid/es-US/phoneScreenshots/1.png", "sha256": "ad6974142ea85999f6901f932a30b1d708d3bee36c24202471d0a075345b580c", "size": 140552}, {"name": "/de.metager.metagerapp.fdroid/es-US/phoneScreenshots/2.png", "sha256": "e8c5ba43be248c7319d22111b2ecbcbdbbd2858c2bffa95cda51275af32ce116", "size": 150796}, {"name": "/de.metager.metagerapp.fdroid/es-US/phoneScreenshots/3.png", "sha256": "9e49c89eee58f12c1c08e23df6c447a8ee9b77d66fb9f98b3fef665a547a235b", "size": 296656}, {"name": "/de.metager.metagerapp.fdroid/es-US/phoneScreenshots/4.png", "sha256": "bc620c1e210fe8ecb96eb2dd0f30ec38ad8aac16661bec5ef617f026c34e1c36", "size": 405244}, {"name": "/de.metager.metagerapp.fdroid/es-US/phoneScreenshots/5.png", "sha256": "fd1d078ee4066c280f38f50e4ba58b9e4d7e13a9f47e26d781ac705617d6b46e", "size": 247047}, {"name": "/de.metager.metagerapp.fdroid/es-US/phoneScreenshots/6.png", "sha256": "6880801a89220f9b680c113036b833021e7fe27034723abf748af2b7ad2a6029", "size": 1064576}, {"name": "/de.metager.metagerapp.fdroid/es-US/phoneScreenshots/7.png", "sha256": "d250f438d255d4cbe61fe5cd44436a938ed72ce48a9b5778aa2acadc6c69b203", "size": 188231}], "fi-FI": [{"name": "/de.metager.metagerapp.fdroid/fi-FI/phoneScreenshots/1.png", "sha256": "c3d1311a3190ff28d0eccb1912375583f2bb5a413adb43db35948310245fa1e6", "size": 122399}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/phoneScreenshots/2.png", "sha256": "e4e75494209be11996c39969a7948a4581917ce8edadc4c94123eaed2b2f7cb3", "size": 133974}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/phoneScreenshots/3.png", "sha256": "84f1a2ea99ce6ef96df7e5938006697bb21d90e30e5110f0efe5f30a7ea2270c", "size": 296770}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/phoneScreenshots/4.png", "sha256": "f91218703f792933ea57d08644127adc760671d38f0528a2263dbd43e47b0fbe", "size": 401561}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/phoneScreenshots/5.png", "sha256": "334c4202d1177b27f6ae52cb43e08027cc8957b482f510270f3b11db12015396", "size": 226914}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/phoneScreenshots/6.png", "sha256": "b3a685ba2b5bfef4fa3bfde6398f6db8af366145ef6bdf613bbcddd604c718e5", "size": 1075707}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/phoneScreenshots/7.png", "sha256": "a9d340d53ed959a8539623e13effc96e93e5ed00e571a543416f9c20e8c55a9b", "size": 166158}], "fr-FR": [{"name": "/de.metager.metagerapp.fdroid/fr-FR/phoneScreenshots/1.png", "sha256": "4414064c38f5f05b91e6e647e67aa39ace26360fb605e24c143b8ec9e5cee8cc", "size": 134112}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/phoneScreenshots/2.png", "sha256": "8c0fb8b7c9f979736479421688d590eee6dc48c552b2b89554ad638c9c532e58", "size": 140065}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/phoneScreenshots/3.png", "sha256": "4215527588c13a5f93e4d28c0e81bb3d88c30475b7ff17d4196e34438ec47ba7", "size": 300149}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/phoneScreenshots/4.png", "sha256": "844135271b43412b3017c0b69101ba1b4538ae7ab9ef9c7f5e7260afdfa2db42", "size": 380975}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/phoneScreenshots/5.png", "sha256": "c132b696e46d4651a7ecc42084e09f1a82afdbd4a37eea65eba111b5b0d39e89", "size": 253024}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/phoneScreenshots/6.png", "sha256": "ae19e97c148720ba493d7ae76ab25477ef15837631be63d4f0cad1a8653eaae3", "size": 1076871}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/phoneScreenshots/7.png", "sha256": "e54277bda880b52204be868e55e8a6c0ca476f147ee327d6c7fe66cf6ec58c04", "size": 199397}], "it-IT": [{"name": "/de.metager.metagerapp.fdroid/it-IT/phoneScreenshots/1.png", "sha256": "225b92e2b76c3794d1539d1cc614ce9943abfffce1bc6d3743985ead5c54b4e7", "size": 134736}, {"name": "/de.metager.metagerapp.fdroid/it-IT/phoneScreenshots/2.png", "sha256": "96e1cf0dd5fe0cb38aeff6c1aebae6cccf3f0561db6336c593084cf357789a9a", "size": 137187}, {"name": "/de.metager.metagerapp.fdroid/it-IT/phoneScreenshots/3.png", "sha256": "eec959fb5a7f983addcc08ada0c38109fd64e3da38a04816fbb3c5f366915f1f", "size": 300465}, {"name": "/de.metager.metagerapp.fdroid/it-IT/phoneScreenshots/4.png", "sha256": "a5672e0a5997f897dbc09dec869f4a0f302f83d0e36896991138f6084c44c56d", "size": 378358}, {"name": "/de.metager.metagerapp.fdroid/it-IT/phoneScreenshots/5.png", "sha256": "0825b733a5354a7b83740a17e133c06124fd9cb5cadc49124103732b74f9bfb2", "size": 232632}, {"name": "/de.metager.metagerapp.fdroid/it-IT/phoneScreenshots/6.png", "sha256": "55aa8282b81f87a03afb97005d8987160eddcd72e7a31d54d57d005435bbaa79", "size": 1069981}, {"name": "/de.metager.metagerapp.fdroid/it-IT/phoneScreenshots/7.png", "sha256": "872e2befe5641a93e462b1df484a83a1f0e4872cf41a46c4f59e8d4f634662e9", "size": 173380}], "nl-NL": [{"name": "/de.metager.metagerapp.fdroid/nl-NL/phoneScreenshots/1.png", "sha256": "c4ca467e44bd3ffe4f683255deeae4798fbde98a797d91ac58d5eeeae1882d26", "size": 129989}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/phoneScreenshots/2.png", "sha256": "700ff8d1b7461c1e352b53e54d4296408849e28b1dcecea09622b8ccc17e1100", "size": 133903}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/phoneScreenshots/3.png", "sha256": "3f0c7cefd7e8477057b4816e23fbd03bb2bccbf4ce1a44737d2fb48a11ef8e16", "size": 331534}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/phoneScreenshots/4.png", "sha256": "95284bc45932409d6d62c1ee969ed550cf699e23d563bd2942131fc45b95d0d5", "size": 383965}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/phoneScreenshots/5.png", "sha256": "adb22922e3d64ae87a869c2cf858fecbabc9868ac9dc1f3c92f0540db11e12c3", "size": 229016}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/phoneScreenshots/6.png", "sha256": "4296ee71445ba20ab206e840a754f3bca2cf980777a464ce8b453db765884e1d", "size": 1081882}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/phoneScreenshots/7.png", "sha256": "ea9418c9634e72e3e177b263b1269f95018aa62b4d2881b3cb6a20808b5c904d", "size": 180709}], "pl-PL": [{"name": "/de.metager.metagerapp.fdroid/pl-PL/phoneScreenshots/1.png", "sha256": "cfe45c1bb0caa649904396b7e6acef25d8f352e7d4a67862725ab2c9dbf55113", "size": 138372}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/phoneScreenshots/2.png", "sha256": "873b67b3de0c8f967d09288d3925ef928ab2da393940c8c8b2b202d3ec695b5f", "size": 137752}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/phoneScreenshots/3.png", "sha256": "8c2c3a6b9d156a35aa2637d30300df65080b19d1803882042ca99df401de71a1", "size": 299620}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/phoneScreenshots/4.png", "sha256": "c1bec70f98a9ba145f28242d7b14054feff5b22c5944d67ff9c8e39567c65ec5", "size": 385717}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/phoneScreenshots/5.png", "sha256": "add19604c764417863c08b84e76fe3e88bcfdfad0af93d709dc2784a175fe344", "size": 254532}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/phoneScreenshots/6.png", "sha256": "ce021c1bf8c49ff9bd75f9cb0cf2c421be5ee50cb23a27f319040573a1fab83b", "size": 1068376}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/phoneScreenshots/7.png", "sha256": "ce9785295f1181198cc688edb44931597b8ddc029ae673be8ba5260d015457e6", "size": 190071}], "pt-PT": [{"name": "/de.metager.metagerapp.fdroid/pt-PT/phoneScreenshots/1.png", "sha256": "0a08d1f7df9806a0da80db1b870a8e65ab9724bc02e99af1dd04b93418677640", "size": 145020}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/phoneScreenshots/2.png", "sha256": "1cbad0af0f10cf28157627857c932cf2d49a0808e76bddd76bf188bb482070d4", "size": 153312}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/phoneScreenshots/3.png", "sha256": "f09f474030479f4755f23329ffb77a173c2b40805a5fb142eba732af0cd03d95", "size": 299671}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/phoneScreenshots/4.png", "sha256": "c37c4cf9602c3dd9b2e2379b5d1a8c1352475cac0e03f68a0b3ee0cc577bd963", "size": 385857}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/phoneScreenshots/5.png", "sha256": "97f17eb582fe3396dcbc61797536eab19bcbabcecf060eb0e600d2c7245c5b05", "size": 264135}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/phoneScreenshots/6.png", "sha256": "61a45e138e47fd51c81ef07b56ec79a0ffefd47304f36371b6a1732670ec11b7", "size": 1064477}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/phoneScreenshots/7.png", "sha256": "dae778a7064149552c290b5c664ad7782e920ff1feddd56ac8d1efd8554ac4f4", "size": 195092}], "sv-SE": [{"name": "/de.metager.metagerapp.fdroid/sv-SE/phoneScreenshots/1.png", "sha256": "cc342bff7d87ffd3dbead7de60ddb6ace57755964922aa033efdc101f0984694", "size": 131918}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/phoneScreenshots/2.png", "sha256": "f1c2f5d1c63c4868f23e990be04fe4011b27768db11ee84a3c59fc48a944984a", "size": 131319}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/phoneScreenshots/3.png", "sha256": "a89ea514c0ef97af1fa18b9dc17c1f6fa611df90749d596353a066814de21d1a", "size": 332247}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/phoneScreenshots/4.png", "sha256": "c1178c077280549745884ca62d366e23e100927f1930ef7aee1301119acf5dc8", "size": 406537}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/phoneScreenshots/5.png", "sha256": "afd291e16169dcaf849adb8b53e9612f9654409f8d6fada8fe2bde537ff8bcc4", "size": 228489}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/phoneScreenshots/6.png", "sha256": "3b0380eff9ebd75a1263d33a32fe4a3b5fbcba721fc678c327425b5d81ee8aae", "size": 1076875}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/phoneScreenshots/7.png", "sha256": "84f898a405b1723faa66326d2e5ed2b3363e73f9afc30f97e27f8be73474995e", "size": 176989}]}, "sevenInch": {"da-DK": [{"name": "/de.metager.metagerapp.fdroid/da-DK/sevenInchScreenshots/1.png", "sha256": "113362b49269449c19402b9ecd06adccc4ffbdc1383eb6d495a605f5a27d3030", "size": 116744}, {"name": "/de.metager.metagerapp.fdroid/da-DK/sevenInchScreenshots/2.png", "sha256": "04081b25b90cd60cf7cc1985ec016c287b02eba8be238078fe3a54a6b93cc889", "size": 115876}, {"name": "/de.metager.metagerapp.fdroid/da-DK/sevenInchScreenshots/3.png", "sha256": "a5fa58acc047811632ad388e4e8bc2d4bbebd45314a055346ed690897849598b", "size": 330660}, {"name": "/de.metager.metagerapp.fdroid/da-DK/sevenInchScreenshots/4.png", "sha256": "a2a60c65f0000d236bc22465d08101a24fbe145792c0b3804fca05a8b09cbd3c", "size": 526085}, {"name": "/de.metager.metagerapp.fdroid/da-DK/sevenInchScreenshots/5.png", "sha256": "cc3fe63d6d95173e9f6670577284ac6e018e8848b485f01e30e7f396ffe9bf3c", "size": 201296}, {"name": "/de.metager.metagerapp.fdroid/da-DK/sevenInchScreenshots/6.png", "sha256": "da83775a25ae891f783a1c576ad0fb21c7d1ec1f6d50eb9f405848a672ab7cbb", "size": 1030134}, {"name": "/de.metager.metagerapp.fdroid/da-DK/sevenInchScreenshots/7.png", "sha256": "2c9d0386e4363c8fc2e58b73608a0c1a49e7fce7db0f6cd5df6c76834df22fb9", "size": 149665}], "de-DE": [{"name": "/de.metager.metagerapp.fdroid/de-DE/sevenInchScreenshots/1.png", "sha256": "0905e665afd832fd0a524207ba69d126456720b382b0d0b8a70dc5f4bc8c98b1", "size": 122556}, {"name": "/de.metager.metagerapp.fdroid/de-DE/sevenInchScreenshots/2.png", "sha256": "50a6557f6e30110d44618d7015e1122771b9871b9c412b50ad517de0be21382d", "size": 112753}, {"name": "/de.metager.metagerapp.fdroid/de-DE/sevenInchScreenshots/3.png", "sha256": "da5805f834c98ffd06e8369abd944573f05e0e796b835dc904d393935298ed6d", "size": 267875}, {"name": "/de.metager.metagerapp.fdroid/de-DE/sevenInchScreenshots/4.png", "sha256": "3cfe613f74b20f67f2d3994baae422dff0cf951181ccc3d44e7642e3455801b8", "size": 525992}, {"name": "/de.metager.metagerapp.fdroid/de-DE/sevenInchScreenshots/5.png", "sha256": "8ccdb420330c71f52762934a67c69fca3863a7404b54ef0530f3127a8f5cdd11", "size": 177108}, {"name": "/de.metager.metagerapp.fdroid/de-DE/sevenInchScreenshots/6.png", "sha256": "49c15a4e1d7298d45f443ab48dfff1ba1cbfb40ffcf1560608517acc3bd4a573", "size": 1032897}, {"name": "/de.metager.metagerapp.fdroid/de-DE/sevenInchScreenshots/7.png", "sha256": "391f49fcc8f1bd8807d754207df8e3ba10a27df1cf304e41adab396afd0f737d", "size": 155357}], "en-GB": [{"name": "/de.metager.metagerapp.fdroid/en-GB/sevenInchScreenshots/1.png", "sha256": "6c5068fdafac9da699c0cc899a0e626650e6c6cf8a59c8bfb0273b82dd3131e0", "size": 111807}, {"name": "/de.metager.metagerapp.fdroid/en-GB/sevenInchScreenshots/2.png", "sha256": "43e71db8e8ba907e2082d1e25a93cef001cda3e5051028fc37d41ab7df2fb6f1", "size": 118411}, {"name": "/de.metager.metagerapp.fdroid/en-GB/sevenInchScreenshots/3.png", "sha256": "f04418fb1968334b9481ec12ec3499560247c3bd0be746ca026057e192c76429", "size": 336732}, {"name": "/de.metager.metagerapp.fdroid/en-GB/sevenInchScreenshots/4.png", "sha256": "5f9bfcdb96a20862e487e84b6bddb235ec8f886f8ee8526a11b4f2f20341fd53", "size": 523843}, {"name": "/de.metager.metagerapp.fdroid/en-GB/sevenInchScreenshots/5.png", "sha256": "04f284b630432f74dc74d221f427e6994b7b5f1a757472dacc2eaec13db292a7", "size": 198630}, {"name": "/de.metager.metagerapp.fdroid/en-GB/sevenInchScreenshots/6.png", "sha256": "c90308025447d2d88a55ffaa28419059dd8c1c8177ead0f5fcf755018f76fc2d", "size": 1029642}, {"name": "/de.metager.metagerapp.fdroid/en-GB/sevenInchScreenshots/7.png", "sha256": "72731a4f868af453ee778884e5e0f6b81399e86147da644f67b554e2a920189c", "size": 145697}], "en-US": [{"name": "/de.metager.metagerapp.fdroid/en-US/sevenInchScreenshots/1.png", "sha256": "6c5068fdafac9da699c0cc899a0e626650e6c6cf8a59c8bfb0273b82dd3131e0", "size": 111807}, {"name": "/de.metager.metagerapp.fdroid/en-US/sevenInchScreenshots/2.png", "sha256": "43e71db8e8ba907e2082d1e25a93cef001cda3e5051028fc37d41ab7df2fb6f1", "size": 118411}, {"name": "/de.metager.metagerapp.fdroid/en-US/sevenInchScreenshots/3.png", "sha256": "f04418fb1968334b9481ec12ec3499560247c3bd0be746ca026057e192c76429", "size": 336732}, {"name": "/de.metager.metagerapp.fdroid/en-US/sevenInchScreenshots/4.png", "sha256": "5f9bfcdb96a20862e487e84b6bddb235ec8f886f8ee8526a11b4f2f20341fd53", "size": 523843}, {"name": "/de.metager.metagerapp.fdroid/en-US/sevenInchScreenshots/5.png", "sha256": "04f284b630432f74dc74d221f427e6994b7b5f1a757472dacc2eaec13db292a7", "size": 198630}, {"name": "/de.metager.metagerapp.fdroid/en-US/sevenInchScreenshots/6.png", "sha256": "c90308025447d2d88a55ffaa28419059dd8c1c8177ead0f5fcf755018f76fc2d", "size": 1029642}, {"name": "/de.metager.metagerapp.fdroid/en-US/sevenInchScreenshots/7.png", "sha256": "72731a4f868af453ee778884e5e0f6b81399e86147da644f67b554e2a920189c", "size": 145697}], "es-ES": [{"name": "/de.metager.metagerapp.fdroid/es-ES/sevenInchScreenshots/1.png", "sha256": "07464ea6089443d4426db027d8042278031283e6f8facf0cd2b8d686545c8151", "size": 115957}, {"name": "/de.metager.metagerapp.fdroid/es-ES/sevenInchScreenshots/2.png", "sha256": "42a8a1e92f0660b3659d23d67294a8d870cb9d78fff6824412c10a40886de8d1", "size": 127104}, {"name": "/de.metager.metagerapp.fdroid/es-ES/sevenInchScreenshots/3.png", "sha256": "9dea137590fc42b23183423bc73d21f77588fa64d06986a438ca7171190be478", "size": 279783}, {"name": "/de.metager.metagerapp.fdroid/es-ES/sevenInchScreenshots/4.png", "sha256": "975db88809cb8088d120522402b3d9f50e4defd1d6c1e910bbfffa6cdaf51330", "size": 530879}, {"name": "/de.metager.metagerapp.fdroid/es-ES/sevenInchScreenshots/5.png", "sha256": "e3b069b1d306b0ff93216f3d390539d0b3187dc074bde368fa7a2dbc4cba3ed2", "size": 184088}, {"name": "/de.metager.metagerapp.fdroid/es-ES/sevenInchScreenshots/6.png", "sha256": "5b6f94d13b6e4273dd253eab32ece85a1c5be2dc6091245df5d68250db184192", "size": 1034785}, {"name": "/de.metager.metagerapp.fdroid/es-ES/sevenInchScreenshots/7.png", "sha256": "bb23a4d3ad493180c726ed1d14e2acbe3e7dc2b243807e1e72b59d01ac519f9d", "size": 155592}], "es-US": [{"name": "/de.metager.metagerapp.fdroid/es-US/sevenInchScreenshots/1.png", "sha256": "07464ea6089443d4426db027d8042278031283e6f8facf0cd2b8d686545c8151", "size": 115957}, {"name": "/de.metager.metagerapp.fdroid/es-US/sevenInchScreenshots/2.png", "sha256": "42a8a1e92f0660b3659d23d67294a8d870cb9d78fff6824412c10a40886de8d1", "size": 127104}, {"name": "/de.metager.metagerapp.fdroid/es-US/sevenInchScreenshots/3.png", "sha256": "9dea137590fc42b23183423bc73d21f77588fa64d06986a438ca7171190be478", "size": 279783}, {"name": "/de.metager.metagerapp.fdroid/es-US/sevenInchScreenshots/4.png", "sha256": "975db88809cb8088d120522402b3d9f50e4defd1d6c1e910bbfffa6cdaf51330", "size": 530879}, {"name": "/de.metager.metagerapp.fdroid/es-US/sevenInchScreenshots/5.png", "sha256": "e3b069b1d306b0ff93216f3d390539d0b3187dc074bde368fa7a2dbc4cba3ed2", "size": 184088}, {"name": "/de.metager.metagerapp.fdroid/es-US/sevenInchScreenshots/6.png", "sha256": "5b6f94d13b6e4273dd253eab32ece85a1c5be2dc6091245df5d68250db184192", "size": 1034785}, {"name": "/de.metager.metagerapp.fdroid/es-US/sevenInchScreenshots/7.png", "sha256": "bb23a4d3ad493180c726ed1d14e2acbe3e7dc2b243807e1e72b59d01ac519f9d", "size": 155592}], "fi-FI": [{"name": "/de.metager.metagerapp.fdroid/fi-FI/sevenInchScreenshots/1.png", "sha256": "3baa733c6686676e8b73d70b3841d7c6e8d4440ac01d8ab8123d43976e2c894a", "size": 103179}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/sevenInchScreenshots/2.png", "sha256": "b016fb1f16866aab6ac1e5004b634a3a3a37d0e20cb2981f683e1cb91ff2a958", "size": 119912}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/sevenInchScreenshots/3.png", "sha256": "85006e9f66c10c3d9441e9581fe4525257e81a0d2f497d6e1d21c5e932646502", "size": 262550}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/sevenInchScreenshots/4.png", "sha256": "8ebece965fe31cd3ff9e133042782827dbb3a34c940dd6d43b36e7e34faabcc2", "size": 525232}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/sevenInchScreenshots/5.png", "sha256": "4ce87f14c33d5abe51f595433e770381864487a6fbbc43878d5b52e16ff7192e", "size": 168682}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/sevenInchScreenshots/6.png", "sha256": "757a591f3497351d6f784ab0637253513b324665348302ab3878f3fc84a6fbc4", "size": 1027273}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/sevenInchScreenshots/7.png", "sha256": "83441512a901d4884697f9a529583b9f845a21f47c6e4f32aa3fb246b3e755fa", "size": 152518}], "fr-FR": [{"name": "/de.metager.metagerapp.fdroid/fr-FR/sevenInchScreenshots/1.png", "sha256": "7bb420f61b6b1607c7be8c0962af4fb8121764a945fddaf153a07ef1ff9828f4", "size": 120226}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/sevenInchScreenshots/2.png", "sha256": "ca4cb6b62ec0d83a4fec801ad60fd548fdab6c8405ce787b42250e1e182ae2d6", "size": 122973}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/sevenInchScreenshots/3.png", "sha256": "782495f4a20acfce4a0d78865930c80206624b2dfc7eb174c74c1675a7349783", "size": 277352}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/sevenInchScreenshots/4.png", "sha256": "f5172daf2ebc094fef94e08eff91b2cab14c1d72d8e2bcee92a17117214b5a6a", "size": 463072}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/sevenInchScreenshots/5.png", "sha256": "70fad9b15dbebe218dc10746337e9924efd654bcb75721e94a2e4aaf4083dfa2", "size": 190935}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/sevenInchScreenshots/6.png", "sha256": "996995f153fb5978c1daa6607a6d7248aa02fe3a827cf1098a1f173495e9a2a8", "size": 1029383}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/sevenInchScreenshots/7.png", "sha256": "90c8ae9e35090490ac5c72a51a6d9dab6574909b440e60fa68e3ab08b0e6e657", "size": 160805}], "it-IT": [{"name": "/de.metager.metagerapp.fdroid/it-IT/sevenInchScreenshots/1.png", "sha256": "9c40bc8a0ffc5baf21e5d4413f6826842e06412152dc4597d8b8169d5ad9794d", "size": 112784}, {"name": "/de.metager.metagerapp.fdroid/it-IT/sevenInchScreenshots/2.png", "sha256": "f0ebe5930ea56d36698f2b6ed486e9604bdf262d402807b294e96f625c55d0cd", "size": 116443}, {"name": "/de.metager.metagerapp.fdroid/it-IT/sevenInchScreenshots/3.png", "sha256": "8979e92b1a721c34680db5fb5058af7757bf38c8a44727d1c6592abe3808b567", "size": 339553}, {"name": "/de.metager.metagerapp.fdroid/it-IT/sevenInchScreenshots/4.png", "sha256": "d0a0bd32d5500b684deff051232a7c6ac995c0bb7c7178991a14247517f8ddbc", "size": 457959}, {"name": "/de.metager.metagerapp.fdroid/it-IT/sevenInchScreenshots/5.png", "sha256": "e7e94ec64c293368bed8434ce6626fda61cc33ccb584000f089c31285eca3ef6", "size": 174431}, {"name": "/de.metager.metagerapp.fdroid/it-IT/sevenInchScreenshots/6.png", "sha256": "fecdec6acda2fb3b39e8d32d80cb077186499eabc43112833c0e4f7830769b35", "size": 1023868}, {"name": "/de.metager.metagerapp.fdroid/it-IT/sevenInchScreenshots/7.png", "sha256": "11e12a4290e495658810b95f67c70a495a38a6a104a045bb48774a51790d802e", "size": 148456}], "nl-NL": [{"name": "/de.metager.metagerapp.fdroid/nl-NL/sevenInchScreenshots/1.png", "sha256": "bc285942938baa3694f7f97e1f80c3b773100ebe2970a7c9f7b961bbb3a496b6", "size": 105525}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/sevenInchScreenshots/2.png", "sha256": "74d096492849965dfc109d0d0e822fbced89e2ca180e8b8cefe75c8ef8aabae9", "size": 118078}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/sevenInchScreenshots/3.png", "sha256": "cf3b9e986dee7bbec385a9ff51c063de01e19aef1edd19123f5ce5bca50e1c67", "size": 337148}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/sevenInchScreenshots/4.png", "sha256": "875994e0c08861e4cabf7a488390fb54cc362711c556042b158dab2cd3acb94f", "size": 466803}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/sevenInchScreenshots/5.png", "sha256": "c01130aa3d7b26725d673032e9a5ddf3d1dd39e69a42dac2ac195c3dea6bef8f", "size": 189373}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/sevenInchScreenshots/6.png", "sha256": "b1c9b8b1569965858418004d5ea2240d1274f9ea727c4fe9ac6ae0e1c0e46282", "size": 1036677}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/sevenInchScreenshots/7.png", "sha256": "7f526f36254416a798bbff42d0d958a1c7a304c5485972ba446d0287d593433c", "size": 151769}], "pl-PL": [{"name": "/de.metager.metagerapp.fdroid/pl-PL/sevenInchScreenshots/1.png", "sha256": "da34d5f3d324a60940db7cab603c29f5986c38aa4bf7f4df456319b3ee30becb", "size": 119556}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/sevenInchScreenshots/2.png", "sha256": "81d36916051d0f432147ddbe4667212d6d478c11b478e051a44115ddeb001917", "size": 119600}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/sevenInchScreenshots/3.png", "sha256": "b2e1ee512f96c0cf677ffbdfe31930a327b5fd967a8a7c7b4126d1325596a206", "size": 273959}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/sevenInchScreenshots/4.png", "sha256": "b4ded28c89c379a6919437172341b8d6193be2d056b5419aa3138ece600d824b", "size": 467361}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/sevenInchScreenshots/5.png", "sha256": "7998a17f0ed8d2f821c4880881df114e045cc06895881408f8a3755a087e2aeb", "size": 195918}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/sevenInchScreenshots/6.png", "sha256": "927f234311d0c96cdfcc2d9ad55a8f959baab32d1b8d79aaa592673cc1af9f7d", "size": 1038483}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/sevenInchScreenshots/7.png", "sha256": "1e044a15e13b57b4b03714a64d8929fe7c037b8deeacaee1185f4833ca08bcca", "size": 175349}], "pt-PT": [{"name": "/de.metager.metagerapp.fdroid/pt-PT/sevenInchScreenshots/1.png", "sha256": "2fb0f3d1207e221ce2b4424bb173305c433673d18c372fc9519ebae7306841a1", "size": 129715}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/sevenInchScreenshots/2.png", "sha256": "6bdbfad97f191f82768fea49f81456359d54426a951a67e0db0738aec29b9784", "size": 131399}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/sevenInchScreenshots/3.png", "sha256": "685406e29bf1e0ad277b8bdec9bcad3c436db1c06223bb9a7b95171062d10f63", "size": 288982}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/sevenInchScreenshots/4.png", "sha256": "05746f1e5349d6247c54fa1e2b41c789ff95e0deb5ee5e8140f7c92a3ab81d4e", "size": 466628}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/sevenInchScreenshots/5.png", "sha256": "dee4ea67f21c5dc0cdfa036665023c0cf55a66c7c2bc9c01d7775c4d93e3d9ac", "size": 197122}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/sevenInchScreenshots/6.png", "sha256": "26eb7e4a37fd2318b4f484a4e12afa0ba39c37efb0b4c1c48f2184941ac3ba38", "size": 1033616}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/sevenInchScreenshots/7.png", "sha256": "4bb33ce3498af30c5f25c15c1d6b5a9868146e613ee7835788f4a328383a0fd4", "size": 176161}], "sv-SE": [{"name": "/de.metager.metagerapp.fdroid/sv-SE/sevenInchScreenshots/1.png", "sha256": "a70c36db8d257c893816add69156b7474d9842dfddb3833cad330bca28d742c4", "size": 113454}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/sevenInchScreenshots/2.png", "sha256": "84e55f201e42564364998ff065f104915a09a66d26b293ebf176c6896fa45923", "size": 117026}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/sevenInchScreenshots/3.png", "sha256": "19892482373d91d06b90d6990d97f3f7af3e251c6324e1a3f8a68953537b7961", "size": 330624}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/sevenInchScreenshots/4.png", "sha256": "23d90070a215bcbe03e497659046c653e7b17603a7650715efc82237ad6aa50f", "size": 528773}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/sevenInchScreenshots/5.png", "sha256": "0662f99cd97d49fa6bf618ff9cbd9d6a9e05c0cbf30f486a4a32f173c17ed4c7", "size": 167514}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/sevenInchScreenshots/6.png", "sha256": "a0d9caf933f49761ed26a39ce71a954f5f336c9e833d2d7e5f7c5889da868c18", "size": 1030909}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/sevenInchScreenshots/7.png", "sha256": "533cb6bff2514849b7ca6c1a0bbe05cc22146c9e9af1e756a9b9591e2b72c573", "size": 148911}]}, "tenInch": {"da-DK": [{"name": "/de.metager.metagerapp.fdroid/da-DK/tenInchScreenshots/1.png", "sha256": "953add7edad63712f077b1e58bfbd4555fea6d8afd47d5e5cea88de0f9916277", "size": 141417}, {"name": "/de.metager.metagerapp.fdroid/da-DK/tenInchScreenshots/2.png", "sha256": "57533ecf44e5d0775848c99878e1ea8d86a05a113c984cc12588d38aaefef57c", "size": 140261}, {"name": "/de.metager.metagerapp.fdroid/da-DK/tenInchScreenshots/3.png", "sha256": "b84082883d9309325b3559714ef9f3b0ab0b0fb53975a6410cbe51ac8f4c5b69", "size": 485187}, {"name": "/de.metager.metagerapp.fdroid/da-DK/tenInchScreenshots/4.png", "sha256": "29d3368a23f51bfb370d8845721d9080a4df580c6436c24ba16616820bc81cdd", "size": 1091641}, {"name": "/de.metager.metagerapp.fdroid/da-DK/tenInchScreenshots/5.png", "sha256": "dfaf9d4f804fb6c308ca109dcc0a767801b1ee16a08deae5898663136d999d19", "size": 286444}, {"name": "/de.metager.metagerapp.fdroid/da-DK/tenInchScreenshots/6.png", "sha256": "7e0cd4abc7403501e467ccad8f9034b0ae42fb782f8616033dbf7c1eb1a03f47", "size": 1824721}, {"name": "/de.metager.metagerapp.fdroid/da-DK/tenInchScreenshots/7.png", "sha256": "63b63c6effd41696563bf2d0901f6a1e936f6b85d593eea6eb2bbfb7f5ec680a", "size": 270651}], "de-DE": [{"name": "/de.metager.metagerapp.fdroid/de-DE/tenInchScreenshots/1.png", "sha256": "dbb983f5a79b7a9c286b7242211bcc972801141c311940e5f5a2510764dd5839", "size": 145577}, {"name": "/de.metager.metagerapp.fdroid/de-DE/tenInchScreenshots/2.png", "sha256": "6239c2de78007721f24e858991bda19b17b03c8224ad2752d4799570dce4a367", "size": 131987}, {"name": "/de.metager.metagerapp.fdroid/de-DE/tenInchScreenshots/3.png", "sha256": "ed1695c3d7a7953513fc0764ad4154ccc5540320501f9e6060c38a11a4839104", "size": 469727}, {"name": "/de.metager.metagerapp.fdroid/de-DE/tenInchScreenshots/4.png", "sha256": "c1b1b691bfb51d1a3e94608d212998480b809429b6e5e8e73f6246b89c2275fa", "size": 1091866}, {"name": "/de.metager.metagerapp.fdroid/de-DE/tenInchScreenshots/5.png", "sha256": "fbab51c2a157d07f5bb1c0b8ff10596db0cbbcdde86eafba8c917884272e12ba", "size": 279955}, {"name": "/de.metager.metagerapp.fdroid/de-DE/tenInchScreenshots/6.png", "sha256": "9c73be2c08b946cc8a9739b2e12719880de5a252c4d9f41e697539a97b0c0f93", "size": 1826660}, {"name": "/de.metager.metagerapp.fdroid/de-DE/tenInchScreenshots/7.png", "sha256": "1332d7c8025490765fe5a47c1e2c0efaf37e27de573f9c79433256cd2fef5a4b", "size": 280199}], "en-GB": [{"name": "/de.metager.metagerapp.fdroid/en-GB/tenInchScreenshots/1.png", "sha256": "6427c5bebb1ace78b8a7107b7138e52393ae1fc5cb3f48a13936779055191370", "size": 144579}, {"name": "/de.metager.metagerapp.fdroid/en-GB/tenInchScreenshots/2.png", "sha256": "292a109eac240107b7ab33f699cab5e4422283a888ae24bc06a813ec9bbbb410", "size": 142535}, {"name": "/de.metager.metagerapp.fdroid/en-GB/tenInchScreenshots/3.png", "sha256": "0b7e14c9f8f2fc6459a86ff4b2097646b6641e905ee104f1e5584455b6ea16d4", "size": 511182}, {"name": "/de.metager.metagerapp.fdroid/en-GB/tenInchScreenshots/4.png", "sha256": "79b169826363aeef3f413c315d132121aa2039aef59d531f30236b6b80cf0dcd", "size": 1088860}, {"name": "/de.metager.metagerapp.fdroid/en-GB/tenInchScreenshots/5.png", "sha256": "d17d06878f7621216ab2a016622f06258ebd30ec83968ee731baec8f63893d5f", "size": 280393}, {"name": "/de.metager.metagerapp.fdroid/en-GB/tenInchScreenshots/6.png", "sha256": "02cbe6d8cc908c7f4530cbbc002954537f90372fa02cee705b8e7e5d501aba83", "size": 1826209}, {"name": "/de.metager.metagerapp.fdroid/en-GB/tenInchScreenshots/7.png", "sha256": "ce0732d3b2103f74a206948096ff954081814480d78350e26f158ee63b081b41", "size": 261814}], "en-US": [{"name": "/de.metager.metagerapp.fdroid/en-US/tenInchScreenshots/1.png", "sha256": "6427c5bebb1ace78b8a7107b7138e52393ae1fc5cb3f48a13936779055191370", "size": 144579}, {"name": "/de.metager.metagerapp.fdroid/en-US/tenInchScreenshots/2.png", "sha256": "292a109eac240107b7ab33f699cab5e4422283a888ae24bc06a813ec9bbbb410", "size": 142535}, {"name": "/de.metager.metagerapp.fdroid/en-US/tenInchScreenshots/3.png", "sha256": "0b7e14c9f8f2fc6459a86ff4b2097646b6641e905ee104f1e5584455b6ea16d4", "size": 511182}, {"name": "/de.metager.metagerapp.fdroid/en-US/tenInchScreenshots/4.png", "sha256": "79b169826363aeef3f413c315d132121aa2039aef59d531f30236b6b80cf0dcd", "size": 1088860}, {"name": "/de.metager.metagerapp.fdroid/en-US/tenInchScreenshots/5.png", "sha256": "d17d06878f7621216ab2a016622f06258ebd30ec83968ee731baec8f63893d5f", "size": 280393}, {"name": "/de.metager.metagerapp.fdroid/en-US/tenInchScreenshots/6.png", "sha256": "02cbe6d8cc908c7f4530cbbc002954537f90372fa02cee705b8e7e5d501aba83", "size": 1826209}, {"name": "/de.metager.metagerapp.fdroid/en-US/tenInchScreenshots/7.png", "sha256": "ce0732d3b2103f74a206948096ff954081814480d78350e26f158ee63b081b41", "size": 261814}], "es-ES": [{"name": "/de.metager.metagerapp.fdroid/es-ES/tenInchScreenshots/1.png", "sha256": "f65bbd832d7e9ab6853d05b6203783cb75781d2dd97df4237dc7a36e9d4db1d1", "size": 149242}, {"name": "/de.metager.metagerapp.fdroid/es-ES/tenInchScreenshots/2.png", "sha256": "12b4c32fc339c94c0bc6b141772dd1d717ea9d794490c403a3e37151fc887f25", "size": 159421}, {"name": "/de.metager.metagerapp.fdroid/es-ES/tenInchScreenshots/3.png", "sha256": "1d9051bb06f9c61c7eaf6d43dd085d25f6606b772715eeb5a81d5bbbe367d8c2", "size": 492775}, {"name": "/de.metager.metagerapp.fdroid/es-ES/tenInchScreenshots/4.png", "sha256": "fb4cbde21da1185eae09f458232385fd1670647190da958202811687de0058d4", "size": 1100327}, {"name": "/de.metager.metagerapp.fdroid/es-ES/tenInchScreenshots/5.png", "sha256": "2af4fe27f73d6010fac4bbf1f149afc9bdf2529d31d9b7e3ccce1a9ef273cd7b", "size": 303081}, {"name": "/de.metager.metagerapp.fdroid/es-ES/tenInchScreenshots/6.png", "sha256": "c4e4e0b7af13d5321acc1724a14354cc8aab76d64b8e307e0520ac0f94269336", "size": 1825962}, {"name": "/de.metager.metagerapp.fdroid/es-ES/tenInchScreenshots/7.png", "sha256": "9656dead009c990d7de655cd2efaa22aeb963a8bbaca4cc04b9d3fb50a7263dc", "size": 291403}], "es-US": [{"name": "/de.metager.metagerapp.fdroid/es-US/tenInchScreenshots/1.png", "sha256": "f65bbd832d7e9ab6853d05b6203783cb75781d2dd97df4237dc7a36e9d4db1d1", "size": 149242}, {"name": "/de.metager.metagerapp.fdroid/es-US/tenInchScreenshots/2.png", "sha256": "12b4c32fc339c94c0bc6b141772dd1d717ea9d794490c403a3e37151fc887f25", "size": 159421}, {"name": "/de.metager.metagerapp.fdroid/es-US/tenInchScreenshots/3.png", "sha256": "1d9051bb06f9c61c7eaf6d43dd085d25f6606b772715eeb5a81d5bbbe367d8c2", "size": 492775}, {"name": "/de.metager.metagerapp.fdroid/es-US/tenInchScreenshots/4.png", "sha256": "fb4cbde21da1185eae09f458232385fd1670647190da958202811687de0058d4", "size": 1100327}, {"name": "/de.metager.metagerapp.fdroid/es-US/tenInchScreenshots/5.png", "sha256": "2af4fe27f73d6010fac4bbf1f149afc9bdf2529d31d9b7e3ccce1a9ef273cd7b", "size": 303081}, {"name": "/de.metager.metagerapp.fdroid/es-US/tenInchScreenshots/6.png", "sha256": "c4e4e0b7af13d5321acc1724a14354cc8aab76d64b8e307e0520ac0f94269336", "size": 1825962}, {"name": "/de.metager.metagerapp.fdroid/es-US/tenInchScreenshots/7.png", "sha256": "9656dead009c990d7de655cd2efaa22aeb963a8bbaca4cc04b9d3fb50a7263dc", "size": 291403}], "fi-FI": [{"name": "/de.metager.metagerapp.fdroid/fi-FI/tenInchScreenshots/1.png", "sha256": "4edab83c0e224249fb373ed44ecf82589777aa65cd20aa588161f7f070083ba7", "size": 133741}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/tenInchScreenshots/2.png", "sha256": "1caba0b7a01be6e9d7100cf19361e9d677a58f428d3c577f7fc1115910bcd0fe", "size": 145455}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/tenInchScreenshots/3.png", "sha256": "aba9873177f6fd84b88ff8f2e232bbaffe5de03164b15ab2057327934ee2ef7b", "size": 455725}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/tenInchScreenshots/4.png", "sha256": "80b2b6f9a3dcc49cf58939e44130047750b971cc6655e26a59e8ac8244fc3ad3", "size": 1091064}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/tenInchScreenshots/5.png", "sha256": "de4347618a78697ae5a3383922b8c0f735016366c53a3658668053d880443138", "size": 273426}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/tenInchScreenshots/6.png", "sha256": "46c40398269a974e71e82929e8472b21ac800d45a67ac8693da7dd059e95dda2", "size": 1823090}, {"name": "/de.metager.metagerapp.fdroid/fi-FI/tenInchScreenshots/7.png", "sha256": "0001a07654a226b18609c2bd3a41d936502544943722581af3aada4621813a23", "size": 249146}], "fr-FR": [{"name": "/de.metager.metagerapp.fdroid/fr-FR/tenInchScreenshots/1.png", "sha256": "8137d1252c79b745ae35745ee79e64706b8e00e70f345bea30fbfd7ef87f7a70", "size": 147467}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/tenInchScreenshots/2.png", "sha256": "a82303e8760cc33fc68e8296fef72db67fbec57edcad1b458a15732944fcf14f", "size": 144510}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/tenInchScreenshots/3.png", "sha256": "b64dfab75d6a1edb7801e7c56c1f77e0c356a42c368bace36f26c9ac8d220fc5", "size": 465618}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/tenInchScreenshots/4.png", "sha256": "ef32ee4a098ed187f62e43d62a2f573bf0d3d5d654438db5c8c776a75cbfd2b3", "size": 989691}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/tenInchScreenshots/5.png", "sha256": "3be7344f2be5426f72cef682be09c629f1d38b03450d7e61650c65fbb8301425", "size": 305143}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/tenInchScreenshots/6.png", "sha256": "360658b06d0db4e362f23d76d717985d582d5cb91193fb430a504c44466c393e", "size": 1825020}, {"name": "/de.metager.metagerapp.fdroid/fr-FR/tenInchScreenshots/7.png", "sha256": "24bce88ceab463a0fc6f6ff9aac25d0bcd23787e33503cb760515ae01d80c769", "size": 302263}], "it-IT": [{"name": "/de.metager.metagerapp.fdroid/it-IT/tenInchScreenshots/1.png", "sha256": "d1318109e4ec4c25999d1573b6365b701d1f0d666bd4f648f7df962b1edc0934", "size": 146786}, {"name": "/de.metager.metagerapp.fdroid/it-IT/tenInchScreenshots/2.png", "sha256": "bc111f80be6904984ec6648f012bf61b403697aa20773d89cb6d642fe5cd1ef9", "size": 144553}, {"name": "/de.metager.metagerapp.fdroid/it-IT/tenInchScreenshots/3.png", "sha256": "4c2b5ddd1a30eb37ae8bf0a2627e5758765415d32a9fe7233e5fac3d26203e7c", "size": 503352}, {"name": "/de.metager.metagerapp.fdroid/it-IT/tenInchScreenshots/4.png", "sha256": "37c7c0932804b17ef40c7aa92934554c9f3f5f3a04a158f57bb8074adaf95229", "size": 986636}, {"name": "/de.metager.metagerapp.fdroid/it-IT/tenInchScreenshots/5.png", "sha256": "a681ae8c58b39886b66e7a76b1eea145551ca8fca743d44b53e54114b1339224", "size": 275088}, {"name": "/de.metager.metagerapp.fdroid/it-IT/tenInchScreenshots/6.png", "sha256": "9412227c116dd22bdc20bd22984139f0575cbbc9c241889c331176276bb73245", "size": 1745028}, {"name": "/de.metager.metagerapp.fdroid/it-IT/tenInchScreenshots/7.png", "sha256": "2f79ef80a3dd3eead69ccbc227957aeef2da7d27c28e9085471ae8e8af0d9751", "size": 276126}], "nl-NL": [{"name": "/de.metager.metagerapp.fdroid/nl-NL/tenInchScreenshots/1.png", "sha256": "b72d7ba90ba679166a9f738af73e9d2814fb3c2a8346761336759db626d6aac8", "size": 139568}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/tenInchScreenshots/2.png", "sha256": "d2991135018d8e67068c7d9669ae73f573a575264a5a82a8b2149bf688ecfcb5", "size": 138855}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/tenInchScreenshots/3.png", "sha256": "8254e5879a2a67fc2d3056ce23194419ab8247080695c2815c5d141c15ba3d18", "size": 497297}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/tenInchScreenshots/4.png", "sha256": "978325c943465f3ec0b6b07ecd4168b6fd5c97024206ea03277a95f9a37a8907", "size": 994920}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/tenInchScreenshots/5.png", "sha256": "e2cb07b6fe90b6f9b85cae5775ed34c6b9c8da6d8aa549c0983b6f7226f202a6", "size": 291654}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/tenInchScreenshots/6.png", "sha256": "3fd6db8f906d4d924f44f4b37a04d589a50d4888c36358b129cfd1d949547ddc", "size": 1784530}, {"name": "/de.metager.metagerapp.fdroid/nl-NL/tenInchScreenshots/7.png", "sha256": "a904f973d8a0e266891f58b2c81dde10fb9a1a6aa5591b5ffd506caf44525437", "size": 281991}], "pl-PL": [{"name": "/de.metager.metagerapp.fdroid/pl-PL/tenInchScreenshots/1.png", "sha256": "7890cfd5a3b909ab17520ad482c7d03481d8920c59c1c07ea76019f6e7df5175", "size": 151619}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/tenInchScreenshots/2.png", "sha256": "adf91fdec9f4866be2026cb99b01b1e7e5cb9be78251098b4dbd5c5dd4179cb9", "size": 150108}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/tenInchScreenshots/3.png", "sha256": "9640c4d5cabd7e80f142149ef4395f77ac2516b78be891c2069c8c7f84bd8962", "size": 484459}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/tenInchScreenshots/4.png", "sha256": "0e703e9f36cc39c88d3a64182b0350c87b0a97aaa797ce254902af58442b88e1", "size": 998055}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/tenInchScreenshots/5.png", "sha256": "979ff96338530bef00a5a4958f2599ecbb5ee52080a6fabfb168d256d9c7e4c3", "size": 304001}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/tenInchScreenshots/6.png", "sha256": "93c654492253abd7cbac664cee66634e626412c6882533c396c11b346f462605", "size": 1833608}, {"name": "/de.metager.metagerapp.fdroid/pl-PL/tenInchScreenshots/7.png", "sha256": "beeb6858a5c04d46737aa3c808c4d8fd704cda9386de8d9dff323b52e52a400c", "size": 287555}], "pt-PT": [{"name": "/de.metager.metagerapp.fdroid/pt-PT/tenInchScreenshots/1.png", "sha256": "bab66252da0b87290dd0b0def72c3db9ba8ecbda1eda1b85d20adbdcb0656107", "size": 159622}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/tenInchScreenshots/2.png", "sha256": "06f2a3efc7d333655fa1328fb69c8bad638990fd2633af9a2dad4a17f82fab6b", "size": 164180}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/tenInchScreenshots/3.png", "sha256": "566eefc15ff2b85c3cec32c89b35d6d7c9951434949a5cd76453e41976ee17c9", "size": 481548}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/tenInchScreenshots/4.png", "sha256": "6f2f63ed45bec509b65677f2f09d141fdc0c77718178de665b24f7acc32e364c", "size": 995177}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/tenInchScreenshots/5.png", "sha256": "259e3ef001215a8464b148f36ba37c255946621902d58a6b32a19e58ba850725", "size": 317849}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/tenInchScreenshots/6.png", "sha256": "2b049dbd4dce602a78d6f251d687625302f3bc8fa4c5bbcb27d8a4c1c042653d", "size": 1826934}, {"name": "/de.metager.metagerapp.fdroid/pt-PT/tenInchScreenshots/7.png", "sha256": "81bb077b3437e59fec15d34c9a39e6f3ffa2f3f591d7f7efab23eeafa7f42e53", "size": 280893}], "sv-SE": [{"name": "/de.metager.metagerapp.fdroid/sv-SE/tenInchScreenshots/1.png", "sha256": "d5674d1fc2bd43c6964096b6d08b9a338a66f030044711da8ca9b228b2044f51", "size": 138396}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/tenInchScreenshots/2.png", "sha256": "20602aef632e2199cabfd7e80ffbffa48fe37830bf30fb420ea52c819eca78e6", "size": 144610}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/tenInchScreenshots/3.png", "sha256": "69e52ca94b1ea5b7d1cf60cb8269a67f6f1a97cafb4b7c6596d427910e59dea9", "size": 507471}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/tenInchScreenshots/4.png", "sha256": "9735d6a6047fb4bb5a116cb47944e8b61db1637fa1b767544c15187da6dd340b", "size": 1097560}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/tenInchScreenshots/5.png", "sha256": "5a29914423bb5b6ef72ac1ea6885fc47e27b6b265ea0bb1c75c30e044f0e33da", "size": 274496}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/tenInchScreenshots/6.png", "sha256": "19489fe592ac372f236fae15eb3ed29ca6cacbd651d96299b5f21ff3f52b750c", "size": 1822773}, {"name": "/de.metager.metagerapp.fdroid/sv-SE/tenInchScreenshots/7.png", "sha256": "07ac4cfd8db62158fc22fcd5ece35a55eb81fa203c48344c49e0213ac4c31f51", "size": 270197}]}}, "name": {"android": null, "da-DK": "MetaGer: Søgning og browser", "de-DE": "MetaGer: Suche & Browser", "en-GB": "MetaGer: Search & Browser", "en-US": "MetaGer: Search & Browser", "es-ES": "MetaGer: Búsqueda y navegador", "es-US": "MetaGer: Búsqueda y navegador", "fi-FI": "MetaGer: Haku ja selain", "fr-FR": "MetaGer : recherche/navigateur", "it-IT": "MetaGer: ricerca e browser", "nl-NL": "MetaGer: zoeken en browser", "pl-PL": "MetaGer: szukaj i przeglądaj", "pt-PT": "MetaGer: Pesquisa e navegador", "sv-SE": "MetaGer: sök och webbläsare"}, "summary": {"android": null, "da-DK": "Anonym søgning og fanegrupper, privat browsing uden sporing og reklamer.", "de-DE": "Anonyme Suche und Tab-Gruppen, privates Surfen mit Tracker- und Werbeblocker.", "en-GB": "Anonymous search and tab groups, private browsing with tracker and ad blocking.", "en-US": "Anonymous search and tab groups, private browsing with tracker and ad blocking.", "es-ES": "Búsqueda anónima y grupos de pestañas, con bloqueo de rastreadores y anuncios.", "es-US": "Búsqueda anónima y grupos de pestañas, con bloqueo de rastreadores y anuncios.", "fi-FI": "Anonyymi haku ja välilehtiryhmät, yksityinen selaus ilman seurantaa.", "fr-FR": "Recherche anonyme et groupes d'onglets, navigation privée sans pub ni traqueurs.", "it-IT": "Ricerca anonima e gruppi di schede, navigazione privata senza tracker.", "nl-NL": "Anoniem zoeken en tabgroepen, privénavigeren zonder trackers en advertenties.", "pl-PL": "Anonimowe wyszukiwanie i grupy kart, prywatne przeglądanie bez śledzenia.", "pt-PT": "Pesquisa anónima e grupos de separadores, navegação privada sem rastreadores.", "sv-SE": "Anonym sökning och flikgrupper, privat surfning utan spårare och annonser."}, "description": {"android": null, "da-DK": "MetaGer.de er en tysk metasøgemaskine med fokus på databeskyttelse og resultatmangfoldighed, drevet af den almennyttige forening SUMA-EV.\n\nDenne app er en fuld browser bygget omkring den søgning: native, hurtig og privat som standard.\n\n• Søg på din måde: skift mellem web-, billede-, nyheds-, videnskabs- og produktsøgning med ét tryk.\n• Fanegrupper: hold arbejde, indkøb og privat browsing adskilt, hver med egne cookies, logins og historik — flyt en fane til en anden gruppe, når du vil.\n• Anonym søgning: din MetaGer-nøgle til reklamefri søgninger holdes adskilt fra dine forespørgsler med blinde signaturer.\n• Konto og optankning uden at forlade appen: log ind én gang, eller overfør din nøgle til en anden enhed med en QR-kode.\n• Sporing og reklamer blokeret fra start.\n• Gør MetaGer til din standardbrowser: links fra andre apps åbnes her, beskyttet på samme måde.\n• Adresselinje med lokal historik — krypteret på enheden, aldrig på en server.\n• Øjeblikkeligt mørkt, lyst eller systemtema.\n• Åbn anonymt: se en side i en fjernbrowser uden selv at indlæse den.\n• Ingen konto påkrævet, ingen profil, ingen reklame-id'er.\n\nDenne apps kildekode er fri (AGPL-3.0).\n", "de-DE": "MetaGer.de ist eine deutsche Meta-Suchmaschine mit Fokus auf Datenschutz und Ergebnisvielfalt, betrieben vom gemeinnützigen SUMA-EV.\n\nDiese App ist ein vollwertiger Browser rund um diese Suche: nativ, schnell und von Grund auf privat.\n\n• Suchen wie Sie möchten: wechseln Sie mit einem Tipp zwischen Web-, Bild-, News-, Wissenschafts- und Produktsuche.\n• Tab-Gruppen: Arbeit, Einkauf und Privates bleiben getrennt, jede Gruppe mit eigenen Cookies, Logins und eigenem Verlauf — verschieben Sie einen Tab jederzeit in eine andere Gruppe.\n• Anonyme Suche: Ihr MetaGer-Schlüssel für werbefreie Suchen wird durch blinde Signaturen von Ihren Suchanfragen getrennt.\n• Konto und Aufladen, ohne die App zu verlassen: einmal anmelden, oder Ihren Schlüssel per QR-Code an ein anderes Gerät übergeben.\n• Tracker- und Werbeblocker, von Anfang an aktiv.\n• MetaGer als Standardbrowser: Links aus anderen Apps öffnen sich hier, genauso geschützt.\n• Adressleiste mit lokalem Verlauf — verschlüsselt auf dem Gerät, nie auf einem Server.\n• Sofortiges Hell-, Dunkel- oder Systemdesign.\n• Anonym öffnen: Eine Seite in einem entfernten Browser ansehen, ohne sie selbst zu laden.\n• Kein Konto nötig, kein Profil, keine Werbe-IDs.\n\nDer Quellcode dieser App ist frei (AGPL-3.0).\n", "en-GB": "MetaGer.de is a German meta search engine with a focus on data protection and diversity of results, run by the non-profit SUMA-EV.\n\nThis app is a full browser built around that search: native, fast, and private by default.\n\n• Search your way: switch between web, image, news, science and product search, all in one tap.\n• Tab groups: keep work, shopping and private browsing apart, each with its own cookies, logins and history — move a tab into another group whenever you like.\n• Anonymous search: your MetaGer key for ad-free searches is separated from your queries by blind signatures.\n• Account and top-up without leaving the app: sign in once, or hand your key to another device with a QR code.\n• Tracker and ad blocking, on from the start.\n• Set MetaGer as your default browser: links from other apps open here, protected the same way.\n• Address bar with local history — encrypted on-device, never on a server.\n• Instant dark, light or system theme.\n• Open anonymously: view a page in a remote browser without loading it yourself.\n• No account required, no profile, no advertising IDs.\n\nThe source code of this app is free (AGPL-3.0).\n", "en-US": "MetaGer.de is a German meta search engine with a focus on privacy and variety of results, run by the non-profit SUMA-EV.\n\nThis app is a full browser built around that search: native, fast, and private by default.\n\n• Search your way: switch between web, image, news, science and product search, all in one tap.\n• Tab groups: keep work, shopping and private browsing apart, each with its own cookies, logins and history — move a tab into another group whenever you like.\n• Anonymous search: your MetaGer key for ad-free searches is separated from your queries by blind signatures.\n• Account and top-up without leaving the app: sign in once, or hand your key to another device with a QR code.\n• Tracker and ad blocking, on from the start.\n• Set MetaGer as your default browser: links from other apps open here, protected the same way.\n• Address bar with local history — encrypted on-device, never on a server.\n• Instant dark, light or system theme.\n• Open anonymously: view a page in a remote browser without loading it yourself.\n• No account required, no profile, no advertising IDs.\n\nThe source code of this app is free (AGPL-3.0).\n", "es-ES": "MetaGer.de es un metabuscador alemán centrado en la protección de datos y la diversidad de resultados, gestionado por la organización sin ánimo de lucro SUMA-EV.\n\nEsta aplicación es un navegador completo construido en torno a esa búsqueda: nativo, rápido y privado desde el principio.\n\n• Busca a tu manera: cambia entre búsqueda web, de imágenes, noticias, ciencia y productos con un solo toque.\n• Grupos de pestañas: trabajo, compras y navegación privada quedan separados, cada grupo con sus propias cookies, sesiones e historial — mueve una pestaña a otro grupo cuando quieras.\n• Búsqueda anónima: tu clave MetaGer se separa de tus consultas mediante firmas ciegas.\n• Cuenta y recarga de saldo sin salir de la app: inicia sesión una vez, o transfiere tu clave a otro dispositivo con un código QR.\n• Bloqueo de rastreadores y publicidad, activo desde el principio.\n• Configura MetaGer como tu navegador predeterminado: los enlaces de otras apps se abren aquí, con la misma protección.\n• Barra de direcciones con historial local, cifrado en el dispositivo y nunca en un servidor.\n• Tema claro, oscuro o del sistema al instante.\n• Abrir de forma anónima: ver una página en un navegador remoto sin cargarla tú.\n• Sin cuenta obligatoria, sin perfil, sin identificadores publicitarios.\n\nEl código fuente de esta aplicación es libre (AGPL-3.0).\n", "es-US": "MetaGer.de es un metabuscador alemán centrado en la protección de datos y la diversidad de resultados, gestionado por la organización sin ánimo de lucro SUMA-EV.\n\nEsta aplicación es un navegador completo construido en torno a esa búsqueda: nativo, rápido y privado desde el principio.\n\n• Busca a tu manera: cambia entre búsqueda web, de imágenes, noticias, ciencia y productos con un solo toque.\n• Grupos de pestañas: trabajo, compras y navegación privada quedan separados, cada grupo con sus propias cookies, sesiones e historial — mueve una pestaña a otro grupo cuando quieras.\n• Búsqueda anónima: tu clave MetaGer se separa de tus consultas mediante firmas ciegas.\n• Cuenta y recarga de saldo sin salir de la app: inicia sesión una vez, o transfiere tu clave a otro dispositivo con un código QR.\n• Bloqueo de rastreadores y publicidad, activo desde el principio.\n• Configura MetaGer como tu navegador predeterminado: los enlaces de otras apps se abren aquí, con la misma protección.\n• Barra de direcciones con historial local, cifrado en el dispositivo y nunca en un servidor.\n• Tema claro, oscuro o del sistema al instante.\n• Abrir de forma anónima: ver una página en un navegador remoto sin cargarla tú.\n• Sin cuenta obligatoria, sin perfil, sin identificadores publicitarios.\n\nEl código fuente de esta aplicación es libre (AGPL-3.0).\n", "fi-FI": "MetaGer.de on saksalainen metahakukone, joka keskittyy tietosuojaan ja tulosten monipuolisuuteen. Sitä ylläpitää voittoa tavoittelematon SUMA-EV.\n\nTämä sovellus on täysiverinen selain rakennettu tämän haun ympärille: natiivi, nopea ja yksityinen oletuksena.\n\n• Hae omalla tavallasi: vaihda web-, kuva-, uutis-, tiede- ja tuotehaun välillä yhdellä napautuksella.\n• Välilehtiryhmät: työ, ostokset ja yksityinen selaus pysyvät erillään, kullakin ryhmällä omat evästeet, kirjautumiset ja historia — siirrä välilehti toiseen ryhmään milloin haluat.\n• Anonyymi haku: mainoksettomien hakujen MetaGer-avaimesi erotetaan hauistasi sokeilla allekirjoituksilla.\n• Tili ja lataus ilman sovelluksesta poistumista: kirjaudu kerran tai siirrä avaimesi toiselle laitteelle QR-koodilla.\n• Seuranta ja mainokset estetty heti alusta alkaen.\n• Aseta MetaGer oletusselaimeksesi: linkit muista sovelluksista avautuvat täällä, samalla tavalla suojattuina.\n• Osoiterivi paikallisella historialla — salattu laitteella, ei koskaan palvelimella.\n• Välitön tumma, vaalea tai järjestelmän teema.\n• Avaa anonyymisti: katso sivu etäselaimessa lataamatta sitä itse.\n• Ei tiliä vaadita, ei profiilia, ei mainostunnisteita.\n\nTämän sovelluksen lähdekoodi on vapaa (AGPL-3.0).\n", "fr-FR": "MetaGer.de est un métamoteur de recherche allemand axé sur la protection des données et la diversité des résultats, géré par l'association à but non lucratif SUMA-EV.\n\nCette application est un navigateur complet construit autour de cette recherche : natif, rapide et privé par défaut.\n\n• Recherchez à votre façon : passez de la recherche web à la recherche d'images, d'actualités, scientifique et de produits en un geste.\n• Groupes d'onglets : travail, achats et navigation privée restent séparés, chacun avec ses propres cookies, identifiants et historique — déplacez un onglet vers un autre groupe quand vous le souhaitez.\n• Recherche anonyme : votre clé MetaGer pour des recherches sans publicité est séparée de vos requêtes par des signatures aveugles.\n• Compte et rechargement sans quitter l'application : connectez-vous une fois, ou transférez votre clé à un autre appareil avec un code QR.\n• Blocage des traqueurs et des publicités, actif dès le départ.\n• Définissez MetaGer comme navigateur par défaut : les liens d'autres applications s'ouvrent ici, protégés de la même façon.\n• Barre d'adresse avec historique local — chiffré sur l'appareil, jamais sur un serveur.\n• Thème sombre, clair ou système instantané.\n• Ouvrir anonymement : consultez une page dans un navigateur distant sans la charger vous-même.\n• Aucun compte requis, aucun profil, aucun identifiant publicitaire.\n\nLe code source de cette application est libre (AGPL-3.0).\n", "it-IT": "MetaGer.de è un metamotore di ricerca tedesco incentrato sulla protezione dei dati e sulla varietà dei risultati, gestito dall'organizzazione no-profit SUMA-EV.\n\nQuesta app è un browser completo costruito attorno a quella ricerca: nativo, veloce e privato di default.\n\n• Cerca a modo tuo: passa dalla ricerca web a immagini, notizie, scienza e prodotti con un tocco.\n• Gruppi di schede: lavoro, acquisti e navigazione privata restano separati, ognuno con propri cookie, accessi e cronologia — sposta una scheda in un altro gruppo quando vuoi.\n• Ricerca anonima: la tua chiave MetaGer per ricerche senza pubblicità è separata dalle tue query tramite firme cieche.\n• Account e ricarica senza uscire dall'app: accedi una volta, oppure trasferisci la tua chiave a un altro dispositivo con un codice QR.\n• Blocco di tracker e pubblicità, attivo fin dall'inizio.\n• Imposta MetaGer come browser predefinito: i link da altre app si aprono qui, protetti allo stesso modo.\n• Barra degli indirizzi con cronologia locale — crittografata sul dispositivo, mai su un server.\n• Tema scuro, chiaro o di sistema istantaneo.\n• Apri in modo anonimo: visualizza una pagina in un browser remoto senza caricarla tu stesso.\n• Nessun account richiesto, nessun profilo, nessun ID pubblicitario.\n\nIl codice sorgente di questa app è libero (AGPL-3.0).\n", "nl-NL": "MetaGer.de is een Duitse metazoekmachine gericht op gegevensbescherming en diversiteit van resultaten, beheerd door de non-profitorganisatie SUMA-EV.\n\nDeze app is een volwaardige browser gebouwd rond die zoekfunctie: native, snel en standaard privé.\n\n• Zoek op jouw manier: schakel met één tik tussen zoeken naar web, afbeeldingen, nieuws, wetenschap en producten.\n• Tabgroepen: werk, winkelen en privénavigatie blijven gescheiden, elk met eigen cookies, aanmeldingen en geschiedenis — verplaats een tabblad wanneer je wilt naar een andere groep.\n• Anoniem zoeken: je MetaGer-sleutel voor advertentievrij zoeken wordt door blinde handtekeningen gescheiden van je zoekopdrachten.\n• Account en opwaarderen zonder de app te verlaten: log één keer in, of geef je sleutel met een QR-code door aan een ander apparaat.\n• Blokkering van trackers en advertenties, vanaf het begin actief.\n• Stel MetaGer in als je standaardbrowser: links uit andere apps openen hier, op dezelfde manier beveiligd.\n• Adresbalk met lokale geschiedenis — versleuteld op het apparaat, nooit op een server.\n• Direct donker, licht of systeemthema.\n• Anoniem openen: bekijk een pagina in een externe browser zonder deze zelf te laden.\n• Geen account nodig, geen profiel, geen advertentie-ID's.\n\nDe broncode van deze app is vrij (AGPL-3.0).\n", "pl-PL": "MetaGer.de to niemiecka metawyszukiwarka skoncentrowana na ochronie danych i różnorodności wyników, prowadzona przez non-profit SUMA-EV.\n\nTa aplikacja to pełna przeglądarka zbudowana wokół tego wyszukiwania: natywna, szybka i domyślnie prywatna.\n\n• Szukaj po swojemu: przełączaj się między wyszukiwaniem w sieci, obrazów, wiadomości, nauki i produktów jednym dotknięciem.\n• Grupy kart: praca, zakupy i prywatne przeglądanie pozostają oddzielone, każda grupa ma własne pliki cookie, dane logowania i historię — przenieś kartę do innej grupy, kiedy chcesz.\n• Anonimowe wyszukiwanie: Twój klucz MetaGer do wyszukiwań bez reklam jest oddzielony od Twoich zapytań za pomocą ślepych podpisów.\n• Konto i doładowanie bez opuszczania aplikacji: zaloguj się raz lub przekaż swój klucz na inne urządzenie za pomocą kodu QR.\n• Blokowanie śledzenia i reklam, aktywne od początku.\n• Ustaw MetaGer jako domyślną przeglądarkę: linki z innych aplikacji otwierają się tutaj, chronione w ten sam sposób.\n• Pasek adresu z lokalną historią — szyfrowaną na urządzeniu, nigdy na serwerze.\n• Natychmiastowy ciemny, jasny lub systemowy motyw.\n• Otwórz anonimowo: wyświetl stronę w zdalnej przeglądarce bez samodzielnego jej wczytywania.\n• Konto nie jest wymagane, brak profilu, brak identyfikatorów reklamowych.\n\nKod źródłowy tej aplikacji jest wolny (AGPL-3.0).\n", "pt-PT": "O MetaGer.de é um metamotor de pesquisa alemão focado na proteção de dados e na diversidade de resultados, gerido pela organização sem fins lucrativos SUMA-EV.\n\nEsta aplicação é um navegador completo construído à volta dessa pesquisa: nativo, rápido e privado por predefinição.\n\n• Pesquise à sua maneira: alterne entre pesquisa web, de imagens, notícias, ciência e produtos com um toque.\n• Grupos de separadores: trabalho, compras e navegação privada mantêm-se separados, cada um com os seus próprios cookies, sessões e histórico — mova um separador para outro grupo sempre que quiser.\n• Pesquisa anónima: a sua chave MetaGer para pesquisas sem publicidade é separada das suas pesquisas através de assinaturas cegas.\n• Conta e recarga sem sair da aplicação: inicie sessão uma vez, ou transfira a sua chave para outro dispositivo com um código QR.\n• Bloqueio de rastreadores e publicidade, ativo desde o início.\n• Defina o MetaGer como o seu navegador predefinido: os links de outras aplicações abrem aqui, protegidos da mesma forma.\n• Barra de endereço com histórico local — encriptado no dispositivo, nunca num servidor.\n• Tema escuro, claro ou do sistema instantâneo.\n• Abrir de forma anónima: veja uma página num navegador remoto sem a carregar você mesmo.\n• Não é necessária conta, sem perfil, sem identificadores publicitários.\n\nO código-fonte desta aplicação é livre (AGPL-3.0).\n", "sv-SE": "MetaGer.de är en tysk metasökmotor med fokus på dataskydd och mångfald av resultat, driven av den ideella organisationen SUMA-EV.\n\nDen här appen är en fullständig webbläsare byggd kring den sökningen: inbyggd, snabb och privat som standard.\n\n• Sök på ditt sätt: växla mellan webb-, bild-, nyhets-, vetenskaps- och produktsökning med ett tryck.\n• Flikgrupper: håll arbete, shopping och privat surfning åtskilda, var och en med egna kakor, inloggningar och historik — flytta en flik till en annan grupp när du vill.\n• Anonym sökning: din MetaGer-nyckel för reklamfria sökningar hålls skild från dina sökningar genom blinda signaturer.\n• Konto och påfyllning utan att lämna appen: logga in en gång, eller överför din nyckel till en annan enhet med en QR-kod.\n• Blockering av spårare och annonser, aktiv från start.\n• Ställ in MetaGer som din standardwebbläsare: länkar från andra appar öppnas här, skyddade på samma sätt.\n• Adressfält med lokal historik — krypterad på enheten, aldrig på en server.\n• Direkt mörkt, ljust eller systemtema.\n• Öppna anonymt: visa en sida i en fjärrwebbläsare utan att ladda den själv.\n• Inget konto krävs, ingen profil, inga annons-ID:n.\n\nDen här appens källkod är fri (AGPL-3.0).\n"}, "icon": {"da-DK": {"name": "/de.metager.metagerapp.fdroid/da-DK/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "de-DE": {"name": "/de.metager.metagerapp.fdroid/de-DE/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "en-GB": {"name": "/de.metager.metagerapp.fdroid/en-GB/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "en-US": {"name": "/de.metager.metagerapp.fdroid/en-US/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "es-ES": {"name": "/de.metager.metagerapp.fdroid/es-ES/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "es-US": {"name": "/de.metager.metagerapp.fdroid/es-US/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "fi-FI": {"name": "/de.metager.metagerapp.fdroid/fi-FI/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "fr-FR": {"name": "/de.metager.metagerapp.fdroid/fr-FR/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "it-IT": {"name": "/de.metager.metagerapp.fdroid/it-IT/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "nl-NL": {"name": "/de.metager.metagerapp.fdroid/nl-NL/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "pl-PL": {"name": "/de.metager.metagerapp.fdroid/pl-PL/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "pt-PT": {"name": "/de.metager.metagerapp.fdroid/pt-PT/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}, "sv-SE": {"name": "/de.metager.metagerapp.fdroid/sv-SE/icon_9aiPOGzOgkgpP7Ho9ASWceZ22Kr0oR5O5j0gZqHh4sw=.png", "sha256": "f5a88f386cce8248293fb1e8f4049671e676d8aaf4a11e4ee63d2066a1e1e2cc", "size": 9165}}}, "versions": {"c2b8f509dfb0898f9d01789b8e3ec0cf5ccafc6730f29e7138cc97eceb82d715": null, "4a1ffed6879451317658976b3b64cd0fc32457fd271d761c9c6c7b3b335138b6": null, "80a9b23e4b874a2507670774a31355e48c756d1414e015e863edec5543c0956e": {"added": 1786866775484, "file": {"name": "/de.metager.metagerapp.fdroid_60900.apk", "sha256": "80a9b23e4b874a2507670774a31355e48c756d1414e015e863edec5543c0956e", "size": 72705972, "ipfsCIDv1": "bafybeihu6v7b3yp76klire4ajdrbohquaykgntxg5vrnqn2k7zviagh2fa"}, "src": {"name": "/de.metager.metagerapp.fdroid_60900_src.tar.gz", "sha256": "9ae12688247a37727e849807ba2db4a6b54d5e5a6e5829886d2c8d8cf917a990", "size": 420037774}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "6.9.0", "versionCode": 60900, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["1e752e3acdc99d7aaeaaee39cc610d412476ecd7980a185fb66533e4a1ab9b67"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "de.metager.metagerapp.fdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}, "whatsNew": {"da-DK": "Under »Indstillinger« findes der nu et afsnit med titlen »Hvad er nyt«, der viser den fulde udgivelseshistorik direkte i appen.\nDer er rettet en fejl, hvor den sidste række i browsermenuen delvist blev skjult bag navigationsbjælken på skærmen på enheder uden gestusnavigation.\n", "de-DE": "Unter „Einstellungen“ gibt es nun den Eintrag „Was ist neu?“, der direkt in der App den vollständigen Versionsverlauf anzeigt.\nEs wurde behoben, dass die letzte Zeile des Browser-Menüs auf Geräten ohne Gestensteuerung teilweise hinter der Bildschirm-Navigationsleiste verborgen war.\n", "en-GB": "Settings now has a \"What's new\" entry showing the full release history, right in the app.\nFixed the browser menu's last row being partly hidden behind the on-screen navigation bar on devices without gesture navigation.\n", "en-US": "Settings now has a \"What's new\" entry showing the full release history, right in the app.\nFixed the browser menu's last row being partly hidden behind the on-screen navigation bar on devices without gesture navigation.\n", "es-ES": "La sección «Ajustes» cuenta ahora con una entrada titulada «Novedades» que muestra el historial completo de actualizaciones, directamente en la aplicación.\nSe ha corregido el error por el que la última fila del menú del navegador quedaba parcialmente oculta tras la barra de navegación en pantalla en dispositivos sin navegación por gestos.\n", "es-US": "La sección de Configuración ahora cuenta con una entrada llamada «Novedades» que muestra el historial completo de versiones, directamente en la aplicación.\nSe corrigió el problema por el que la última fila del menú del navegador quedaba parcialmente oculta detrás de la barra de navegación en pantalla en dispositivos sin navegación por gestos.\n", "fi-FI": "Asetukset-kohdassa on nyt ”Uutta” -kohta, josta näkyy koko julkaisuhistoria suoraan sovelluksessa.\nKorjattiin ongelma, jossa selaimen valikon viimeinen rivi oli osittain piilossa näytön navigointipalkin takana laitteissa, joissa ei ole eleohjausta.\n", "fr-FR": "La section « Paramètres » comporte désormais une rubrique « Nouveautés » qui affiche l'historique complet des mises à jour, directement dans l'application.\nCorrection d'un problème où la dernière ligne du menu du navigateur était partiellement masquée par la barre de navigation à l'écran sur les appareils ne disposant pas de navigation gestuelle.\n", "it-IT": "La sezione \"Impostazioni\" ora include una voce \"Novità\" che mostra la cronologia completa delle versioni, direttamente all'interno dell'app.\nÈ stato risolto il problema per cui l'ultima riga del menu del browser risultava parzialmente nascosta dietro la barra di navigazione sullo schermo sui dispositivi privi di navigazione tramite gesti.\n", "nl-NL": "In de instellingen is nu een item ‘Wat is er nieuw’ toegevoegd, waarmee je de volledige releasegeschiedenis rechtstreeks in de app kunt bekijken.\nEr is een probleem verholpen waarbij de laatste rij van het browsermenu gedeeltelijk verborgen was achter de navigatiebalk op het scherm op apparaten zonder gebarennavigatie.\n", "pl-PL": "W sekcji „Ustawienia” dodano teraz pozycję „Co nowego”, zawierającą pełną historię aktualizacji, dostępną bezpośrednio w aplikacji.\nNaprawiono błąd, w wyniku którego ostatni wiersz menu przeglądarki był częściowo ukryty za ekranowym paskiem nawigacyjnym na urządzeniach bez nawigacji gestowej.\n", "pt-PT": "A secção «Definições» inclui agora uma entrada «Novidades» que apresenta o histórico completo de atualizações, diretamente na aplicação.\nCorrigimos o problema em que a última linha do menu do navegador ficava parcialmente oculta por trás da barra de navegação no ecrã em dispositivos sem navegação por gestos.\n", "sv-SE": "I inställningarna finns nu en rubrik som heter ”Nyheter” där du kan se hela versionshistoriken direkt i appen.\nVi har åtgärdat ett problem där den sista raden i webbläsarmenyn delvis doldes bakom navigeringsfältet på skärmen på enheter utan gestnavigering.\n"}}, "55795f03cdd1f5aa95c0aba985cc087d2083d92a180713c2fdf80a6a535c67bf": {"added": 1786749285772, "file": {"name": "/de.metager.metagerapp.fdroid_50112.apk", "sha256": "55795f03cdd1f5aa95c0aba985cc087d2083d92a180713c2fdf80a6a535c67bf", "size": 1185821, "ipfsCIDv1": "bafybeiesigj6veeqzqypyceaiakd6xzi2gw24lel4bb4xe63otaca56y3a"}, "src": {"name": "/de.metager.metagerapp.fdroid_50112_src.tar.gz", "sha256": "22b74c051b927d2db44a97d8667c2fbece8ba36cf7653c653a03e4dd2e2bb695", "size": 2062644}, "manifest": {"versionName": "5.1.12", "versionCode": 50112, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["1e752e3acdc99d7aaeaaee39cc610d412476ecd7980a185fb66533e4a1ab9b67"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "de.metager.metagerapp.fdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}]}, "whatsNew": {"de-DE": "Verbessertes Update-Verfahren für Installationen außerhalb des Play Store vor dem nächsten großen Update\n", "en-GB": "Improved the update mechanism for direct-APK installs ahead of the next major update\n", "en-US": "Improved the update mechanism for direct-APK installs ahead of the next major update\n", "es-ES": "Mejora del mecanismo de actualización para instalaciones fuera de Play Store antes de la próxima actualización importante\n", "es-US": "Mejora del mecanismo de actualización para instalaciones fuera de Play Store antes de la próxima actualización importante\n"}}}}, "de.nulide.findmydevice": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"7a61dce19d4156b303f3458719e22839874b56e56fbf7b6d5373477ffa4275cd": null, "39c3982809e775cdbdb45b28a7860e6ae26d2142fe382004ce446cc93cba8f69": {"added": 1786866775484, "file": {"name": "/de.nulide.findmydevice_44.apk", "sha256": "39c3982809e775cdbdb45b28a7860e6ae26d2142fe382004ce446cc93cba8f69", "size": 6722053, "ipfsCIDv1": "bafybeif5yhopia73xsgp3p5d53aijg6knqrzmyzmxtm6r6vnodnx5uepae"}, "src": {"name": "/de.nulide.findmydevice_44_src.tar.gz", "sha256": "ae5d7f1f311ae347b610b5b3ab1f2253d7ef0a113b93e4e4e6f0bdb5714078c1", "size": 1619504}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.16.2", "versionCode": 44, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 32}, "signer": {"sha256": ["87a6c136f5499db255c93f4d384cb1a5d314f6908f2bf197e0ec07ed58bb5872"]}, "usesPermission": [{"name": "android.permission.SEND_SMS"}, {"name": "android.permission.READ_SMS"}, {"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"}, {"name": "android.permission.WRITE_SECURE_SETTINGS"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "de.nulide.findmydevice.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "moe.shizuku.manager.permission.API_V23"}]}, "whatsNew": {"en-US": "0.16.2:\n- Fix About screen being blank in minified release builds.\n- Migrate About screen to Jetpack Compose.\n- Fix crash in 'locate cell' in airplane mode with Wi-Fi on (#430)\n- Fix settings export failing if no lockscreen is set (#435)\n- Fix settings export device auth not working on Android 10 (and earlier) (#437)\n- After reboots, only renew push registration if network available\n"}}}}, "de.nulide.findmydevice.edge": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"5e18c03a789f3dd64e2e3f19e32cd9d0dea7061ab34a3e01f30e7c4afcd80052": null, "0c8f8cfc7ae9cabaf2e0e32fd877408ccb976fa4f5553102d58de511d5b0b73a": {"added": 1786866775484, "file": {"name": "/de.nulide.findmydevice.edge_44.apk", "sha256": "0c8f8cfc7ae9cabaf2e0e32fd877408ccb976fa4f5553102d58de511d5b0b73a", "size": 6701308, "ipfsCIDv1": "bafybeigyyymcyawf5b5youvreplw3je4aorcf3qsnrwgiztte5s7kgmmce"}, "src": {"name": "/de.nulide.findmydevice.edge_44_src.tar.gz", "sha256": "8be0a35d8dd164b98b0100312d8e425dfaa6211ef81181ca9361a591fbadff79", "size": 1619676}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.16.2", "versionCode": 44, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 32}, "signer": {"sha256": ["4ee65f838f4db4153a4ce934470222035f05c5b97a30133ab5c0a999e2747da4"]}, "usesPermission": [{"name": "android.permission.SEND_SMS"}, {"name": "android.permission.READ_SMS"}, {"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_BACKGROUND_LOCATION"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"}, {"name": "android.permission.WRITE_SECURE_SETTINGS"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "de.nulide.findmydevice.edge.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "moe.shizuku.manager.permission.API_V23"}]}, "whatsNew": {"en-US": "0.16.2:\n- Fix About screen being blank in minified release builds.\n- Migrate About screen to Jetpack Compose.\n- Fix crash in 'locate cell' in airplane mode with Wi-Fi on (#430)\n- Fix settings export failing if no lockscreen is set (#435)\n- Fix settings export device auth not working on Android 10 (and earlier) (#437)\n- After reboots, only renew push registration if network available\n"}}}}, "de.sudoq": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"d193999364ab012eb95b840eba111feaf7b52e46b534f27561fbec170c72c004": null, "4c8e4ff76cf103f10a564d8882f468eafccd85f9813a4668d618316ca1665f1f": {"added": 1786866775484, "file": {"name": "/de.sudoq_52.apk", "sha256": "4c8e4ff76cf103f10a564d8882f468eafccd85f9813a4668d618316ca1665f1f", "size": 4049738, "ipfsCIDv1": "bafybeidcq2shskam2vo2uq7ahto6wr3b3epvb67axsxmikvjhxgv4iskeu"}, "src": {"name": "/de.sudoq_52_src.tar.gz", "sha256": "2a7190827a8b3d11b0bbb5c378fd22375dc44d192d270da7f01c5df81a71a2d7", "size": 8133635}, "manifest": {"versionName": "3.1.2", "versionCode": 52, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 35}, "signer": {"sha256": ["54bb9560503596b26fdc8f4ac082a68c4c565e4289a435169164a03748c66ddb"]}, "usesPermission": [{"name": "de.sudoq.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "hotfix", "en-US": "hotfix", "fr-FR": "hotfix"}}}}, "de.tnmgl.ntodotxt": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"eca6b0c55250c5793dd007d41546202392995bb85913559c4561ee69b5f07b51": null, "5870b251c19a43b643b90af6d5c24e9df21b8bfd5d039d93176e7153d1a147c6": null, "a3d7a268296aacee2809aa7b3ac2a4313f448cd406a7ae07c84cf5e9dcf8b078": null, "22d6afd63a97f06081dd85f150924b10d369934a3d72dc686e64a4103de232c0": {"added": 1786866775484, "file": {"name": "/de.tnmgl.ntodotxt_433.apk", "sha256": "22d6afd63a97f06081dd85f150924b10d369934a3d72dc686e64a4103de232c0", "size": 23964677, "ipfsCIDv1": "bafybeictfwt3zofl4xsebhu43a7bzebp3nabv3txxg3rn6hs5ld5ps3iui"}, "src": {"name": "/de.tnmgl.ntodotxt_433_src.tar.gz", "sha256": "e1ac316610bf2863a38764febdf6ebf61f430001acc901d6995c84de62023e18", "size": 400448619}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.19.2", "versionCode": 433, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["edc5e43caf8beb997fceb98f936d7eb573f8d53c98fdfc8ff58b556a70499616"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "de.tnmgl.ntodotxt.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "54bd827f7019894da701ac3c7a275eac43d1c954faaf042d380265118a8c77a3": {"added": 1786866775484, "file": {"name": "/de.tnmgl.ntodotxt_432.apk", "sha256": "54bd827f7019894da701ac3c7a275eac43d1c954faaf042d380265118a8c77a3", "size": 21796979, "ipfsCIDv1": "bafybeibx2moooj5w4yylokxg6qad5k3yik2dpv5qq3hfqy6y4qqwgip5dm"}, "src": {"name": "/de.tnmgl.ntodotxt_432_src.tar.gz", "sha256": "b5daa2e56ff37eaf4a09f839264e7c255c1036c6d652665fe74862c04016f99d", "size": 400444904}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "0.19.2", "versionCode": 432, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["edc5e43caf8beb997fceb98f936d7eb573f8d53c98fdfc8ff58b556a70499616"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "de.tnmgl.ntodotxt.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "b2dd2774e0123576762fe5d0d20ad0d1221a1c1e829cce1c2d0ba7c5a49dafb2": {"added": 1786866775484, "file": {"name": "/de.tnmgl.ntodotxt_431.apk", "sha256": "b2dd2774e0123576762fe5d0d20ad0d1221a1c1e829cce1c2d0ba7c5a49dafb2", "size": 25385052, "ipfsCIDv1": "bafybeicxxgmuxcd6ao3tvzotf3auz7xvxbrfz3p23tuuelhncnhvhr57fe"}, "src": {"name": "/de.tnmgl.ntodotxt_431_src.tar.gz", "sha256": "118af3d98d99fd771e7fbe8d3086f37ccb63b492b9bc1b9ed938caa069ec9366", "size": 400446462}, "manifest": {"nativecode": ["x86_64"], "versionName": "0.19.2", "versionCode": 431, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["edc5e43caf8beb997fceb98f936d7eb573f8d53c98fdfc8ff58b556a70499616"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "de.tnmgl.ntodotxt.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "de.tutao.tutanota": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"c12b2e38966a391fd020565e35a44b0c09c84224207abb771a4e4af043341ee3": null, "949e3c681fe2ec15b4a03914ff0d26d8b918564fbac6d0f035eec3ad5d393072": {"added": 1786866775484, "file": {"name": "/de.tutao.tutanota_396695.apk", "sha256": "949e3c681fe2ec15b4a03914ff0d26d8b918564fbac6d0f035eec3ad5d393072", "size": 76794746, "ipfsCIDv1": "bafybeifwjk2phwgjr3gpsrloeseu5uytvskz3puhjcqwktsnmmepjstoi4"}, "src": {"name": "/de.tutao.tutanota_396695_src.tar.gz", "sha256": "2092592fd1a092808d0e181b1e3eb41f8f7b80c9b2fe66c83c52503135f0b38e", "size": 105810655}, "manifest": {"nativecode": ["arm64-v8a", "armeabi", "armeabi-v7a", "mips", "mips64", "x86", "x86_64"], "versionName": "357.260812.1", "versionCode": 396695, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["fc1932e08464aefcae82597dc0fc9d04c08b24aa09d1f950df20ea81234f30cb"]}, "usesPermission": [{"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.GET_ACCOUNTS"}, {"name": "android.permission.MANAGE_ACCOUNTS"}, {"name": "android.permission.AUTHENTICATE_ACCOUNTS"}, {"name": "android.permission.USE_CREDENTIALS"}, {"name": "android.permission.WRITE_SYNC_SETTINGS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM", "maxSdkVersion": 32}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "de.tutao.tutanota.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "App is tethered to the Tutanota eMail service."}}, "whatsNew": {"en-US": "see: https://github.com/tutao/tutanota/releases"}}, "9e2db1d2d124a22f3bf2cc6786ee09c252cabc24f2d73a0dd95ab859cab7e867": {"whatsNew": null}}}, "de.wger.flutter": {"metadata": {"lastUpdated": 1786749285772, "name": {"sl": "wger Workout Manager"}, "summary": {"sl": "Spremljanje fitnesa/treningov, prehrane in teže"}, "description": {"sl": "Od ljubiteljev fitnesa za ljubitelje fitnesa – organizirajte svoje zdravje z aplikacijo WGER, vašim upravljalnikom treningov!\n\nNašli ste svojo novo najljubšo aplikacijo za fitnes. Ali radi ustvarjate svoje lastne športne rutine? Ne glede na to kake vrste ŽIVALI/POŠASTI ste – vsi imamo nekaj skupnega: radi spremljamo naše podatke o zdravju <3\n\nNe obsojamo vas, če svoje fitnes potovanje še vedno upravljate s staro dobro papirnato beležnico treningov. Dobrodošli pa v 2026!\n\nZa vas smo ustvarili 100 % brezplačno digitalno aplikacijo za sledenje zdravju in treningom. Vsebuje vse najbolj pomembne zmožnosti, ki vam olajšajo življenje. Začnite z uporabo, redno trenirajte in slavite svoj napredek!\n\nWGER je svoboden in odprto-koden projekt, ki se osredotoča na:\n* Vaše telo\n* Vaše treninge\n* Vaš napredek\n* Vaše podatke\n\nVaše telo:\nNi vam potrebno po spletu iskati sestavin vaših priljubljenih obrokov in prigrizkov – izbirajte svoje dnevne obroke iz več kot 100.000 izdelkov in takoj vidite njihove prehrambene vrednosti. Obroke dodajte prehranskemu načrtu in imejte pregled nad svojo dieto v koledarju.\n\nVaši treningi:\nSami veste, kaj je najboljše za vaše telo. Ustvarjajte svoje treninge s kombiniranjem vse bolj raznolikih vrst vaj. Na voljo je že več kot 200 različnih vaj. Nato uporabite način za telovadnico, ki vas bo vodil skozi trening, medtem ko uteži vnašate v dnevnik z enim samim dotikom.\n\nVaš napredek:\nNikoli ne izgubite fokusa na svoje cilje. Sledite svoji telesni teži in vodite statistiko.\n\nVaši podatki:\nWGER je vaš osebni dnevnik fitnesa – in samo vi si lastite svoje osebne podatke. Za dostop do podatkov lahko uporabljate programski vmesnik REST in s podatki ustvarjate čudovite stvari.\n\nVedite: Ta brezplačna aplikacija ni odvisna od skritega financiranja in od vas ne zahtevamo plačila za njeno uporabo. Je veliko več. Je projekt skupnosti, ki stalno raste. Kadarkoli lahko pričakujete nove zmožnosti in funkcije!\n\n#OdprtaKoda – kaj to pomeni?\n\nSvobodna in odprta koda pomeni, da je celotna izvorna koda te aplikacije in strežnika, s katero aplikacija komunicira, prosta in na voljo vsakomur:\n* Ali bi radi WGER poganjali na svojem lastnem strežniku za vaš krajevni fitnes? Kar dajte!\n* Ali pogrešate neko zmožnost ali funkcijo in bi jo radi dodali? Začnite takoj!\n* Ali želite preveriti, da se noben vaš osebni podatek ne pošilja nekomu drugemu na skrivaj? Tudi to lahko!\n\nPridružite se naši skupnosti in postanite del športnih navdušencev in računalniških zanesenjakov z vsega sveta. Neprestano delamo na prilagajanju in optimiziranju aplikacije za naše (in vaše) potrebe. Veseli smo vašega mnenja zato kadarkoli skočite med nas in prispevajte svoje želje in ideje!\n\n➙ izvorno kodo najdete na https://github.com/wger-project\n➙ vprašajte nas karkoli ali pa nas pridite pozdravit v našo klepetalnico na Discordu https://discord.gg/rPWFv6W\n"}}, "versions": {"1a8211cf88a6881b9e92ede55e7973902380639a4884c04c4e55fa46962caba7": null, "a374f980270c0a77cb9b3faba9da938c3bd7588ea70ed6d106a884b196626e3d": {"added": 1786749285772, "file": {"name": "/de.wger.flutter_250.apk", "sha256": "a374f980270c0a77cb9b3faba9da938c3bd7588ea70ed6d106a884b196626e3d", "size": 98745032, "ipfsCIDv1": "bafybeide3pwpbzgaii4wqrrnn7rjdhbq6ts6t65txw4ahx5so5hya4vfwu"}, "src": {"name": "/de.wger.flutter_250_src.tar.gz", "sha256": "0c5e17d1c300bb1ac689c7a1ba9b46ca196035577b9b04b7febde49c2826b6f4", "size": 160228584}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86_64"], "versionName": "2.0.4", "versionCode": 250, "features": [{"name": "android.hardware.camera.any"}], "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["43a06f0a6222c360d820dfb50be5b5e67220d58ca64523dc3b697a9e0c029e75"]}, "usesPermission": [{"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "de.wger.flutter.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "dev.bg.jetbird": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"dda31493b1221ee8225d9f1a0353f487877953e8172b1f3ddd10e9868b96e7bf": null, "c8e45a90496a20653e615281d01b9b7eaaef80462d11e367d56cfa1c9bd4d35f": null, "d4c315bba87a152be47faf9c4beac2d123ca88825eaea6bd2c6446da792a2476": null, "ce9d76bab2e9665d3fe25839f900f26ded7e73be4e7217e902b578eea1cf79de": null, "c9271d99d7ecd30012ec10ba2805e5fe06c8a4b27d0cd7a1b82949dae5dddde9": null, "69885d515815a7dc2b98f6ef16551d363b1dadccd6a54005ae2729c4e361397b": null, "09a0094ce08a0e597af4e90cea15a6b7cfac941f6e81b40f2a424679e77938aa": null, "c4b5d8f77344fc00c6fd4697b56e03e854f704c65e7c30d036c3c27ac621f2cd": null, "6b0172632b9548161731f0af2c2ca6ed58dbb1c5a44290e1f8c79d0a4025dc87": {"added": 1786866775484, "file": {"name": "/dev.bg.jetbird_514.apk", "sha256": "6b0172632b9548161731f0af2c2ca6ed58dbb1c5a44290e1f8c79d0a4025dc87", "size": 44555236, "ipfsCIDv1": "bafybeief5gnjpfmiavtm4vh3gw4gzp6wy2rmao2inevzsmhcpj7mcsnv3a"}, "src": {"name": "/dev.bg.jetbird_514_src.tar.gz", "sha256": "0083341318eb770f36b2fb19ce2ec58afddddba62b04a4a246e0c7a895410a53", "size": 10153696}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.8.8", "versionCode": 514, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "ec01deb659cea71750fcb3e3b2c219b5aa4e2729ac2f03b63927c35c96b4075f": {"added": 1786866775484, "file": {"name": "/dev.bg.jetbird_513.apk", "sha256": "ec01deb659cea71750fcb3e3b2c219b5aa4e2729ac2f03b63927c35c96b4075f", "size": 40553432, "ipfsCIDv1": "bafybeiax6cu7gb2j7lmouvqkdsk6sssoi7p7k2nl5dmhwdd5ow33kmso3u"}, "src": {"name": "/dev.bg.jetbird_513_src.tar.gz", "sha256": "188f6ae71f34f4821461d2cfa14901ab75545c49753252f740d6c214c8f10028", "size": 10153950}, "manifest": {"nativecode": ["x86"], "versionName": "1.8.8", "versionCode": 513, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "65814dca033b15152d7207fa6d33b486d311096d3c505c21b4cd409bcd02b34b": {"added": 1786866775484, "file": {"name": "/dev.bg.jetbird_512.apk", "sha256": "65814dca033b15152d7207fa6d33b486d311096d3c505c21b4cd409bcd02b34b", "size": 42380272, "ipfsCIDv1": "bafybeiff7pvburps2duz2av7hyzeh6se2b7ttm64p3da3idcnkse4nqypy"}, "src": {"name": "/dev.bg.jetbird_512_src.tar.gz", "sha256": "89ccee5b62d1ccf165e5c18f95ef4359c4262917ca81adbdc293dc785db3a2a7", "size": 10153672}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.8.8", "versionCode": 512, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "72fee8cc7a4c619430ed3ace75efcb6f24b189afcdf9863c6c35a932d9bfc766": {"added": 1786866775484, "file": {"name": "/dev.bg.jetbird_511.apk", "sha256": "72fee8cc7a4c619430ed3ace75efcb6f24b189afcdf9863c6c35a932d9bfc766", "size": 39926776, "ipfsCIDv1": "bafybeieyfgrzy6lfshwmnwwu3d3nkfw7vrewpgfh7dma6ux7fxgrbpf7vu"}, "src": {"name": "/dev.bg.jetbird_511_src.tar.gz", "sha256": "538edfe1d2308808496cce678e24eaf4f03750aef05d95d3e30d51c3b6edfb17", "size": 10153645}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.8.8", "versionCode": 511, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "608cc0832c3ee28734a783ab78a155fcc21b58e125a0eb7379227820a45633a5": {"added": 1786749285772, "file": {"name": "/dev.bg.jetbird_504.apk", "sha256": "608cc0832c3ee28734a783ab78a155fcc21b58e125a0eb7379227820a45633a5", "size": 44555236, "ipfsCIDv1": "bafybeibjoc74mjipg6ejwcjckpv6drzntv7g5eo34b6dwyxktadfhnswaa"}, "src": {"name": "/dev.bg.jetbird_504_src.tar.gz", "sha256": "c3c444d249f8dfafca8964333ecfaaef96b2631f8ad9f1c2524c2c8cdcc84638", "size": 10153962}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.8.7", "versionCode": 504, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "382aea6c9ffea7079038b481a60763690e58fb24618cb7ad1fe2c2c88312fe88": {"added": 1786749285772, "file": {"name": "/dev.bg.jetbird_503.apk", "sha256": "382aea6c9ffea7079038b481a60763690e58fb24618cb7ad1fe2c2c88312fe88", "size": 40553432, "ipfsCIDv1": "bafybeictzk7gvyxhllylq7yfuos77o7bwumfy7rspgti4kovfv44topjhy"}, "src": {"name": "/dev.bg.jetbird_503_src.tar.gz", "sha256": "24a71d2b669c55218ee050567d66cce6d236c4fcfc3aa50975e33ffdc9b9807a", "size": 10154105}, "manifest": {"nativecode": ["x86"], "versionName": "1.8.7", "versionCode": 503, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "f69e8559d2bd37765adfe8a6237e96923736e2f19b13bc6826d20c4002718643": {"added": 1786749285772, "file": {"name": "/dev.bg.jetbird_502.apk", "sha256": "f69e8559d2bd37765adfe8a6237e96923736e2f19b13bc6826d20c4002718643", "size": 42380272, "ipfsCIDv1": "bafybeihon5tgi2w4xigbnidgrxvxebr5g5khp4ex7tq4hufexrwwyuk5nq"}, "src": {"name": "/dev.bg.jetbird_502_src.tar.gz", "sha256": "466d8530e25a13ae4b896011783e871aaf7cdcca86c8ff5ae2c3dcfa603cb6ea", "size": 10153770}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.8.7", "versionCode": 502, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "f7720c08875b07199363fc9db68adc0d8d801d4b8beaf96413fb81dd4096dc62": {"added": 1786749285772, "file": {"name": "/dev.bg.jetbird_501.apk", "sha256": "f7720c08875b07199363fc9db68adc0d8d801d4b8beaf96413fb81dd4096dc62", "size": 39926776, "ipfsCIDv1": "bafybeibpailr3nv5kscno4h23uikj3gehivcv5tlyasksfjfalizyvdfzy"}, "src": {"name": "/dev.bg.jetbird_501_src.tar.gz", "sha256": "7c1ec468af02e7ce7ca36735a028167e5696b4c8c6378346d3bf4fa5b28dcffe", "size": 10153574}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.8.7", "versionCode": 501, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3956533c542218349b5f3f7f3d3a6926060c1a0cdf32d6e58ea1de3a36c21213"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.CHANGE_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "dev.bg.jetbird.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "dev.daika.davy": {"metadata": {"added": 1786866775484, "categories": ["Multimedia", "Online Media Player"], "issueTracker": "https://github.com/AsfhtgkDavid/davy/issues", "lastUpdated": 1786866775484, "license": "AGPL-3.0-only", "sourceCode": "https://github.com/AsfhtgkDavid/davy", "tvBanner": {"en-US": {"name": "/dev.daika.davy/en-US/tvBanner_W5TYl7YVUfGk9DR5MFPVWLP7LGq_mlEmjop4wnvlpMY=.png", "sha256": "5b94d897b61551f1a4f434793053d558b3fb2c6abf9a51268e8a78c27be5a4c6", "size": 3427856}}, "screenshots": {"tv": {"en-US": [{"name": "/dev.daika.davy/en-US/tvScreenshots/DetailView.png", "sha256": "96dec69adedc1f2c1e1fd548d6a1d493c4aa66ae3fe7994b3e99080e3ea6214a", "size": 1057550}, {"name": "/dev.daika.davy/en-US/tvScreenshots/HomeScreen.png", "sha256": "d15d007094681749c9f14246272fcea92a9c9d14703ea9976b36b65c2fabadde", "size": 1501648}]}}, "authorEmail": "david@daika.dev", "authorName": "David Lishchyshen", "authorWebSite": "https://daika.dev", "bitcoin": "bc1q5xmq99krq0vykhzpgc5upl5vzttfdl2feflf53", "name": {"en-US": "DAVY - Daika Anime Viewer because YOLO"}, "summary": {"en-US": "Lightweight, open-source anime player for Android TV."}, "description": {"en-US": "DAVY is a modern, lightweight media player designed specifically for Android TV and Google TV platforms. It provides a seamless way to discover and stream anime directly on your TV.\n\nContent is currently available in Russian only.\n\nBuilt from the ground up with Kotlin and Jetpack Compose, the app features a highly polished, TV-first interface. Navigate effortlessly using only your remote control (D-pad) without the need for touch emulation.\n\nKey Features:\n\n* TV-Optimized: Focus-based navigation designed specifically for remote controls and smart TVs.\n* Fast & Lightweight: Minimum footprint, fast loading times, and smooth UI even on low-end TVs.\n* Modern Player: Reliable video streaming built on top of the modern Media3 (ExoPlayer) stack."}, "icon": {"en-US": {"name": "/dev.daika.davy/en-US/icon_4JCo0RnjpcYJz8WvQRKGeR2CbuS75khyoA3AD0R4Ji8=.png", "sha256": "e090a8d119e3a5c609cfc5af411286791d826ee4bbe64872a00dc00f4478262f", "size": 2926185}}, "preferredSigner": "968989b0da66c9c4a851fb51a68001c5539a828ff200e1b877e50e2d5a443d95"}, "versions": {"dd8ba047a286c1ee838028a2851e5dffcb089ae30fd63c98fc1eba712f71faea": {"added": 1786866775484, "file": {"name": "/dev.daika.davy_6.apk", "sha256": "dd8ba047a286c1ee838028a2851e5dffcb089ae30fd63c98fc1eba712f71faea", "size": 14442848, "ipfsCIDv1": "bafybeig7xjjwj4qw64j4nmxr42xyoi5senwrothu4hj75v5orqaycbqj5u"}, "src": {"name": "/dev.daika.davy_6_src.tar.gz", "sha256": "a9b02866e17d3104acf22e43ed0d193fece5bab4086f48230e28d84730445805", "size": 10743922}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.0.5", "versionCode": 6, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["968989b0da66c9c4a851fb51a68001c5539a828ff200e1b877e50e2d5a443d95"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "dev.daika.davy.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Rely on anime aggregators"}}}}}, "dev.halim.shelfdroid": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"d17e813d3a2f7a5fe4f2acb535798cfcffb69824ba093cc30f56d2797203e6c0": null, "64c9b217c5b7828cf05ecb36e07d4805d7c25e5b537d1dd41306e958a1dca964": {"added": 1786866775484, "file": {"name": "/dev.halim.shelfdroid_23.apk", "sha256": "64c9b217c5b7828cf05ecb36e07d4805d7c25e5b537d1dd41306e958a1dca964", "size": 8568551, "ipfsCIDv1": "bafybeielzilxuzavsrbreohm5ah5b7k6rpcogdlfx5kwej3siyphwggo2y"}, "src": {"name": "/dev.halim.shelfdroid_23_src.tar.gz", "sha256": "064a1cff50bc15c19ebbf6f62df48ea9623c6233283e2e94401ea3b9e5ab5831", "size": 14355752}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.5.1", "versionCode": 23, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 37}, "signer": {"sha256": ["0430bed01abb1c653fc56883314a1c14f4922314f5af16af68885c732dd29bbd"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "dev.halim.shelfdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": ""}}}}, "eu.imouto.hupl": {"metadata": {"lastUpdated": 1786749285772, "icon": {"en-US": {"name": "/eu.imouto.hupl/en-US/icon_IyOebOBBc9xfYbJjdPovTvSg0Er_KILcyPWKzWnJmZc=.png", "sha256": "23239e6ce04173dc5f61b26374fa2f4ef4a0d04aff2882dcc8f58acd69c99997", "size": 71334}}}, "versions": {"b335f914570a8810fbd99ce4910422cd3ed770ef06b6dac48492e77a305aa27d": {"added": 1786749285772, "file": {"name": "/eu.imouto.hupl_200310.apk", "sha256": "b335f914570a8810fbd99ce4910422cd3ed770ef06b6dac48492e77a305aa27d", "size": 5483375, "ipfsCIDv1": "bafybeigtqsqxrafh4eqgwpvyjw64rquaq4whdee46vmtqc7ikktdtg6rju"}, "src": {"name": "/eu.imouto.hupl_200310_src.tar.gz", "sha256": "e9f67f74064c7429b6807d49313c2c13a4045817b6d89c6899d3e02ffcde674d", "size": 4155015}, "manifest": {"versionName": "2.3.10", "versionCode": 200310, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 34}, "signer": {"sha256": ["c99c050ec3d1350d07b0fac0b90cbfaae217da82ce5b287ce9a68db46d32771d"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "eu.imouto.hupl.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "fr.hellpc.mirror": {"metadata": {"added": 1786866775484, "categories": ["Cloud Storage & File Sync", "File Transfer", "System"], "changelog": "https://github.com/He11PC/android-mirror/releases", "issueTracker": "https://github.com/He11PC/android-mirror/issues", "lastUpdated": 1786866775484, "license": "AGPL-3.0-or-later", "sourceCode": "https://github.com/He11PC/android-mirror", "screenshots": {"phone": {"en-US": [{"name": "/fr.hellpc.mirror/en-US/phoneScreenshots/1.png", "sha256": "8b400b40ee2dbd5795228493abf1a84712ddcaf3a0c3a7eecd8962c1e5275b14", "size": 126559}, {"name": "/fr.hellpc.mirror/en-US/phoneScreenshots/2.png", "sha256": "0759dfc90b59bedd77889ad6c298d0e8af036af7e0bd141f08ce885c5eddbc86", "size": 73167}, {"name": "/fr.hellpc.mirror/en-US/phoneScreenshots/3.png", "sha256": "33544f15d2e2d2ffd99061366e823654b6d7838759ded00e758db42372781ea7", "size": 125636}, {"name": "/fr.hellpc.mirror/en-US/phoneScreenshots/4.png", "sha256": "201371d3d1737b5606e221cea7eb79ed023856ea058dcaafe4ba6e041e6848c5", "size": 130522}, {"name": "/fr.hellpc.mirror/en-US/phoneScreenshots/5.png", "sha256": "20e75a26c77a927b2a0afed1819fe95d227c106708ff3fcc36f45d3024600fb3", "size": 218608}, {"name": "/fr.hellpc.mirror/en-US/phoneScreenshots/6.png", "sha256": "8af2a0b03ee74118e9af259485c469dbbb697bed6be798215bbad7f38645b42d", "size": 158844}, {"name": "/fr.hellpc.mirror/en-US/phoneScreenshots/7.png", "sha256": "e02798b4219b86d2b71f7001e972aaed4f9900efa9a4e7299ca76e2eb874f896", "size": 144929}]}}, "authorName": "HellPC", "name": {"bn-BD": "Mirror", "cs-CZ": "Mirror", "de-DE": "Mirror", "el-GR": "Mirror", "en-US": "Mirror", "es-ES": "Mirror", "fr-FR": "Mirror", "hi-IN": "Mirror", "hu-HU": "Mirror", "in-ID": "Mirror", "it-IT": "Mirror", "ja-JP": "Mirror", "ko-KR": "Mirror", "nl-NL": "Mirror", "pl-PL": "Mirror", "pt-PT": "Mirror", "ro-RO": "Mirror", "ru-RU": "Mirror", "sv-SE": "Mirror", "tr-TR": "Mirror", "uk-UA": "Mirror", "zh-CN": "Mirror"}, "summary": {"bn-BD": "মাল্টিপ্রোটোকল ব্যাকআপ অ্যাপ্লিকেশন (NFS, SMB, FTP, SFTP, WebDAV)", "cs-CZ": "Multiprotokolová zálohovací aplikace (NFS, SMB, FTP, SFTP, WebDAV)", "de-DE": "Multiprotokoll-Backup-Anwendung (NFS, SMB, FTP, SFTP, WebDAV)", "el-GR": "Εφαρμογή δημιουργίας αντιγράφων ασφαλείας πολλαπλών πρωτοκόλλων (NFS, SMB, FTP, ", "en-US": "Multiprotocol backup application (NFS, SMB, FTP, SFTP, WebDAV)", "es-ES": "Aplicación de copia de seguridad multiprotocolo (NFS, SMB, FTP, SFTP, WebDAV)", "fr-FR": "Application de sauvegarde multiprotocole (NFS, SMB, FTP, SFTP, WebDAV)", "hi-IN": "मल्टीप्रोटोकॉल बैकअप एप्लिकेशन (NFS, SMB, FTP, SFTP, WebDAV)", "hu-HU": "Többprotokollos biztonsági mentési alkalmazás (NFS, SMB, FTP, SFTP, WebDAV)", "in-ID": "Aplikasi pencadangan multiprotokol (NFS, SMB, FTP, SFTP, WebDAV)", "it-IT": "Applicazione di backup multiprotocollo (NFS, SMB, FTP, SFTP, WebDAV)", "ja-JP": "マルチプロトコル対応バックアップアプリケーション（NFS、SMB、FTP、SFTP、WebDAV）", "ko-KR": "멀티프로토콜 백업 애플리케이션(NFS, SMB, FTP, SFTP, WebDAV)", "nl-NL": "Multiprotocol back-up applicatie (NFS, SMB, FTP, SFTP, WebDAV)", "pl-PL": "Aplikacja do tworzenia kopii zapasowych wieloprotokołowych (NFS, SMB, FTP, SFTP,", "pt-PT": "Aplicação de backup multiprotocolo (NFS, SMB, FTP, SFTP, WebDAV)", "ro-RO": "Aplicație de backup multiprotocol (NFS, SMB, FTP, SFTP, WebDAV)", "ru-RU": "Многопротокольное приложение для резервного копирования (NFS, SMB, FTP, SFTP, We", "sv-SE": "Multiprotokolls säkerhetskopieringsprogram (NFS, SMB, FTP, SFTP, WebDAV)", "tr-TR": "Çoklu protokol yedekleme uygulaması (NFS, SMB, FTP, SFTP, WebDAV)", "uk-UA": "Багатопротокольна програма резервного копіювання (NFS, SMB, FTP, SFTP, WebDAV)", "zh-CN": "多协议备份应用程序（NFS、SMB、FTP、SFTP、WebDAV）"}, "description": {"bn-BD": "Mirror হলো অ্যান্ড্রয়েডের জন্য একটি মাল্টি-প্রোটোকল মিরর-টাইপ ব্যাকআপ অ্যাপ্লিকেশন।\nসিঙ্ক্রোনাইজেশন সফটওয়্যারের চেয়ে সহজ এবং হালকা হওয়ার জন্য ডিজাইন করা হয়েছে, এটি আপনাকে তৃতীয় পক্ষের ক্লাউড পরিষেবার পরিবর্তে আপনার নিজস্ব পরিকাঠামো ব্যবহার করার সুযোগ দেয়।\n\nআপনি নিম্নলিখিত উপায়ে একাধিক ব্যাকআপ কনফিগার করতে পারেন:\n\n- একটি সোর্স ডিরেক্টরি নির্বাচন করুন\n- একটি ডেস্টিনেশন ডিরেক্টরি নির্বাচন করুন\n- ফিল্টারিং অপশন বেছে নিন (ঐচ্ছিক)\n- স্বয়ংক্রিয় সময়সূচী কনফিগার করুন (ঐচ্ছিক)\n\nMirror উভয় ডিরেক্টরির বিষয়বস্তু বিশ্লেষণ করবে, সেগুলোকে তুলনা করবে এবং আপনার বেছে নেওয়া ফিল্টারিং অপশনগুলো মেনে সোর্স ডিরেক্টরির কাঠামো (সাবডিরেক্টরি এবং ফাইল) ডেস্টিনেশন ডিরেক্টরিতে পুনরায় তৈরি করবে।\n\nসোর্স এবং ডেস্টিনেশন নিম্নলিখিত স্থানে থাকতে পারে:\n\n- আপনার ডিভাইসের অভ্যন্তরীণ বা বাহ্যিক স্টোরেজ\n- একটি NFS শেয়ার\n- একটি SMB শেয়ার\n- একটি FTP বা FTPS সার্ভার\n- একটি SFTP সার্ভার\n- একটি WebDAV সার্ভার\n\n<b>নিরাপত্তা ও গোপনীয়তা</b>\n\n- <b>স্থানীয় সংরক্ষণ:</b> সংবেদনশীল তথ্য এনক্রিপ্ট করা হয় (AES-GCM + Android KeyStore) এবং Room ডেটাবেস ব্যবহার করে আপনার ডিভাইসে স্থানীয়ভাবে সংরক্ষণ করা হয়।\n- <b>কোনো ট্র্যাকিং নেই:</b> এই অ্যাপ্লিকেশনটিতে কোনো অ্যানালিটিক্স, ট্র্যাকার, বিজ্ঞাপন বা মালিকানাধীন সফটওয়্যার ডেভেলপমেন্ট কিট (SDK) নেই।\n- <b>ওপেন সোর্স:</b> Mirror একটি স্বাধীন প্রকল্প। স্বচ্ছতা এবং নিরীক্ষার জন্য এর সোর্স কোড GitHub-এ উপলব্ধ।\n", "cs-CZ": "Mirror je zálohovací aplikace pro Android s více protokoly, která je podobná zrcadlovému typu.\nJe navržena tak, aby byla jednodušší a lehčí než synchronizační software, a umožňuje vám používat vlastní infrastrukturu namísto cloudových služeb třetích stran.\n\nVíce záloh můžete nakonfigurovat takto:\n\n- Vyberte zdrojový adresář\n- Vyberte cílový adresář\n- Vyberte možnosti filtrování (volitelné)\n- Nakonfigurujte automatické plánování (volitelné)\n\nMirror analyzuje obsah obou adresářů, porovná je a reprodukuje strukturu zdrojového adresáře (podadresáře a soubory) v cílovém adresáři s ohledem na vámi zvolené možnosti filtrování.\n\nZdroj a cíl se mohou nacházet na:\n\n- Interním nebo externím úložišti vašeho zařízení\n- Sdíleném úložišti NFS\n- Sdíleném úložišti SMB\n- Serveru FTP nebo FTPS\n- Serveru SFTP\n- Serveru WebDAV\n\n<b>BEZPEČÍ A OCHRANA SOUKROMÍ</b>\n\n- <b>Lokální úložiště:</b> Citlivé informace jsou šifrovány (AES-GCM + Android KeyStore) a uloženy lokálně ve vašem zařízení pomocí databáze Room.\n- <b>Žádné sledování:</b> Tato aplikace neobsahuje žádné analytické nástroje, trackery, reklamu ani proprietární sady pro vývoj softwaru (SDK).\n- <b>Open Source:</b> Mirror je nezávislý projekt. Zdrojový kód je k dispozici na GitHubu z důvodu transparentnosti a auditu.\n", "de-DE": "Mirror ist eine Multi-Protokoll-Backup-App für Android, die Spiegelung und Datensicherung ermöglicht.\nSie ist einfacher und ressourcenschonender als herkömmliche Synchronisierungssoftware und erlaubt die Nutzung Ihrer eigenen Infrastruktur anstelle von Cloud-Diensten von Drittanbietern.\n\nSie können mehrere Backups wie folgt konfigurieren:\n\n- Quellverzeichnis auswählen\n- Zielverzeichnis auswählen\n- Filteroptionen auswählen (optional)\n- Automatische Planung konfigurieren (optional)\n\nMirror analysiert den Inhalt beider Verzeichnisse, vergleicht ihn und reproduziert die Struktur des Quellverzeichnisses (Unterverzeichnisse und Dateien) im Zielverzeichnis unter Berücksichtigung der gewählten Filteroptionen.\n\nQuelle und Ziel können sich auf folgenden Speicherorten befinden:\n\n- Interner oder externer Speicher Ihres Geräts\n- NFS-Freigabe\n- SMB-Freigabe\n- FTP- oder FTPS-Server\n- SFTP-Server\n- WebDAV-Server\n\n<b>SICHERHEIT & DATENSCHUTZ</b>\n\n- <b>Lokaler Speicher:</b> Sensible Daten werden verschlüsselt (AES-GCM + Android KeyStore) und lokal auf Ihrem Gerät mithilfe einer Room-Datenbank gespeichert.\n- <b>Kein Tracking:</b> Diese Anwendung enthält keine Analysetools, Tracker, Werbung oder proprietäre Software Development Kits (SDKs).\n- <b>Open Source:</b> Mirror ist ein unabhängiges Projekt. Der Quellcode ist auf GitHub verfügbar, um Transparenz und Überprüfung zu gewährleisten.\n", "el-GR": "Το Mirror είναι μια εφαρμογή δημιουργίας αντιγράφων ασφαλείας πολλαπλών πρωτοκόλλων τύπου mirror για Android.\nΣχεδιασμένη για να είναι απλούστερη και ελαφρύτερη από το λογισμικό συγχρονισμού, σας επιτρέπει να χρησιμοποιείτε τη δική σας υποδομή αντί για υπηρεσίες cloud τρίτων.\n\nΜπορείτε να διαμορφώσετε πολλαπλά αντίγραφα ασφαλείας ως εξής:\n\n- Επιλέξτε έναν κατάλογο προέλευσης\n- Επιλέξτε έναν κατάλογο προορισμού\n- Επιλέξτε επιλογές φιλτραρίσματος (προαιρετικά)\n- Διαμορφώστε τον αυτόματο προγραμματισμό (προαιρετικά)\n\nΤο Mirror θα αναλύσει τα περιεχόμενα και των δύο καταλόγων, θα τα συγκρίνει και θα αναπαράγει τη δομή του καταλόγου προέλευσης (υποκαταλόγους και αρχεία) στον κατάλογο προορισμού, τηρώντας τις επιλογές φιλτραρίσματος που έχετε επιλέξει.\n\nΗ πηγή και ο προορισμός μπορούν να βρίσκονται σε:\n\n- Εσωτερικό ή εξωτερικό χώρο αποθήκευσης της συσκευής σας\n- Κοινόχρηστο στοιχείο NFS\n- Κοινόχρηστο στοιχείο SMB\n- Διακομιστή FTP ή FTPS\n- Διακομιστή SFTP\n- Διακομιστή WebDAV\n\n<b>ΑΣΦΑΛΕΙΑ & ΑΠΟΡΡΗΤΟ</b>\n\n- <b>Τοπική Αποθήκευση:</b> Οι ευαίσθητες πληροφορίες κρυπτογραφούνται (AES-GCM + Android KeyStore) και αποθηκεύονται τοπικά στη συσκευή σας χρησιμοποιώντας μια βάση δεδομένων Room.\n- <b>Χωρίς παρακολούθηση:</b> Αυτή η εφαρμογή δεν περιέχει αναλυτικά στοιχεία, ιχνηλάτες, διαφημίσεις ή ιδιόκτητα κιτ ανάπτυξης λογισμικού (SDK).\n- <b>Ανοιχτού Κώδικα:</b> Το Mirror είναι ένα ανεξάρτητο έργο. Ο πηγαίος κώδικας είναι διαθέσιμος στο GitHub για διαφάνεια και έλεγχο.\n", "en-US": "Mirror is a multi-protocol mirror-type backup application for Android.\nDesigned to be simpler and lighter than synchronization software, it allows you to use your own infrastructure rather than third-party cloud services.\n\nYou can configure multiple backups as follows:\n\n- Select a source directory\n- Select a destination directory\n- Choose filtering options (optional)\n- Configure automatic scheduling (optional)\n\nMirror will analyze the contents of both directories, compare them and reproduce the structure of the source directory (subdirectories and files) in the destination directory, respecting the filtering options you have chosen.\n\nThe source and destination can be located on:\n\n- Your device's internal or external storage\n- An NFS share\n- An SMB share\n- An FTP or FTPS server\n- An SFTP server\n- A WebDAV server\n\n<b>SECURITY & PRIVACY</b>\n\n- <b>Local Storage:</b> Sensitive information is encrypted (AES-GCM + Android KeyStore) and stored locally on your device using a Room database.\n- <b>No Tracking:</b> This application does not contain any analytics, trackers, advertising or proprietary software development kits (SDKs).\n- <b>Open Source:</b> Mirror is an independent project. The source code is available on GitHub for transparency and audit.\n", "es-ES": "Mirror es una aplicación de copia de seguridad tipo espejo multiprotocolo para Android.\nDiseñada para ser más sencilla y ligera que el software de sincronización, te permite usar tu propia infraestructura en lugar de servicios en la nube de terceros.\n\nPuedes configurar varias copias de seguridad de la siguiente manera:\n\n- Selecciona un directorio de origen\n- Selecciona un directorio de destino\n- Elige opciones de filtrado (opcional)\n- Configura la programación automática (opcional)\n\nMirror analizará el contenido de ambos directorios, los comparará y reproducirá la estructura del directorio de origen (subdirectorios y archivos) en el directorio de destino, respetando las opciones de filtrado que hayas elegido.\n\nEl origen y el destino pueden estar ubicados en:\n\n- El almacenamiento interno o externo de tu dispositivo\n- Un recurso compartido NFS\n- Un recurso compartido SMB\n- Un servidor FTP o FTPS\n- Un servidor SFTP\n- Un servidor WebDAV\n\n<b>SEGURIDAD Y PRIVACIDAD</b>\n\n- <b>Almacenamiento local:</b> La información confidencial se cifra (AES-GCM + Android KeyStore) y se almacena localmente en tu dispositivo mediante una base de datos Room.\n- <b>Sin seguimiento:</b> Esta aplicación no contiene análisis, rastreadores, publicidad ni kits de desarrollo de software (SDK) propietarios.\n- <b>Código abierto:</b> Mirror es un proyecto independiente. El código fuente está disponible en GitHub para mayor transparencia y auditoría.\n", "fr-FR": "Mirror est une application de sauvegarde multiprotocole de type miroir pour Android.\nConçue pour être plus simple et plus légère que les logiciels de synchronisation, elle vous permet d'utiliser votre propre infrastructure plutôt que des services cloud tiers.\n\nVous pouvez configurer plusieurs sauvegardes comme suit :\n\n- Sélectionnez un répertoire source\n- Sélectionnez un répertoire de destination\n- Choisissez les options de filtrage (facultatif)\n- Configurez la planification automatique (facultatif)\n\nMirror analysera le contenu des deux répertoires, les comparera et reproduira la structure du répertoire source (sous-répertoires et fichiers) dans le répertoire de destination, en respectant les options de filtrage choisies.\n\nLa source et la destination peuvent se trouver sur :\n\n- La mémoire interne ou externe de votre appareil\n- Un partage NFS\n- Un partage SMB\n- Un serveur FTP ou FTPS\n- Un serveur SFTP\n- Un serveur WebDAV\n\n<b>SÉCURITÉ ET CONFIDENTIALITÉ</b>\n\n- <b>Stockage local :</b> Les informations sensibles sont chiffrées (AES-GCM + Android KeyStore) et stockées localement sur votre appareil à l’aide d’une base de données Room.\n- <b>Aucun suivi :</b> Cette application ne contient aucun outil d'analyse, de suivi, de publicité ou de kit de développement logiciel (SDK) propriétaire.\n- <b>Logiciel libre :</b> Mirror est un projet indépendant. Son code source est disponible sur GitHub à des fins de transparence et d’audit.\n", "hi-IN": "Mirror एंड्रॉयड के लिए एक मल्टी-प्रोटोकॉल मिरर-टाइप बैकअप एप्लीकेशन है।\nसिंक्रोनाइज़ेशन सॉफ्टवेयर से ज़्यादा आसान और हल्का होने के लिए डिज़ाइन किया गया, यह आपको थर्ड-पार्टी क्लाउड सर्विस के बजाय अपना खुद का इंफ्रास्ट्रक्चर इस्तेमाल करने देता है।\n\nआप कई बैकअप इस तरह कॉन्फ़िगर कर सकते हैं:\n\n- एक सोर्स डायरेक्टरी चुनें\n- एक डेस्टिनेशन डायरेक्टरी चुनें\n- फ़िल्टरिंग ऑप्शन चुनें (ऑप्शनल)\n- ऑटोमैटिक शेड्यूलिंग कॉन्फ़िगर करें (ऑप्शनल)\n\nMirror दोनों डायरेक्टरी के कंटेंट को एनालाइज़ करेगा, उनकी तुलना करेगा और आपके चुने हुए फ़िल्टरिंग ऑप्शन का ध्यान रखते हुए, डेस्टिनेशन डायरेक्टरी में सोर्स डायरेक्टरी (सबडायरेक्टरी और फ़ाइलें) का स्ट्रक्चर फिर से बनाएगा।\n\nसोर्स और डेस्टिनेशन यहाँ मिल सकते हैं:\n\n- आपके डिवाइस का इंटरनल या एक्सटर्नल स्टोरेज\n- एक NFS शेयर\n- एक SMB शेयर\n- एक FTP या FTPS सर्वर\n- एक SFTP सर्वर\n- एक WebDAV सर्वर\n\n<b>सिक्योरिटी और प्राइवेसी</b>\n\n- <b>लोकल स्टोरेज:</b> सेंसिटिव जानकारी एन्क्रिप्टेड (AES-GCM + Android KeyStore) होती है और रूम डेटाबेस का इस्तेमाल करके आपके डिवाइस पर लोकल स्टोर की जाती है।\n- <b>कोई ट्रैकिंग नहीं:</b> इस एप्लिकेशन में कोई एनालिटिक्स, ट्रैकर, विज्ञापन या प्रोप्राइटरी सॉफ्टवेयर डेवलपमेंट किट (SDKs) नहीं हैं।\n- <b>ओपन सोर्स:</b> Mirror एक इंडिपेंडेंट प्रोजेक्ट है। ट्रांसपेरेंसी और ऑडिट के लिए सोर्स कोड GitHub पर उपलब्ध है।\n", "hu-HU": "A Mirror egy többprotokollos, tükrözött típusú biztonsági mentési alkalmazás Androidra.\nÚgy tervezték, hogy egyszerűbb és könnyebb legyen, mint a szinkronizációs szoftverek, lehetővé téve saját infrastruktúra használatát harmadik féltől származó felhőszolgáltatások helyett.\n\nTöbb biztonsági mentést is konfigurálhat az alábbiak szerint:\n\n- Válasszon ki egy forráskönyvtárat\n- Válasszon ki egy célkönyvtárat\n- Válasszon szűrési beállításokat (opcionális)\n- Konfigurálja az automatikus ütemezést (opcionális)\n\nA Mirror elemzi mindkét könyvtár tartalmát, összehasonlítja azokat, és reprodukálja a forráskönyvtár (alkönyvtárak és fájlok) szerkezetét a célkönyvtárban, tiszteletben tartva a kiválasztott szűrési beállításokat.\n\nA forrás és a cél a következő helyeken található:\n\n- Az eszköz belső vagy külső tárolója\n- NFS megosztás\n- SMB megosztás\n- FTP vagy FTPS szerver\n- SFTP szerver\n- WebDAV szerver\n\n<b>BIZTONSÁG ÉS ADATVÉDELEM</b>\n\n- <b>Helyi tárhely:</b> Az érzékeny információkat titkosítjuk (AES-GCM + Android KeyStore), és helyben tároljuk az eszközödön egy Room adatbázis segítségével.\n- <b>Nincs követés:</b> Ez az alkalmazás nem tartalmaz semmilyen analitikát, nyomkövetőt, hirdetést vagy saját fejlesztésű szoftverfejlesztő készletet (SDK).\n- <b>Nyílt forráskód:</b> A Mirror egy független projekt. A forráskód elérhető a GitHubon az átláthatóság és az auditálás érdekében.\n", "in-ID": "Mirror adalah aplikasi pencadangan tipe mirror multi-protokol untuk Android.\nDirancang agar lebih sederhana dan ringan daripada perangkat lunak sinkronisasi, aplikasi ini memungkinkan Anda menggunakan infrastruktur Anda sendiri daripada layanan cloud pihak ketiga.\n\nAnda dapat mengkonfigurasi beberapa pencadangan sebagai berikut:\n\n- Pilih direktori sumber\n- Pilih direktori tujuan\n- Pilih opsi pemfilteran (opsional)\n- Konfigurasi penjadwalan otomatis (opsional)\n\nMirror akan menganalisis isi kedua direktori, membandingkannya, dan mereproduksi struktur direktori sumber (subdirektori dan file) di direktori tujuan, dengan memperhatikan opsi pemfilteran yang telah Anda pilih.\n\nSumber dan tujuan dapat berada di:\n\n- Penyimpanan internal atau eksternal perangkat Anda\n- Berbagi NFS\n- Berbagi SMB\n- Server FTP atau FTPS\n- Server SFTP\n- Server WebDAV\n\n<b>KEAMANAN & PRIVASI</b>\n\n- <b>Penyimpanan Lokal:</b> Informasi sensitif dienkripsi (AES-GCM + Android KeyStore) dan disimpan secara lokal di perangkat Anda menggunakan basis data Room.\n- <b>Tanpa Pelacakan:</b> Aplikasi ini tidak mengandung analitik, pelacak, iklan, atau perangkat pengembangan perangkat lunak (SDK) milik perusahaan.\n- <b>Sumber Terbuka:</b> Mirror adalah proyek independen. Kode sumber tersedia di GitHub untuk transparansi dan audit.\n", "it-IT": "Mirror è un'applicazione di backup multiprotocollo di tipo mirror per Android.\nProgettata per essere più semplice e leggera dei software di sincronizzazione, consente di utilizzare la propria infrastruttura anziché servizi cloud di terze parti.\n\nÈ possibile configurare più backup come segue:\n\n- Selezionare una directory di origine\n- Selezionare una directory di destinazione\n- Scegliere le opzioni di filtro (facoltativo)\n- Configurare la pianificazione automatica (facoltativo)\n\nMirror analizzerà il contenuto di entrambe le directory, lo confronterà e riprodurrà la struttura della directory di origine (sottodirectory e file) nella directory di destinazione, rispettando le opzioni di filtro selezionate.\n\nL'origine e la destinazione possono trovarsi su:\n\n- Memoria interna o esterna del dispositivo\n- Una condivisione NFS\n- Una condivisione SMB\n- Un server FTP o FTPS\n- Un server SFTP\n- Un server WebDAV\n\n<b>SICUREZZA E PRIVACY</b>\n\n- <b>Archiviazione locale:</b> Le informazioni sensibili vengono crittografate (AES-GCM + Android KeyStore) e archiviate localmente sul dispositivo utilizzando un database Room.\n- <b>Nessun tracciamento:</b> Questa applicazione non contiene strumenti di analisi, tracker, pubblicità o kit di sviluppo software (SDK) proprietari.\n- <b>Open Source:</b> Mirror è un progetto indipendente. Il codice sorgente è disponibile su GitHub per garantire trasparenza e verifica.\n", "ja-JP": "Mirrorは、Android向けのマルチプロトコル対応ミラー型バックアップアプリケーションです。\n同期ソフトウェアよりもシンプルで軽量に設計されており、サードパーティのクラウドサービスではなく、独自のインフラストラクチャを利用できます。\n\n複数のバックアップは、以下の手順で設定できます。\n\n- ソースディレクトリを選択\n- 保存先ディレクトリを選択\n- フィルタリングオプションを選択（任意）\n- 自動スケジュールを設定（任意）\n\nMirrorは、両方のディレクトリの内容を分析し、比較して、選択したフィルタリングオプションを尊重しながら、ソースディレクトリの構造（サブディレクトリとファイル）を保存先ディレクトリに再現します。\n\nソースと保存先は、以下の場所に配置できます。\n\n- デバイスの内部ストレージまたは外部ストレージ\n- NFS共有\n- SMB共有\n- FTPまたはFTPSサーバー\n- SFTPサーバー\n- WebDAVサーバー\n\n<b>セキュリティとプライバシー</b>\n\n- <b>ローカルストレージ:</b> 機密情報は暗号化（AES-GCM + Android KeyStore）され、Roomデータベースを使用してデバイスにローカルに保存されます。\n- <b>トラッキングなし:</b> このアプリケーションには、分析ツール、トラッカー、広告、または独自のソフトウェア開発キット (SDK) は含まれていません。\n- <b>オープンソース:</b> Mirrorは独立したプロジェクトです。ソースコードは透明性と監査のためにGitHubで公開されています。\n", "ko-KR": "Mirror는 Android용 멀티 프로토콜 미러링 백업 애플리케이션입니다.\n동기화 소프트웨어보다 더 간단하고 가볍게 설계되었으며, 타사 클라우드 서비스 대신 자체 인프라를 사용할 수 있습니다.\n\n다음과 같이 여러 백업을 구성할 수 있습니다.\n\n- 소스 디렉터리 선택\n- 대상 디렉터리 선택\n- 필터링 옵션 선택(선택 사항)\n- 자동 예약 설정(선택 사항)\n\nMirror는 두 디렉터리의 내용을 분석하고 비교하여 선택한 필터링 옵션을 준수하면서 소스 디렉터리의 구조(하위 디렉터리 및 파일)를 대상 디렉터리에 복제합니다.\n\n소스 및 대상은 다음 위치에 있을 수 있습니다.\n\n- 기기의 내부 또는 외부 저장소\n- NFS 공유\n- SMB 공유\n- FTP 또는 FTPS 서버\n- SFTP 서버\n- WebDAV 서버\n\n<b>보안 및 개인정보 보호</b>\n\n- <b>로컬 저장소:</b> 민감한 정보는 Room 데이터베이스를 사용하여 암호화(AES-GCM + Android KeyStore)되고 기기에 로컬로 저장됩니다.\n- <b>추적 기능 없음:</b> 이 애플리케이션에는 분석 도구, 추적기, 광고 또는 독점 소프트웨어 개발 키트(SDK)가 포함되어 있지 않습니다.\n- <b>오픈 소스:</b> Mirror는 독립적인 프로젝트입니다. 투명성과 감사를 위해 소스 코드는 GitHub에서 확인할 수 있습니다.\n", "nl-NL": "Mirror is een back-upapplicatie voor Android die meerdere protocollen ondersteunt en back-ups via een mirror-systeem mogelijk maakt.\nHet is ontworpen om eenvoudiger en lichter te zijn dan synchronisatiesoftware en stelt u in staat uw eigen infrastructuur te gebruiken in plaats van cloudservices van derden.\n\nU kunt meerdere back-ups als volgt configureren:\n\n- Selecteer een bronmap\n- Selecteer een bestemmingsmap\n- Kies filteropties (optioneel)\n- Configureer automatische planning (optioneel)\n\nMirror analyseert de inhoud van beide mappen, vergelijkt deze en reproduceert de structuur van de bronmap (submappen en bestanden) in de bestemmingsmap, rekening houdend met de filteropties die u hebt gekozen.\n\nDe bron en bestemming kunnen zich bevinden op:\n\n- De interne of externe opslag van uw apparaat\n- Een NFS-share\n- Een SMB-share\n- Een FTP- of FTPS-server\n- Een SFTP-server\n- Een WebDAV-server\n\n<b>BEVEILIGING & PRIVACY</b>\n\n- <b>Lokale opslag:</b> Gevoelige informatie wordt versleuteld (AES-GCM + Android KeyStore) en lokaal op uw apparaat opgeslagen met behulp van een Room-database.\n- <b>Geen tracking:</b> Deze applicatie bevat geen analyses, trackers, eigen softwareontwikkelingskits (SDK's) of advertentiesoftware.\n- <b>Open source:</b> Mirror is een onafhankelijk project. De broncode is beschikbaar op GitHub voor transparantie en controle.\n", "pl-PL": "Mirror to wieloprotokołowa aplikacja do tworzenia kopii zapasowych typu mirror dla systemu Android.\nZaprojektowana z myślą o prostszym i lżejszym działaniu niż oprogramowanie do synchronizacji, pozwala na korzystanie z własnej infrastruktury zamiast zewnętrznych usług chmurowych.\n\nMożna skonfigurować wiele kopii zapasowych w następujący sposób:\n\n- Wybierz katalog źródłowy\n- Wybierz katalog docelowy\n- Wybierz opcje filtrowania (opcjonalnie)\n- Skonfiguruj automatyczne planowanie (opcjonalnie)\n\nMirror przeanalizuje zawartość obu katalogów, porówna je i odtworzy strukturę katalogu źródłowego (podkatalogi i pliki) w katalogu docelowym, uwzględniając wybrane opcje filtrowania.\n\nŹródło i miejsce docelowe mogą znajdować się w:\n\n- wewnętrznej lub zewnętrznej pamięci urządzenia\n- udziale NFS\n- udziale SMB\n- serwerze FTP lub FTPS\n- serwerze SFTP\n- serwerze WebDAV\n\n<b>BEZPIECZEŃSTWO I PRYWATNOŚĆ</b>\n\n- <b>Pamięć lokalna:</b> Informacje wrażliwe są szyfrowane (AES-GCM + Android KeyStore) i przechowywane lokalnie na Twoim urządzeniu za pomocą bazy danych Room.\n- <b>Brak śledzenia:</b> Ta aplikacja nie zawiera żadnych narzędzi analitycznych, modułów śledzących, reklam ani zastrzeżonych zestawów narzędzi programistycznych (SDK).\n- <b>Open Source:</b> Mirror to niezależny projekt. Kod źródłowy jest dostępny na GitHubie w celu zapewnienia przejrzystości i kontroli.\n", "pt-PT": "O Mirror é uma aplicação de backup multiprotocolo do tipo espelhamento para Android.\nConcebido para ser mais simples e leve do que o software de sincronização, permite utilizar a sua própria infraestrutura em vez de serviços de cloud de terceiros.\n\nPode configurar vários backups da seguinte forma:\n\n- Selecione um diretório de origem\n- Selecione um diretório de destino\n- Escolha as opções de filtragem (opcional)\n- Configure o agendamento automático (opcional)\n\nO Mirror irá analisar o conteúdo de ambos os diretórios, comparar e reproduzir a estrutura do diretório de origem (subdiretórios e ficheiros) no diretório de destino, respeitando as opções de filtragem escolhidas.\n\nA origem e o destino podem estar localizados em:\n\n- Armazenamento interno ou externo do seu dispositivo\n- Uma partilha NFS\n- Uma partilha SMB\n- Um servidor FTP ou FTPS\n- Um servidor SFTP\n- Um servidor WebDAV\n\n<b>SEGURANÇA E PRIVACIDADE</b>\n\n- <b>Armazenamento Local:</b> As informações sensíveis são encriptadas (AES-GCM + Android KeyStore) e armazenadas localmente no seu dispositivo utilizando uma base de dados Room.\n- <b>Sem rastreio:</b> Esta aplicação não contém qualquer tipo de análise, rastreador, publicidade ou kit de desenvolvimento de software (SDK) proprietário.\n- <b>Código Aberto:</b> O Mirror é um projeto independente. O código-fonte está disponível no GitHub para transparência e auditoria.\n", "ro-RO": "Mirror este o aplicație de backup de tip mirror multi-protocol pentru Android.\nConcepută pentru a fi mai simplă și mai ușoară decât software-ul de sincronizare, aceasta vă permite să utilizați propria infrastructură în loc de servicii cloud terțe.\n\nPuteți configura mai multe backup-uri după cum urmează:\n\n- Selectați un director sursă\n- Selectați un director destinație\n- Alegeți opțiunile de filtrare (opțional)\n- Configurați programarea automată (opțional)\n\nMirror va analiza conținutul ambelor directoare, le va compara și va reproduce structura directorului sursă (subdirectoare și fișiere) în directorul destinație, respectând opțiunile de filtrare alese.\n\nSursa și destinația pot fi localizate pe:\n\n- Stocarea internă sau externă a dispozitivului dvs.\n- O partajare NFS\n- O partajare SMB\n- Un server FTP sau FTPS\n- Un server SFTP\n- Un server WebDAV\n\n<b>SECURITATE ȘI CONFIDENȚIALITATE</b>\n\n- <b>Stocare locală:</b> Informațiile sensibile sunt criptate (AES-GCM + Android KeyStore) și stocate local pe dispozitivul dvs. folosind o bază de date Room.\n- <b>Fără urmărire:</b> Această aplicație nu conține analize, instrumente de urmărire, reclame sau kituri de dezvoltare software (SDK) proprietare.\n- <b>Open Source:</b> Mirror este un proiect independent. Codul sursă este disponibil pe GitHub pentru transparență și audit.\n", "ru-RU": "Mirror — это многопротокольное приложение для резервного копирования типа «зеркало» для Android.\nРазработанное для большей простоты и легкости по сравнению с программами синхронизации, оно позволяет использовать собственную инфраструктуру, а не сторонние облачные сервисы.\n\nВы можете настроить несколько резервных копий следующим образом:\n\n- Выберите исходный каталог\n- Выберите целевой каталог\n- Выберите параметры фильтрации (необязательно)\n- Настройте автоматическое планирование (необязательно)\n\nMirror проанализирует содержимое обоих каталогов, сравнит их и воспроизведет структуру исходного каталога (подкаталоги и файлы) в целевом каталоге, учитывая выбранные вами параметры фильтрации.\n\nИсточник и целевое местоположение могут находиться:\n\n- На внутренней или внешней памяти вашего устройства\n- В общем ресурсе NFS\n- В общем ресурсе SMB\n- На FTP или FTPS сервере\n- На SFTP-сервере\n- На WebDAV-сервере\n\n<b>БЕЗОПАСНОСТЬ И КОНФИДЕНЦИАЛЬНОСТЬ</b>\n\n- <b>Локальное хранилище:</b> Конфиденциальная информация шифруется (AES-GCM + Android KeyStore) и хранится локально на вашем устройстве с использованием базы данных Room.\n- <b>Без отслеживания:</b> Данное приложение не содержит аналитических инструментов, трекеров, рекламы или проприетарных комплектов разработки программного обеспечения (SDK).\n- <b>Открытый исходный код:</b> Mirror — независимый проект. Исходный код доступен на GitHub для обеспечения прозрачности и аудита.\n", "sv-SE": "Mirror är en spegelbaserad säkerhetskopieringsapplikation för Android med flera protokoll.\nDen är utformad för att vara enklare och lättare än synkroniseringsprogramvara och låter dig använda din egen infrastruktur istället för tredjepartsmolntjänster.\n\nDu kan konfigurera flera säkerhetskopior enligt följande:\n\n- Välj en källkatalog\n- Välj en destinationskatalog\n- Välj filtreringsalternativ (valfritt)\n- Konfigurera automatisk schemaläggning (valfritt)\n\nMirror analyserar innehållet i båda katalogerna, jämför dem och återger strukturen för källkatalogen (underkataloger och filer) i destinationskatalogen, med hänsyn till de filtreringsalternativ du har valt.\n\nKällan och destinationen kan finnas på:\n\n- Din enhets interna eller externa lagring\n- En NFS-resurs\n- En SMB-resurs\n- En FTP- eller FTPS-server\n- En SFTP-server\n- En WebDAV-server\n\n<b>SÄKERHET OCH INTEGRITET</b>\n\n- <b>Lokal lagring:</b> Känslig information krypteras (AES-GCM + Android KeyStore) och lagras lokalt på din enhet med hjälp av en Room-databas.\n- <b>Ingen spårning:</b> Den här applikationen innehåller ingen analys, spårning, reklam eller proprietära programvaruutvecklingskit (SDK).\n- <b>Öppen källkod:</b> Mirror är ett oberoende projekt. Källkoden finns tillgänglig på GitHub för transparens och granskning.\n", "tr-TR": "Mirror, Android için çok protokollü ayna tipi yedekleme uygulamasıdır.\nSenkronizasyon yazılımlarından daha basit ve hafif olacak şekilde tasarlanmıştır ve üçüncü taraf bulut hizmetleri yerine kendi altyapınızı kullanmanıza olanak tanır.\n\nBirden fazla yedeklemeyi şu şekilde yapılandırabilirsiniz:\n\n- Kaynak dizini seçin\n- Hedef dizini seçin\n- Filtreleme seçeneklerini seçin (isteğe bağlı)\n- Otomatik zamanlamayı yapılandırın (isteğe bağlı)\n\nMirror, her iki dizinin içeriğini analiz edecek, karşılaştıracak ve seçtiğiniz filtreleme seçeneklerine uyarak kaynak dizinin yapısını (alt dizinler ve dosyalar) hedef dizinde yeniden oluşturacaktır.\n\nKaynak ve hedef şu konumlarda bulunabilir:\n\n- Cihazınızın dahili veya harici depolama alanı\n- Bir NFS paylaşımı\n- Bir SMB paylaşımı\n- Bir FTP veya FTPS sunucusu\n- Bir SFTP sunucusu\n- Bir WebDAV sunucusu\n\n<b>GÜVENLİK VE GİZLİLİK</b>\n\n- <b>Yerel Depolama:</b> Hassas bilgiler şifrelenir (AES-GCM + Android KeyStore) ve Room veritabanı kullanılarak cihazınızda yerel olarak saklanır.\n- <b>İzleme Yok:</b> Bu uygulama herhangi bir analiz aracı, izleyici, reklam veya tescilli yazılım geliştirme kiti (SDK) içermez.\n- <b>Açık Kaynak:</b> Mirror bağımsız bir projedir. Şeffaflık ve denetim için kaynak kodu GitHub'da mevcuttur.\n", "uk-UA": "Mirror — це багатопротокольна програма для резервного копіювання типу дзеркала для Android.\nРозроблена як простіша та легша, ніж програмне забезпечення для синхронізації, вона дозволяє використовувати власну інфраструктуру, а не сторонні хмарні сервіси.\n\nВи можете налаштувати кілька резервних копій наступним чином:\n\n- Виберіть вихідний каталог\n- Виберіть цільовий каталог\n- Виберіть параметри фільтрації (необов'язково)\n- Налаштуйте автоматичне планування (необов'язково)\n\nMirror проаналізує вміст обох каталогів, порівняє їх та відтворить структуру вихідного каталогу (підкаталоги та файли) у цільовому каталозі, дотримуючись вибраних вами параметрів фільтрації.\n\nДжерело та місце призначення можуть знаходитися на:\n\n- Внутрішньому або зовнішньому сховищі вашого пристрою\n- Спільному ресурсі NFS\n- Спільному ресурсі SMB\n- Сервері FTP або FTPS\n- Сервері SFTP\n- Сервері WebDAV\n\n<b>БЕЗПЕКА ТА КОНФІДЕНЦІЙНІСТЬ</b>\n\n- <b>Локальна пам'ять:</b> Конфіденційна інформація шифрується (AES-GCM + Android KeyStore) та зберігається локально на вашому пристрої за допомогою бази даних Room.\n- <b>Без відстеження:</b> Цей застосунок не містить жодної аналітики, трекерів, реклами чи власних комплектів розробки програмного забезпечення (SDK).\n- <b>Відкритий код:</b> Mirror — це незалежний проект. Вихідний код доступний на GitHub для прозорості та аудиту.\n", "zh-CN": "Mirror 是一款适用于 Android 的多协议镜像备份应用。\n它比同步软件更简洁轻便，允许您使用自己的基础设施，而非第三方云服务。\n\n您可以按如下方式配置多个备份：\n\n- 选择源目录\n- 选择目标目录\n- 选择过滤选项（可选）\n- 配置自动计划任务（可选）\n\nMirror 将分析源目录和目标目录的内容，进行比较，并根据您选择的过滤选项，将源目录的结构（子目录和文件）复制到目标目录中。\n\n源目录和目标目录可以位于：\n\n- 设备的内部或外部存储\n- NFS 共享\n- SMB 共享\n- FTP 或 FTPS 服务器\n- SFTP 服务器\n- WebDAV 服务器\n\n<b>安全与隐私</b>\n\n- <b>本地存储：</b>敏感信息使用 Room 数据库进行加密（AES-GCM + Android KeyStore），并存储在您的设备本地。\n- <b>无追踪：</b>本应用程序不包含任何分析、追踪器、广告或专有软件开发工具包（SDK）。\n- <b>开源：</b>Mirror 是一个独立项目。源代码已在 GitHub 上公开，以确保透明度和审计。\n"}, "donate": ["https://buymeacoffee.com/hellpc"], "icon": {"en-US": {"name": "/fr.hellpc.mirror/en-US/icon_l6Eb9o6H5fdvz8uHvN-FQthOTXmCrVncJmkh6bczVGE=.png", "sha256": "97a11bf68e87e5f76fcfcb87bcdf8542d84e4d7982ad59dc266921e9b7335461", "size": 53293}}, "preferredSigner": "c546a65633f68f173b37b1889a5d2cd1230985228652cef824e4000c6d404f5c"}, "versions": {"7187c07ccea3d08e272f63acd5443db82d0df39052d2109399ae9f0cb51603eb": {"added": 1786866775484, "file": {"name": "/fr.hellpc.mirror_18.apk", "sha256": "7187c07ccea3d08e272f63acd5443db82d0df39052d2109399ae9f0cb51603eb", "size": 4799846, "ipfsCIDv1": "bafybeif6o537hcjcdap55t2up52l5rdodzjljwc76wvervjmgk2hihx7by"}, "src": {"name": "/fr.hellpc.mirror_18_src.tar.gz", "sha256": "b8b7f9d8ddf6387f3d573fb0e11b8b70f00041ba5f5dcedbfd9110b0eb329a29", "size": 1970290}, "manifest": {"versionName": "26.07.12", "versionCode": 18, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["c546a65633f68f173b37b1889a5d2cd1230985228652cef824e4000c6d404f5c"]}, "usesPermission": [{"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.CHANGE_WIFI_STATE"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "fr.hellpc.mirror.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Libraries update\n- Bug fix for the blacklist filter\n"}}}}, "fr.odrevet.bide_et_musique": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"fb3b18576e2f617b369e949b2d5897315f0dad77b084a2629578a765ee1eb433": null, "75646fb9695ef595eabc67b8353b6c92e577819cc463f3e6b0e8b70dfa959619": {"added": 1786866775484, "file": {"name": "/fr.odrevet.bide_et_musique_62.apk", "sha256": "75646fb9695ef595eabc67b8353b6c92e577819cc463f3e6b0e8b70dfa959619", "size": 61413424, "ipfsCIDv1": "bafybeicg73qemlyttrghrbgdk7vgwpq7fuewahjueapoqacdul5pvchf7e"}, "src": {"name": "/fr.odrevet.bide_et_musique_62_src.tar.gz", "sha256": "a01f52327990e20a34b2b98c71bc8667b46c2c939430d46484d8d4ccee1d1531", "size": 46949902}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86_64"], "versionName": "4.2.0", "versionCode": 62, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["26ed8d85256ef66d19e18546a72d5b29671e23f0694d9fc608cfa5c126f4a26a"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "fr.odrevet.bide_et_musique.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "granularvolume.com": {"metadata": {"lastUpdated": 1786749285772, "featureGraphic": {"en-US": {"name": "/granularvolume.com/en-US/featureGraphic_fmsJWV3hJgd3rdFKpGU5vB9twqn3oz31jPESo7hgzW8=.png", "sha256": "7e6b09595de1260777add14aa46539bc1f6dc2a9f7a33df58cf112a3b860cd6f", "size": 115104}}, "screenshots": {"phone": {"en-US": [{"name": "/granularvolume.com/en-US/phoneScreenshots/1.png", "sha256": "9f5d0dc6d79f74cd090065053f2feac0537320a985917ca5ebd0b850e8954d1b", "size": 203243}, {"name": "/granularvolume.com/en-US/phoneScreenshots/2.png", "sha256": "bdb11564aaa93a20282021efece9fca1d1554d7ad7ee0fee88413eaf63495779", "size": 205982}, {"name": "/granularvolume.com/en-US/phoneScreenshots/3.png", "sha256": "8008452e9d5bf32c775e7523c03835d69348e817db9c0a9a4ef3d27c21fdd077", "size": 208085}, {"name": "/granularvolume.com/en-US/phoneScreenshots/4.png", "sha256": "e68f12b3e26f88697fb4b17b872f8fba8458431d4ef2d544e5efadf70827e4e6", "size": 178083}, {"name": "/granularvolume.com/en-US/phoneScreenshots/5.png", "sha256": "3ba4bbd6d3ce882a15f06587c53dfabac92a444492c8f152247d92b56ea7f6c1", "size": 184899}, {"name": "/granularvolume.com/en-US/phoneScreenshots/6.png", "sha256": "6739955c0b22dec2017993424956fe7ee7e81758b9e67e4c398c370ba138724a", "size": 189390}, {"name": "/granularvolume.com/en-US/phoneScreenshots/7.png", "sha256": "3354b8eaba11e493ef7e93bda2626c304761c2cdbb852bfacdf06ba2e594efc5", "size": 210999}, {"name": "/granularvolume.com/en-US/phoneScreenshots/8.png", "sha256": "cad580d8a6d884d141727c66cde20f09de05b005e605341f52aa23a34f97b3be", "size": 200941}]}}, "name": {"de-DE": "Volume Control: Quiet Dial", "es-ES": "Volume Control: Quiet Dial", "fr-FR": "Volume Control: Quiet Dial"}, "summary": {"de-DE": "Niedrigste Stufe noch zu laut? Geht unters Minimum. Handy & Tablet, ohne Root.", "es-ES": "¿El mínimo sigue siendo muy alto? Baja por debajo. Móvil y tablet, sin root.", "fr-FR": "Minimum encore trop fort ? Descendez en dessous. Mobile, tablette, sans root."}, "description": {"de-DE": "Ist die niedrigste Lautstärkestufe auf Ihrem Android-Gerät immer noch zu laut, bei Medien, Anrufen oder Benachrichtigungen? Ihr Handy oder Tablet stoppt am Hardware-Minimum. Granular Volume geht darunter.\n\nEin kleiner schwebender Lautstärkeregler erscheint über jeder App. Sieben Stufen, von unverändert bis 30 dB unter Ihrem Hardware-Minimum. Ein Tipp zum Wechseln. Frei verschiebbar, an den Rand anlegbar, mit einem Tipp geschlossen. Die Position wird gespeichert.\n\nDies ist ein Komfort-Werkzeug, kein Gehörschutz. Die tatsächliche Lautstärke hängt von Gerät und Kopfhörern ab, bitte mit Bedacht verwenden.\n\nLEISER ALS IHR GERÄT ERLAUBT\nDie meisten Lautstärke-Apps machen lauter. Granular Volume ist für das andere Ende gebaut: Es senkt die Lautstärke unter die niedrigste Stufe, die die Hardware erlaubt, über Androids eigene Audio-Engine, auf Handys und Tablets. Ohne Root. Keine Übernahme der Lautstärketasten, kein Ersatz des System-Panels. Keine Werbung, kein Konto, überhaupt keine Internet-Berechtigung.\n\nAUCH FÜR TABLETS\nTablets haben oft ein noch höheres Minimum als Handys, besonders über die eingebauten Lautsprecher. Granular Volume funktioniert auf Tablets genauso wie auf Handys.\n\nSCHNELLEINSTELLUNGS-KACHEL\nHerunterwischen, einmal tippen: Overlay ein- oder ausschalten, ohne die App zu öffnen.\n\nFÜR LEISE MOMENTE GEMACHT\n- Anrufe (Telefon, WhatsApp, Videoanrufe), bei denen Hörer oder Lautsprecher zu laut bleiben\n- Empfindliche In-Ear-Kopfhörer, bei denen schon Stufe 1 zu laut ist\n- Weißes Rauschen oder Schlaflieder für ein schlafendes Baby, kaum hörbar\n- Hören spät in der Nacht neben einem schlafenden Partner\n- Bibliotheken, ruhige Räume, Meditation\n\nFrei und quelloffen (GPL-3.0), 2,7 MB, keine Werbung, kein Tracking, keine Internet-Berechtigung.\n", "en-US": "Is your Android volume still too loud even at the lowest setting, on calls, media, or notifications? Your phone or tablet stops at its hardware minimum. Granular Volume goes below it.\n\nA small floating control appears above any app, with your whole volume range on one slider: normal system volume above your device's minimum line, and a quiet zone below it, seven steps down to a full 30 dB under the hardware minimum. Drag it anywhere, tuck it to an edge, close it when done. Your position is saved.\n\nThis is a convenience utility, not hearing protection equipment. Actual loudness depends on your device and headphones, so use good judgment with volume changes.\n\nLOWER THAN YOUR PHONE OR TABLET ALLOWS\nMost volume apps are built to go louder. Granular Volume is built for the other end: it reduces volume below the lowest step your device's hardware allows, using Android's audio engine, on phones and tablets alike. No root required. No system volume panel replacement. No ads, no account, no internet permission at all. The quiet zone is the heart of the app, and the same slider covers your normal range too.\n\nWHEN YOUR VOLUME BUTTONS DO NOT WORK\nVolume keys wear out, stiffen, or get held down by a case. Above the line marking your device's minimum, the dial sets normal system volume, so it stands in for the buttons: drag up for louder, drag down for quieter, in even 5 dB steps built from your own device's volume curve. Below the line it keeps going, quieter than the phone allows. A mute control silences media without touching your alarms.\n\nBUILT FOR TABLETS TOO\nTablets often have an even higher minimum volume than phones. Granular Volume works the same way on Android tablets, so tablet users get the same quiet floor.\n\nA FLOATING VOLUME CONTROL, ALWAYS IN REACH\nThe control lives above whatever you are doing. Open any app, start any audio, and it is there when you need it. Drag it anywhere, or tuck it to an edge between uses. One tap closes it. Your last position is remembered next time.\n\nQUICK SETTINGS TILE\nSwipe down, tap once. Add Granular Volume to your Quick Settings panel and toggle the overlay on or off without ever opening the app. No shortcuts to set up, no widgets to place.\n\nMADE FOR QUIET MOMENTS\n- Phone and app calls (regular calls, WhatsApp, video calls) where the earpiece or speaker volume stays too loud no matter what\n- Sensitive IEMs and high-sensitivity headphones, where even step 1 is too loud\n- Tablet speakers and headphones, where the minimum step is often even louder than on phones\n- White noise or lullabies for a sleeping baby, kept barely audible\n- Late-night listening next to a sleeping partner\n- Quiet rooms, libraries, open offices, and meditation\n- ASMR and relaxation audio at a comfortable level\n- Hearing aids and amplified devices where minimum system volume is too strong\n\nDESIGNED TO STAY OUT OF THE WAY\nGranular Volume does not take over your volume keys: they keep working, and inside the quiet zone the dial folds their presses into its own finer scale. It does not replace your system volume panel and it does not add an equalizer suite you did not ask for. It sits quietly on top as an overlay and changes one thing: the level, from normal volume all the way below your hardware minimum.\n\nFREE, PRIVATE, OPEN SOURCE\nNo ads. No tracking. No internet permission, so the app cannot connect to anything. No account, no sign in, no analytics. Open source under the GPL-3.0 license.\n\nPERMISSIONS, EXPLAINED\n- Display over other apps: required to show the floating volume control above your screen\n- Modify audio settings: required to apply the volume attenuation\n- Run a foreground service: keeps the control reliable while you listen\n- Start on boot: restores the control after a restart if it was on before shutdown, so it is ready when you need it\n\nWorks on Android phones and tablets alike. If your minimum was always too loud, this is the volume you were missing.\n", "es-ES": "¿El volumen de tu Android sigue siendo demasiado alto incluso en el nivel más bajo, en medios, llamadas o notificaciones? Tu móvil o tablet se detiene en el mínimo del hardware. Granular Volume baja por debajo.\n\nUn pequeño control flotante aparece sobre cualquier aplicación. Siete pasos, desde sin cambio hasta 30 dB por debajo del mínimo de tu hardware. Un toque para cambiar. Arrástralo donde quieras, pégalo a un borde, ciérralo con un toque. La posición se guarda.\n\nEs una utilidad de comodidad, no un equipo de protección auditiva. El volumen real depende de tu dispositivo y auriculares; usa el sentido común.\n\nMÁS BAJO DE LO QUE TU DISPOSITIVO PERMITE\nLa mayoría de las apps de volumen están hechas para subir. Granular Volume está hecha para el otro extremo: reduce el volumen por debajo del paso más bajo que permite el hardware, usando el propio motor de audio de Android, en móviles y tablets. Sin root. No toma los botones de volumen ni sustituye el panel del sistema. Sin anuncios, sin cuenta, sin permiso de internet en absoluto.\n\nTAMBIÉN PARA TABLETS\nLas tablets suelen tener un mínimo aún más alto que los móviles, sobre todo por sus altavoces. Granular Volume funciona igual en tablets que en móviles.\n\nMOSAICO DE AJUSTES RÁPIDOS\nDesliza hacia abajo, un toque: activa o desactiva el control sin abrir la app.\n\nPARA MOMENTOS DE SILENCIO\n- Llamadas (teléfono, WhatsApp, videollamadas) donde el auricular o el altavoz siguen demasiado altos\n- Auriculares in-ear sensibles, donde incluso el paso 1 es demasiado\n- Ruido blanco o nanas para un bebé dormido, apenas audible\n- Escuchar de noche junto a alguien que duerme\n- Bibliotecas, salas silenciosas, meditación\n\nLibre y de código abierto (GPL-3.0), 2,7 MB, sin anuncios, sin rastreo, sin permiso de internet.\n", "fr-FR": "Le volume de votre Android reste trop fort même au niveau le plus bas, pour les médias, les appels ou les notifications ? Votre téléphone ou votre tablette s'arrête au minimum matériel. Granular Volume descend en dessous.\n\nUne petite molette flottante apparaît au-dessus de n'importe quelle application. Sept paliers, de zéro à 30 dB sous votre minimum matériel. Un appui pour changer. Déplacez-la librement, rangez-la sur un bord, fermez-la d'un appui. La position est mémorisée.\n\nC'est un utilitaire de confort, pas un équipement de protection auditive. Le volume réel dépend de votre appareil et de vos écouteurs ; restez prudent.\n\nPLUS BAS QUE CE QUE VOTRE APPAREIL PERMET\nLa plupart des applications de volume servent à amplifier. Granular Volume est construite pour l'autre extrémité : elle réduit le volume sous le palier le plus bas autorisé par le matériel, via le moteur audio d'Android, sur téléphone comme sur tablette. Sans root. Sans prendre le contrôle des boutons de volume, sans remplacer le panneau système. Sans publicité, sans compte, sans aucune permission internet.\n\nAUSSI POUR LES TABLETTES\nLes tablettes ont souvent un minimum encore plus élevé que les téléphones, surtout sur leurs haut-parleurs. Granular Volume y fonctionne exactement de la même façon.\n\nTUILE DE RÉGLAGES RAPIDES\nBalayez vers le bas, un appui : activez ou désactivez la molette sans ouvrir l'application.\n\nPOUR LES MOMENTS DE CALME\n- Appels (téléphone, WhatsApp, visio) où l'écouteur ou le haut-parleur reste trop fort\n- Écouteurs intra sensibles, où même le palier 1 est trop fort\n- Bruit blanc ou berceuses pour un bébé qui dort, à peine audibles\n- Écoute nocturne à côté d'une personne qui dort\n- Bibliothèques, pièces calmes, méditation\n\nLibre et open source (GPL-3.0), 2,7 Mo, sans publicité, sans pistage, sans permission internet.\n"}}, "versions": {"9a89eef35d3949ee3b294f81fb2356c5ea07fc1e0ab09737b1986743e55140ac": null, "aea3383c91e72f9cf68eb4fbf58dd78b32aa18df8956f18d25b8ecd74bea00a5": {"added": 1786749285772, "file": {"name": "/granularvolume.com_15.apk", "sha256": "aea3383c91e72f9cf68eb4fbf58dd78b32aa18df8956f18d25b8ecd74bea00a5", "size": 2724168, "ipfsCIDv1": "bafybeif5zigkmkmj2pl2f4wh6ajrvddodypcvl6mu57jgrliwcaaziiule"}, "src": {"name": "/granularvolume.com_15_src.tar.gz", "sha256": "76369aafbd787222676adffbb3701e7957411fb6fde662b4242f7f8cd4a3d622", "size": 8936681}, "manifest": {"versionName": "1.4.3", "versionCode": 15, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["01cc6025ffce326c32324a3e441355dbdc3934abd2d656bed1b2ec62ff0cced8"]}, "usesPermission": [{"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "granularvolume.com.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "During a phone or VoIP call, the upper zone now controls the call volume, exactly like the physical volume keys do in a call, and returns to media volume when the call ends. The quiet zone keeps working in calls as before, reaching below the device minimum. Outside calls nothing changes.\n"}}}}, "invalid.lena.scrcpy": {"metadata": {"added": 1786749285772, "categories": ["Connectivity", "System"], "issueTracker": "https://gitlab.com/0xlena/scrcpy-android/-/issues", "lastUpdated": 1786749285772, "license": "Apache-2.0", "sourceCode": "https://gitlab.com/0xlena/scrcpy-android", "screenshots": {"phone": {"en-US": [{"name": "/invalid.lena.scrcpy/en-US/phoneScreenshots/1.png", "sha256": "bebd613788d7a5f565abbd9f40c1341da03ee3aaaf87dd5447a57ec16e3ad717", "size": 116488}, {"name": "/invalid.lena.scrcpy/en-US/phoneScreenshots/2.png", "sha256": "bf0818a5babe0a3c03ce5c0b9e743321ca003f2062533c9b7315336aa2c59fdc", "size": 148636}]}}, "authorName": "Lena", "name": {"en-US": "scrcpy"}, "summary": {"en-US": "Mirror a second Android device over wireless ADB. No root required."}, "description": {"en-US": "This app mirrors a second Android device on your phone or tablet over Wireless\nADB, the same way the desktop scrcpy tool does.\n\nThe device running this app is the source; the target is any Android 11+ device\nwith Wireless Debugging enabled. Video, audio, touch, key input, and clipboard\nare forwarded between them. No root is required on either side.\n\nFeatures:\n\n* Wireless pairing and connection using the target's Wireless Debugging code\n* Live video mirroring with selectable codec (H.264, H.265, or AV1)\n* Audio forwarding with selectable codec (raw or Opus)\n* Multi-touch, soft keys, hardware Back, and two-way clipboard sync\n* Adjustable max size, bit rate, and frame rate\n* Screen recording of the mirrored session\n* Automatic reconnection when the link drops\n\nThe app pushes the scrcpy server, built from Genymobile's scrcpy sources, to the\ntarget device and speaks the scrcpy protocol directly. It is written in plain\nJava with no proprietary dependencies.\n"}, "icon": {"en-US": {"name": "/invalid.lena.scrcpy/en-US/icon_8CCv1yFjr7yD0QOpgFwDK6dTqKSXQr_fzHhZFKNSOiM=.png", "sha256": "f020afd72163afbc83d103a9805c032ba753a8a49742bfdfcc785914a3523a23", "size": 15777}}, "preferredSigner": "94785b30edfaa40fb8d712b7211a39919977284f7cb9a43f8069d7f5f4213576"}, "versions": {"b0946c24f6312c5396f0775b999a7e01c1a456d8ed0b0d64c5b9572bc584f95b": {"added": 1786749285772, "file": {"name": "/invalid.lena.scrcpy_4.apk", "sha256": "b0946c24f6312c5396f0775b999a7e01c1a456d8ed0b0d64c5b9572bc584f95b", "size": 5298393, "ipfsCIDv1": "bafybeiaqjbu2tzcnascniamyoskzehdh7gddjk7zrenh3n7fcanzkkq77y"}, "src": {"name": "/invalid.lena.scrcpy_4_src.tar.gz", "sha256": "d0baf875ffa713c55498dbe18d6e096c23c0740417bf455c781a967e1a8937c0", "size": 854236}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.4", "versionCode": 4, "usesSdk": {"minSdkVersion": 31, "targetSdkVersion": 35}, "signer": {"sha256": ["94785b30edfaa40fb8d712b7211a39919977284f7cb9a43f8069d7f5f4213576"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_PHONE_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}]}, "whatsNew": {"en-US": "The pairing form now takes the device address as one \"ip:port\" field, copied\nstraight off the target's Wireless debugging screen, plus the pairing port\nand code from the pairing dialog.\n\nFixed the main and settings screens drawing under the status and navigation\nbars on Android 15.\n"}}}}, "io.ente.locker.fdroid": {"metadata": {"lastUpdated": 1786749285772, "donate": ["https://github.com/sponsors/ente"]}, "versions": {"7fd45652776524db30a545116db9f1c2c2cc6013f99df9a83b8c5b0a72c6760c": null, "cb0f8888248c58a508a1158a71ecb1d570c3d5b6d6adb31d92647898d1bfc090": {"added": 1786749285772, "file": {"name": "/io.ente.locker.fdroid_235.apk", "sha256": "cb0f8888248c58a508a1158a71ecb1d570c3d5b6d6adb31d92647898d1bfc090", "size": 139516092, "ipfsCIDv1": "bafybeicnrrj7netepey4rbz5b6tucj6tn6fuqheymmm6offsnpikwcg64a"}, "src": {"name": "/io.ente.locker.fdroid_235_src.tar.gz", "sha256": "fd61418daaea364c092cccb8d8e2c4ed90f47b4820e00a41100a51705f4453a7", "size": 946669668}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86_64"], "versionName": "1.0.8", "versionCode": 235, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["33faee93aa3344c6a8ed4703e8c6d1fa99219809f68c7dfa3e42137513812c96"]}, "usesPermission": [{"name": "android.permission.CAMERA"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "io.ente.locker.fdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "io.ente.photos.fdroid": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"4c6b669168b1f3938926786bcc1adbf92f270467a95d99ed8ada523d6a836440": null, "5f56e3d718dfe896ee871df2b3f0a81de9215ab049fdedf9494ca1b31a00da10": {"added": 1786749285772, "file": {"name": "/io.ente.photos.fdroid_2235.apk", "sha256": "5f56e3d718dfe896ee871df2b3f0a81de9215ab049fdedf9494ca1b31a00da10", "size": 301237008, "ipfsCIDv1": "bafybeibjm2ejg4bfoyv4zlnktn27jkyya4p6wuftcrlmm3qyhkbv2lx2nq"}, "src": {"name": "/io.ente.photos.fdroid_2235_src.tar.gz", "sha256": "a792a950f4874ef3abd02435d9d86154db6c315310da0ba72c9043ef77dc6b65", "size": 943427723}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "1.3.61", "versionCode": 2235, "features": [{"name": "android.hardware.camera.any"}], "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["5464a49348be568062246db520f49094d18e72aa6b0854dde3fa678445f28856"]}, "usesPermission": [{"name": "android.permission.CAMERA"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.MANAGE_MEDIA"}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 29}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "io.ente.photos.fdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Downloads assets (like ML models, release info and FAQs) from Ente's CDN"}}}}}, "io.github.adithya_jayan.myrepertoirapp.fdroid": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"dbd845567138c1b9fbed196bd0be8e0d9328c91761c8920c8ca1d8536dc29ebd": null, "aeecce0180348c9ea6303aed96715286a153bb9d9b080d44cff572a38404a4ec": {"added": 1786749285772, "file": {"name": "/io.github.adithya_jayan.myrepertoirapp.fdroid_443.apk", "sha256": "aeecce0180348c9ea6303aed96715286a153bb9d9b080d44cff572a38404a4ec", "size": 55709864, "ipfsCIDv1": "bafybeifrqezfk7c3i7l2yrs7ejgwxissoenrpeh4tn6zl7xs4kzcdsu2su"}, "src": {"name": "/io.github.adithya_jayan.myrepertoirapp.fdroid_443_src.tar.gz", "sha256": "f168737599b5b0e450725b5b8025aa1d15f3c7b1e71bf153b0bdf556b2a375b8", "size": 161173682}, "manifest": {"nativecode": ["x86_64"], "versionName": "5.2.0", "versionCode": 443, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["38406b2f0c2d61b1b3bb47a0f32d19ec3e9f48930803cf6017388e4961ec6202"]}, "usesPermission": [{"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "io.github.adithya_jayan.myrepertoirapp.fdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "io.github.benji377.timety": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"b04db1f1b74c7a97da7cfed4f6cb928d1879049e1faae764267856137e78f9a2": null, "f3238a061c9dd152ce83eaa2ecc05ddd20749dcff3a9efdb1bd0fc32ca327eac": {"added": 1786749285772, "file": {"name": "/io.github.benji377.timety_242.apk", "sha256": "f3238a061c9dd152ce83eaa2ecc05ddd20749dcff3a9efdb1bd0fc32ca327eac", "size": 3969798, "ipfsCIDv1": "bafybeibxedgulh6ownxlesfxzmgdivdm7dxbpfol4wbalkzr7vjnpltuxq"}, "src": {"name": "/io.github.benji377.timety_242_src.tar.gz", "sha256": "2f7a5f08700db53bef47caf497da749a38b0d14d404b2df6a425af0b2475d25c", "size": 4222518}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.2.0", "versionCode": 242, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["a12e4cf83cbbdf2c4a33edf58c4866ba3763d7d4e83a40f35126e5bea41a5526"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.ACCESS_NOTIFICATION_POLICY"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "io.github.benji377.timety.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "io.github.herrerad85.tallybook": {"versions": {"e97fc1abcf4173ee53f2a7f0610a2fef15cd9834a3993c58e7e97df8b7a1de9c": {"antiFeatures": {"TetheredNet": null}}}}, "io.github.keco216.clockwork": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"dc45aab34d8794014a60477e1ea8fd089578b49d57ecf406760dc4feb77bd8ac": {"added": 1786749285772, "file": {"name": "/io.github.keco216.clockwork_10504.apk", "sha256": "dc45aab34d8794014a60477e1ea8fd089578b49d57ecf406760dc4feb77bd8ac", "size": 1270971, "ipfsCIDv1": "bafybeih7sya474mo5k54m273wrgevdwfdlks7iffsymuwfsr7ozji5yo6q"}, "src": {"name": "/io.github.keco216.clockwork_10504_src.tar.gz", "sha256": "2a8c47cb676e004066d28d7ccb0e1b4e1bd59b223e849152ad8b666c0fd49080", "size": 62943678}, "manifest": {"versionName": "1.5.4", "versionCode": 10504, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["ddb51f95e8b0187e5d2168ec99f1448f4ce7db373ac3a0ad43e62323c8bd2a47"]}, "usesPermission": [{"name": "android.permission.CAMERA"}, {"name": "io.github.keco216.clockwork.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "An der App ändert sich nichts. Zurückgenommen wird ein Bau-Schalter aus 1.5.3: Die PNG-Neukomprimierung ist wieder an, das APK schrumpft dadurch um 53 kB. Abgeschaltet war sie, um den Bau reproduzierbar zu machen — in der Annahme, die selbst erzeugten Icons seien deterministisch. Das sind sie nur bei gleicher Node-Fassung, und das Abschalten hat die Abweichung freigelegt statt beseitigt. Byte-Gleichheit mit dem F-Droid-Buildserver ist damit nicht erreicht und wird nicht behauptet.\n", "en-US": "The app is unchanged. This reverts a build flag from 1.5.3: PNG recompression is enabled again, which shrinks the APK by 53 kB. It had been switched off to make the build reproducible, on the assumption that the icons this project generates itself are deterministic — they are only so on the same Node version, and disabling the recompression exposed that instead of hiding it. Reproducibility against F-Droid's build server has not been reached and is not claimed.\n"}}}}, "io.github.luantak.fokuslauncher": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"283ba86e0f2f8b4e3ae045fcd95755c4f4b4e8dc254261df6e95840c0dc676ea": null, "f00ae013024cdca7e7f6ae308b528a5b6446871197d69e5d870e0c077302b341": {"added": 1786749285772, "file": {"name": "/io.github.luantak.fokuslauncher_48.apk", "sha256": "f00ae013024cdca7e7f6ae308b528a5b6446871197d69e5d870e0c077302b341", "size": 3980225, "ipfsCIDv1": "bafybeifivhwwqxqi7ahfotehtn2nzuc5sdnweu2u6snhtzixbfodt5wdji"}, "src": {"name": "/io.github.luantak.fokuslauncher_48_src.tar.gz", "sha256": "ef774ffb6242cd22c1e1aec3ba3a09b98ea32440cd4d33eff53b9ca8c71a55e6", "size": 3568842}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.9.2", "versionCode": 48, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["79351d7edaa5e54b339c1c9be68e3f08bcdb97dc7e82912916df6038557ebe48"]}, "usesPermission": [{"name": "android.permission.REQUEST_DELETE_PACKAGES"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_HIDDEN_PROFILES"}, {"name": "android.permission.EXPAND_STATUS_BAR"}, {"name": "android.permission.SET_WALLPAPER"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.PACKAGE_USAGE_STATS"}, {"name": "io.github.luantak.fokuslauncher.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Optional Arcticons app icons in the app drawer.\n\nFix notification indicator dots ignoring the selected color.\n\nA bit more space above the media player and Pomodoro timer.\n"}}}}, "io.github.rajnishkmehta.dhwanicontrol": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"f78f89ed586290c9becfd89ac9571508e030d572235a4d5bd9491c0dadbfbd9b": null, "4d2088ac2e726efe18614804e595216428a901121c7c6b1c506570192558541a": {"added": 1786749285772, "file": {"name": "/io.github.rajnishkmehta.dhwanicontrol_7.apk", "sha256": "4d2088ac2e726efe18614804e595216428a901121c7c6b1c506570192558541a", "size": 5881352, "ipfsCIDv1": "bafybeidedi2uyigdtd7ioeuzq7svfqt3yu2uh2snvk2c4y3u3rruxflq6u"}, "src": {"name": "/io.github.rajnishkmehta.dhwanicontrol_7_src.tar.gz", "sha256": "6f4e000aebb6e282cd32c75b402bdedc40f6e9267a935166adba86d2841e9902", "size": 2170615}, "manifest": {"versionName": "1.2.1", "versionCode": 7, "usesSdk": {"minSdkVersion": 29, "targetSdkVersion": 37}, "signer": {"sha256": ["050a421130209589ac72bdf25649ff74fa148720a14e8d82b95b251ad577ed03"]}, "usesPermission": [{"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.VIBRATE"}, {"name": "io.github.rajnishkmehta.dhwanicontrol.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "v1.2.1 (7) is same as v1.2.0 (6)\nhttps://github.com/RajnishKMehta/DhwaniControl/releases/tag/v1.2.0\n\nVersion 1.2.0 (Build 6)\n\n- Added \"Need Help\" buttons on configuration screens for quick access to guides\n- Streamlined setup guide for Quick Settings Tile\n- Added direct documentation links for Edge Swipe and Floating Button settings\n- Improved App Info screen with reliable offline developer profile avatar\n"}}}}, "io.github.rumcajs.offlinewebsearch": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"a3908e96f7e20a9d902fbad8b7805d9d7864bcedeaa2a666fb69dfe937d30583": null, "df326f015ed0f6965fd030a4c3b7d79b76ae562d75de979d53608ea087d0c0f4": {"added": 1786866775484, "file": {"name": "/io.github.rumcajs.offlinewebsearch_15.apk", "sha256": "df326f015ed0f6965fd030a4c3b7d79b76ae562d75de979d53608ea087d0c0f4", "size": 15698968, "ipfsCIDv1": "bafybeif2ck77cmp6hutwmai63gb7ucymoh2uhwq2ettcyouwd76dvjfxrq"}, "src": {"name": "/io.github.rumcajs.offlinewebsearch_15_src.tar.gz", "sha256": "284884210add1e756c096d41004c3983b04a36fb4ce47c0e0f7576e74cf0a953", "size": 4110645}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.0.13", "versionCode": 15, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["42eccc9b717a05013f3be1222dc576f60f255d699dee79a8bf245f864eaea2fc"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "io.github.rumcajs.offlinewebsearch.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Initial open-source release of Offline Web Search.\n- Offline-first web search utilizing local JSON/SQLite databases.\n- Real-time search suggestions and history support.\n- Fully customizable UI layouts (Standard, Search Engine, Gallery).\n- Dynamic RSS and Feed generator for YouTube, Reddit, and GitHub links.\n- Privacy-focused: no tracker libraries, cookies, or remote search queries.\n"}}}}, "io.github.saeeddev94.xray": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"cb5d0ec2dc12f376808268d0001edfcbd99a82b7013c0b97c2d6f5b0076fd8e2": null, "82539fc042ae38d6e1ff705a660af61b800c8417c342442609007cb363a47ee6": null, "346554ca143dd096f23c3580548f011bb92e3e1ff24b05644f006aeffd2c85ae": null, "6a9484708f4c5da682c7bdcc7f29a1dbfc82076c546b8d7c0527661465add65f": null, "f7217ef641f94f3eb63641399178e91d97d7391b95d2841302bbd8f741da03d2": {"added": 1786866775484, "file": {"name": "/io.github.saeeddev94.xray_1104.apk", "sha256": "f7217ef641f94f3eb63641399178e91d97d7391b95d2841302bbd8f741da03d2", "size": 46232937, "ipfsCIDv1": "bafybeif3xxkvrwkrtbxsvvhh4vm66cfvjta375v3dgy5mguoicdwx4w3qm"}, "src": {"name": "/io.github.saeeddev94.xray_1104_src.tar.gz", "sha256": "f412aa3e3752f127ee1f08df06577513152a8cef789d0cca110f5d8bbd38c893", "size": 2619663}, "manifest": {"nativecode": ["x86_64"], "versionName": "12.5.0", "versionCode": 1104, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["1658411ab97758c6ce0001befcdeb29c2219ee19d80501f8061bb008d79d0360"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "io.github.saeeddev94.xray.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- hev-socks5-tunnel: v2.17.0\n- Advanced Settings: hev tcp,udp read,write timeout (#88)\n- svg qs tile icon (#90)\n- Apps Routing: remove internet permission check (#92)\n- Implement X-HWID (#94)\n"}}, "b8f7d46b09b3db5f2b0f0359a52862ee605303cd0d2abf3695189f2929bd45cf": {"added": 1786866775484, "file": {"name": "/io.github.saeeddev94.xray_1103.apk", "sha256": "b8f7d46b09b3db5f2b0f0359a52862ee605303cd0d2abf3695189f2929bd45cf", "size": 42645211, "ipfsCIDv1": "bafybeicde6ewdcnwgiyhjo4kfcsc5eijcdvqlols4kspmut72bh3pl5qm4"}, "src": {"name": "/io.github.saeeddev94.xray_1103_src.tar.gz", "sha256": "e6f69d346bcb8d3034cee35f696430926780d5159f728680ce8f8d9610b0ee16", "size": 2619512}, "manifest": {"nativecode": ["x86"], "versionName": "12.5.0", "versionCode": 1103, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["1658411ab97758c6ce0001befcdeb29c2219ee19d80501f8061bb008d79d0360"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "io.github.saeeddev94.xray.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "29322e2502ce8ed69b73a058f260066b8519c3cef3df5c3a3cac01fd0cd068f8": {"added": 1786866775484, "file": {"name": "/io.github.saeeddev94.xray_1102.apk", "sha256": "29322e2502ce8ed69b73a058f260066b8519c3cef3df5c3a3cac01fd0cd068f8", "size": 43772319, "ipfsCIDv1": "bafybeiaff5iaurmjdr27i7u352azqzgk5w26p4ltpqmu5rlj5ayknz456q"}, "src": {"name": "/io.github.saeeddev94.xray_1102_src.tar.gz", "sha256": "604fe2ed33d43e446f61342ad0c4945cd547710a62b5e667376b5411e52495e1", "size": 2619422}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "12.5.0", "versionCode": 1102, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["1658411ab97758c6ce0001befcdeb29c2219ee19d80501f8061bb008d79d0360"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "io.github.saeeddev94.xray.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "844ae588f6322c518e7d912d0270f9644d59a006d2f72fc7d001880ca09f81ab": {"added": 1786866775484, "file": {"name": "/io.github.saeeddev94.xray_1101.apk", "sha256": "844ae588f6322c518e7d912d0270f9644d59a006d2f72fc7d001880ca09f81ab", "size": 42070823, "ipfsCIDv1": "bafybeicv5nkqdyh4p53kk54s6zfgaqk2zopsryqpegg57ohrnqu3k7mkuu"}, "src": {"name": "/io.github.saeeddev94.xray_1101_src.tar.gz", "sha256": "bcc1bccbc32b61890a4a37df9b2e2c9e28b5f05e86dae6543e175b06e13964a4", "size": 2619639}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "12.5.0", "versionCode": 1101, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["1658411ab97758c6ce0001befcdeb29c2219ee19d80501f8061bb008d79d0360"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "io.github.saeeddev94.xray.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "io.github.sms2email.sms2email": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"9575c20077a89e2b3750eb437168ccebb44c0c9be5100438edfc2a207acda30c": null, "cbb24cf0a622cd10d9c26e4fdc13061d400582e088e68cc05b3731a914851d2e": {"added": 1786866775484, "file": {"name": "/io.github.sms2email.sms2email_46.apk", "sha256": "cbb24cf0a622cd10d9c26e4fdc13061d400582e088e68cc05b3731a914851d2e", "size": 16462931, "ipfsCIDv1": "bafybeifcprfouhfdnrusm3hdkghverres7s3yvfvzkxkyz3qpnjjon7lky"}, "src": {"name": "/io.github.sms2email.sms2email_46_src.tar.gz", "sha256": "299e82a1b0c9c7af2604ee2106be2b8ec3d42cc2cc484f40072a22b2966cec00", "size": 2172806}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.1.33", "versionCode": 46, "features": [{"name": "android.hardware.telephony"}], "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["adb95a3e8da26800459360d9b2a5eb2677552efe90e5f11576d219bf916b0a48"]}, "usesPermission": [{"name": "android.permission.RECEIVE_SMS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.INTERNET"}, {"name": "io.github.sms2email.sms2email.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "## [1.1.33](https://github.com/SMS2Email/SMS2Email/compare/v1.1.32...v1.1.33) (2026-08-13)\n\n\n### Bug Fixes\n\n* **deps:** update dependency androidx.appcompat:appcompat to v1.8.0 ([#118](https://github.com/SMS2Email/SMS2Email/issues/118)) ([6b20649](https://github.com/SMS2Email/SMS2Email/commit/6b20649f38594f38ae0eb2531f6d8c56a7459d32))\n\n"}}}}, "io.github.snood21.workprofilevpnswitcher": {"metadata": {"added": 1786866775484, "categories": ["System"], "issueTracker": "https://github.com/snood21/workprofile-vpn-switcher/issues", "lastUpdated": 1786866775484, "license": "Apache-2.0", "sourceCode": "https://github.com/snood21/workprofile-vpn-switcher", "screenshots": {"phone": {"en-US": [{"name": "/io.github.snood21.workprofilevpnswitcher/en-US/phoneScreenshots/1.jpg", "sha256": "5b12bef7ee99c8d99389a68eafe83d4ebcc85037afe105ca46f4d94f51cb511b", "size": 149841}, {"name": "/io.github.snood21.workprofilevpnswitcher/en-US/phoneScreenshots/2.jpg", "sha256": "73e777d5468d8ea3f22854dd13ebfa9fdaeb52db142e0b135e2123069ac0a71d", "size": 142150}, {"name": "/io.github.snood21.workprofilevpnswitcher/en-US/phoneScreenshots/3.jpg", "sha256": "297cae8b938af0a282df621f9ce3fdb881d7f6459d89d3a0ccdb184ea5242bf3", "size": 85256}, {"name": "/io.github.snood21.workprofilevpnswitcher/en-US/phoneScreenshots/4.jpg", "sha256": "9b8f9feecd3c1459fa1553e7250a88d652fbb90ed504de6fc0a16ec7533e1eaf", "size": 55590}, {"name": "/io.github.snood21.workprofilevpnswitcher/en-US/phoneScreenshots/5.jpg", "sha256": "4d5e32ebf978e6a3bd8824ff38934aa70ceed373bca4f6513a0d4a006b2f9951", "size": 68582}, {"name": "/io.github.snood21.workprofilevpnswitcher/en-US/phoneScreenshots/6.jpg", "sha256": "d460c619f7ff33a57d55ce097f7f0d8efa59cf65417f4ed744804fe94a6ed893", "size": 86455}], "ru-RU": [{"name": "/io.github.snood21.workprofilevpnswitcher/ru-RU/phoneScreenshots/1.jpg", "sha256": "565d4dce6ead1e7e208bb88039c65b9c91de062b647f2be97e91d0ad5d66bc0b", "size": 152840}, {"name": "/io.github.snood21.workprofilevpnswitcher/ru-RU/phoneScreenshots/2.jpg", "sha256": "8ef6b60c23561fe9c3be5416c068efd5a42e50d8566d758dad760bb686fd4676", "size": 160141}, {"name": "/io.github.snood21.workprofilevpnswitcher/ru-RU/phoneScreenshots/3.jpg", "sha256": "e0714e90dd44a821dc7f66aead6127f3f5174b674a7e4a3053eb67cf0c7caa50", "size": 87493}, {"name": "/io.github.snood21.workprofilevpnswitcher/ru-RU/phoneScreenshots/4.jpg", "sha256": "74218f21cec6b73591883e20fdedae5ba6e4bbf2d633e9294bc4b51d4f5c6521", "size": 57105}, {"name": "/io.github.snood21.workprofilevpnswitcher/ru-RU/phoneScreenshots/5.jpg", "sha256": "885ba5f7d972993d7543c147f427a5c0157892378afe281096d4818f0ea547a4", "size": 80297}, {"name": "/io.github.snood21.workprofilevpnswitcher/ru-RU/phoneScreenshots/6.jpg", "sha256": "058a4d2f05cdffce4f1184db911b9616547281de483c8d3cc37b3c51a3f1bee2", "size": 91643}]}}, "authorName": "snood21", "name": {"en-US": "Work Profile VPN Switcher", "ru-RU": "Work Profile VPN Switcher"}, "summary": {"en-US": "Automatically manage work profile when VPN connects or disconnects", "ru-RU": "Автоматическое управление рабочим профилем при подключении VPN"}, "description": {"en-US": "An Android application that automatically manages the work profile when a VPN connection is active.\n\nWhen VPN connects, the work profile is disabled. When VPN disconnects, the previous state is optionally restored. Useful when the work profile contains apps that should not run through the VPN tunnel, or when you need to isolate work apps from VPN traffic.\n\nFeatures:\n* Automatic disabling of the work profile when VPN connects\n* State restoration after VPN disconnects (optional)\n* Reverse logic — disable profile if manually enabled while VPN is active (optional)\n* Allowlist mode — monitor only selected VPN apps\n* Denylist mode — monitor all VPN connections except excluded apps (useful for AdGuard)\n* Background polling — fallback for devices where network events are suppressed by the OS\n* Russian and English interface\n\nRequirements:\n* Android 11 (API 30) or higher\n* A configured work profile (via Shelter or similar app)\n* MODIFY_QUIET_MODE permission — granted manually via ADB:\n  adb shell pm grant io.github.snood21.workprofilevpnswitcher android.permission.MODIFY_QUIET_MODE\n\nNote: the permission must be re-granted after a clean reinstall. It persists through regular updates.\n\nIf automatic switching does not work, enable Background polling in Advanced settings. Also allow autostart and set battery mode to No restrictions in system settings.", "ru-RU": "Приложение для автоматического управления рабочим профилем Android при подключении VPN.\n\nОтслеживает VPN-подключения и автоматически отключает рабочий профиль когда VPN активен, и восстанавливает его состояние после отключения VPN. Удобно для случаев когда рабочий профиль содержит приложения которые не должны работать через VPN-туннель, или наоборот — когда нужно изолировать рабочие приложения от VPN-трафика.\n\nВозможности:\n* Автоматическое отключение рабочего профиля при подключении VPN\n* Восстановление состояния профиля после отключения VPN (опционально)\n* Обратная логика — отключать профиль если он был включён вручную при активном VPN (опционально)\n* Режим allowlist — мониторить только выбранные VPN-приложения\n* Режим denylist — мониторить все VPN, кроме исключённых (для корректной работы с AdGuard)\n* Фоновый опрос — резервный механизм для устройств, где события сети подавляются ОС\n* Русский и английский интерфейс\n\nТребования:\n* Android 11 (API 30) и выше\n* Настроенный рабочий профиль (через Shelter или другое приложение)\n* Разрешение MODIFY_QUIET_MODE — выдаётся вручную через ADB:\n  adb shell pm grant io.github.snood21.workprofilevpnswitcher android.permission.MODIFY_QUIET_MODE\n\nПримечание: разрешение нужно выдавать заново после переустановки. При обычном обновлении сохраняется.\n\nЕсли автоматическое отключение не срабатывает — включите Фоновый опрос в разделе Расширенные настройки. Также разрешите автозапуск и установите режим батареи Без ограничений в настройках системы."}, "donate": ["https://boosty.to/snood21/donate"], "preferredSigner": "7e40da03da8b5eb069a71cc6454e6944104f970b7e7be356f9ee0a5db7a0b32a"}, "versions": {"d2f6fc2e0a20d77643751b00b251862706ccc6bef0f06774fe890a3c617d7b76": {"added": 1786866775484, "file": {"name": "/io.github.snood21.workprofilevpnswitcher_2.apk", "sha256": "d2f6fc2e0a20d77643751b00b251862706ccc6bef0f06774fe890a3c617d7b76", "size": 12733207, "ipfsCIDv1": "bafybeibrli6ypczwpfkh3rlqtbb62u5oe23x45scos4tsdjn4srktamwfe"}, "src": {"name": "/io.github.snood21.workprofilevpnswitcher_2_src.tar.gz", "sha256": "c043ffdd63cf0496dc54a6fc7c2fc63c69e504dc6cc37b15c3736bca16421c9a", "size": 2438851}, "manifest": {"versionName": "1.1.0", "versionCode": 2, "usesSdk": {"minSdkVersion": 30, "targetSdkVersion": 37}, "signer": {"sha256": ["7e40da03da8b5eb069a71cc6454e6944104f970b7e7be356f9ee0a5db7a0b32a"]}, "usesPermission": [{"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.MODIFY_QUIET_MODE"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.VIBRATE"}, {"name": "io.github.snood21.workprofilevpnswitcher.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "* Added dark theme\n* New \"Interface\" screen: language and theme selection (system/light/dark)\n* New \"Logging\" screen: writes events to a file for diagnostics\n* Fixed language switching — now applied on all screens right away\n* Minor fixes and stability improvements\n", "ru-RU": "* Добавлена тёмная тема\n* Новый экран «Интерфейс»: выбор языка и темы (системная/светлая/тёмная)\n* Новый экран «Логирование»: запись событий в файл для диагностики\n* Исправлена смена языка — теперь применяется сразу на всех экранах\n* Мелкие исправления и улучшения стабильности\n"}}}}, "io.github.trevarj.motd": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"e670f423bc6d34dd69135f01d0bae9ed88b6b465a2b8950c9c9e4b6d0fc31ae5": null, "d0e78e14f1a8c54cce2df7874c9f5325aa75373dad1e68ba2336b9e6ba3f468b": null, "e1f053b89e6aeb63549280ba777140bc11dd85ba4ca3e1db115975fd7ec3f02a": {"added": 1786866775484, "file": {"name": "/io.github.trevarj.motd_14006.apk", "sha256": "e1f053b89e6aeb63549280ba777140bc11dd85ba4ca3e1db115975fd7ec3f02a", "size": 87458326, "ipfsCIDv1": "bafybeia6uiuvsoxxoh7yvmxvzbus25rjnalkysf3vargu4osn7wwjk7k3u"}, "src": {"name": "/io.github.trevarj.motd_14006_src.tar.gz", "sha256": "35eae780397f0f355fcb1a100e8cf9039d826aeef192183bf2370d7e67f2d861", "size": 67867945}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.14.6", "versionCode": 14006, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["4104a03bbc48942df8346fbd331f7761d13f68af4a2ff4d14f730e501ce728c3"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "io.github.trevarj.motd.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Avatars got a redesign: channels are now rounded squares while people stay circles, and the IRC sprites use a vivid pixel-art palette with more robot variety (new bodies, heads, accessories, and faces).\n- Nick colors are spread much further apart, so different people no longer share near-identical colors.\n- Channel logos now cover 300+ projects (NixOS, Postgres, Redis, and more).\n"}}, "d4731fe75f7687b503ae9b70685fd3ca7a580df0d340a0b795d1859adf7fbb2a": {"added": 1786749285772, "file": {"name": "/io.github.trevarj.motd_14004.apk", "sha256": "d4731fe75f7687b503ae9b70685fd3ca7a580df0d340a0b795d1859adf7fbb2a", "size": 87197034, "ipfsCIDv1": "bafybeialunkzes525a4atv7zga2yivolqpumb5dtigrcyk2t4tgfaqwkqy"}, "src": {"name": "/io.github.trevarj.motd_14004_src.tar.gz", "sha256": "f3850be8c4bad3d10b0933518176513464f065a45e9fa32c4d5ecda3937f793b", "size": 67604312}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.14.4", "versionCode": 14004, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["4104a03bbc48942df8346fbd331f7761d13f68af4a2ff4d14f730e501ce728c3"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "io.github.trevarj.motd.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Smoother motion throughout: chat list, composer, reactions, image viewer, search, settings, channel info, and onboarding now ease instead of snapping.\n- Opening a chat lands at the unread divider instead of jumping to the bottom.\n- The history-sync cue now sits on the title line beside the network chip.\n- Unread badges keep their last count while fading out.\n- The motd wordmark on the About screen now matches the app's own typography.\n"}}}}, "is.xyz.mpv": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"cb395c57dfcd79c7062d6b52eb15af8262f8c7bbffa4bf6baf3f70901eca23d1": null, "b6a6ebcb82802bee830b398c77712afa30002fb5d41fd1405063c7e2126367bb": {"added": 1786749285772, "file": {"name": "/is.xyz.mpv_47.apk", "sha256": "b6a6ebcb82802bee830b398c77712afa30002fb5d41fd1405063c7e2126367bb", "size": 126397813, "ipfsCIDv1": "bafybeigvv2q3jtied6jajo7qxn4vlgqfpnullq4fdgytbfaakdg4m63bgi"}, "src": {"name": "/is.xyz.mpv_47_src.tar.gz", "sha256": "fe162188c2dc8c3facf274cf7db36cc38b105c4a7f0a5816bbb13622923a965b", "size": 95039897}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86_64"], "versionName": "2026-08-11-release", "versionCode": 47, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["43509443ff26dec9be7ab69cf7e32482680be75a5643c0759c9805d20d491a49"]}, "usesPermission": [{"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "is.xyz.mpv.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "it.eldavo.ylih": {"metadata": {"added": 1786749285772, "categories": ["Multimedia", "Time Tracker"], "changelog": "https://github.com/ElDavoo/ylih/releases", "issueTracker": "https://github.com/ElDavoo/ylih/issues", "lastUpdated": 1786749285772, "license": "MIT", "sourceCode": "https://github.com/ElDavoo/ylih", "featureGraphic": {"en-US": {"name": "/it.eldavo.ylih/en-US/featureGraphic_IYGO-RTEXID6eG30fbqFCvGgumTZO7YRTO3AM-OpOXc=.png", "sha256": "21818ef914c45c80fa786df47dba850af1a0ba64d93bb6114cedc033e3a93977", "size": 20852}}, "screenshots": {"phone": {"en-US": [{"name": "/it.eldavo.ylih/en-US/phoneScreenshots/01-devices.png", "sha256": "904818ebb760605f8b668c2be4aacfa4b6031b38a6cabdc2fdf873bac51b1636", "size": 129985}, {"name": "/it.eldavo.ylih/en-US/phoneScreenshots/02-stats.png", "sha256": "304b483e6474788145d9827580c6bc62c989e9ba43914ea9c200e60405665ba0", "size": 128164}, {"name": "/it.eldavo.ylih/en-US/phoneScreenshots/03-pair-detail.png", "sha256": "8a05c35c9dae6ce2b7a5bfbb28436763e749fb3f7a4c48733a08734aaa5a6595", "size": 132102}, {"name": "/it.eldavo.ylih/en-US/phoneScreenshots/04-settings.png", "sha256": "2b1b2b25696626e0596b2633598e1e6adfeee852d115a4c050b452f2007dfff7", "size": 175765}, {"name": "/it.eldavo.ylih/en-US/phoneScreenshots/05-devices-dark.png", "sha256": "e6b4b38acd3fb69536c1c092fb5836c87f67a2302904117c6982607e328489d9", "size": 130615}]}}, "authorEmail": "dpfuturehacker@gmail.com", "authorName": "Davide Palma", "name": {"ar": "ylih - حياتك في السماعات", "da-DK": "ylih - dit liv i høretelefoner", "de-DE": "ylih - dein Leben im Kopfhörer", "en-US": "ylih - your life in headphones", "es-ES": "ylih - tu vida en auriculares", "fi-FI": "ylih - elämäsi kuulokkeissa", "fr-FR": "ylih - votre vie au casque", "hi-IN": "ylih - हेडफ़ोन में आपका जीवन", "hu-HU": "ylih - életed fejhallgatóban", "id": "ylih - hidupmu dalam headphone", "it-IT": "ylih - la tua vita in cuffia", "ja-JP": "ylih - ヘッドホンの中の人生", "ko-KR": "ylih - 헤드폰 속 당신의 삶", "nl-NL": "ylih - je leven in koptelefoon", "no-NO": "ylih - livet i hodetelefoner", "pl-PL": "ylih - życie w słuchawkach", "pt-BR": "ylih - sua vida nos fones", "ro": "ylih - viața ta în căști", "ru-RU": "ylih - твоя жизнь в наушниках", "sv-SE": "ylih - ditt liv i hörlurar", "th": "ylih - ชีวิตคุณในหูฟัง", "tr-TR": "ylih - kulaklıktaki hayatın", "uk": "ylih - твоє життя в навушниках", "vi": "ylih - đời bạn trong tai nghe", "zh-CN": "ylih - 耳机里的人生", "zh-TW": "ylih - 耳機裡的人生"}, "summary": {"ar": "تتبّع كم ساعة يدوم كل زوج سماعات. دون إنترنت، إلى الأبد، وبخصوصية تامة", "da-DK": "Se hvor mange timer hvert par høretelefoner holder. Offline, for evigt, privat", "de-DE": "Wie viele Stunden hält jedes Kopfhörerpaar? Offline, für immer, privat", "en-US": "Track how many hours each pair of headphones lasts. Offline, forever, private", "es-ES": "Cuántas horas dura cada par de auriculares. Offline, para siempre, privado", "fi-FI": "Seuraa, montako tuntia kukin kuulokepari kestää. Offline, ikuisesti, yksityinen", "fr-FR": "Suivez la durée de vie de vos casques. Hors ligne, pour toujours, privé", "hi-IN": "हर हेडफ़ोन जोड़ी कितने घंटे चली, ट्रैक करें। ऑफ़लाइन, हमेशा के लिए, निजी", "hu-HU": "Mérd, hány órát bír egy fejhallgatópár. Offline, örökre, privát", "id": "Lacak berapa jam setiap headphone bertahan. Offline, selamanya, privat", "it-IT": "Quante ore dura ogni paio di cuffie. Offline, per sempre, senza tracciamento", "ja-JP": "ヘッドホンの寿命を記録。オフライン、永久、プライベート", "ko-KR": "각 헤드폰이 몇 시간 지속되는지 기록하세요. 오프라인, 영구 보관, 프라이버시 보호", "nl-NL": "Hoeveel uur gaat elke koptelefoon mee. Offline, voor altijd, privé", "no-NO": "Se hvor mange timer hvert par hodetelefoner varer. Offline, for alltid, privat", "pl-PL": "Śledź, ile godzin działa każda para słuchawek. Offline, na zawsze, prywatnie", "pt-BR": "Acompanhe quantas horas cada par de fones dura. Offline, para sempre, privado", "ro": "Câte ore ține fiecare pereche de căști. Offline, pentru totdeauna, privat", "ru-RU": "Сколько часов служит каждая пара наушников. Офлайн, навсегда, приватно", "sv-SE": "Se hur många timmar varje par hörlurar håller. Offline, för alltid, privat", "th": "ติดตามชั่วโมงการใช้งานหูฟังแต่ละคู่ ออฟไลน์ ตลอดไป เป็นส่วนตัว", "tr-TR": "Her kulaklığın kaç saat dayandığını izle. Çevrimdışı, kalıcı, gizli", "uk": "Скільки годин служить пара навушників. Офлайн, назавжди, приватно", "vi": "Theo dõi số giờ mỗi đôi tai nghe dùng được. Offline, mãi mãi, riêng tư", "zh-CN": "记录每副耳机能用多少小时。离线运行,永久保存,注重隐私", "zh-TW": "記錄每副耳機能用多少小時。離線運作、永久保存、注重隱私"}, "description": {"ar": "تتعطل السماعات في النهاية. وقبل أن يحدث ذلك، يجيب ylih عن السؤال الوحيد المهم حقًا بخصوص أي زوج سماعات: كم ساعة استفدت منه؟\n\nفي كل مرة تتصل فيها سماعاتك، يسجّل ylih الوقت. وفي كل مرة تنقطع فيها، يسجّل الوقت أيضًا. هذه هي الفكرة كلها — وبما أن أي اتصال هو مجرد توقيتين، فالتطبيق لا يحتاج إلى العمل في الخلفية ليقوم بذلك.\n\nما الذي يتتبّعه\n\n• الساعات الإجمالية لكل زوج فعلي. عندما يتعطل زوج، أحِله إلى التقاعد — يتجمد إجماليه، ويبدأ الزوج التالي من نفس الطراز من الصفر باعتباره الجيل الثاني. أرقامك القديمة لا تختلط أبدًا بالجديدة.\n• كل جلسة، محفوظة إلى الأبد: وقت الاتصال، وقت الانقطاع، وسبب انتهائها.\n• وقت التشغيل (اختياري): كم من وقت الاتصال كان تشغيلًا فعليًا للصوت، حتى لا تُحتسب \"معلّقة حول رقبتي\" كاستماع.\n• التكلفة في الساعة، إذا أدخلت المبلغ الذي دفعته. رقم ممتع لمشاهدته وهو ينخفض.\n\nوضعان للتتبع\n\nbluetooth فقط — الوضع الافتراضي. لا يعمل أي جزء من التطبيق، ولا يظهر شيء في لوحة الإشعارات، ولا يوجد أي استهلاك للبطارية، لأن android يوصل أحداث الاتصال إلى التطبيق حتى وهو مغلق.\n\nالتتبع التفصيلي — اختياري. يضيف السماعات السلكية وسماعات usb، ويقيس نسبة التشغيل مقابل وقت الاتصال. يحتاج إلى إشعار واحد صامت بأدنى أولوية، لأن android لا يُبلّغ عن أحداث توصيل السماعة السلكية إلا لتطبيق يعمل بالفعل. هذا، ولا شيء غيره، هو سبب وجود ذلك الإشعار.\n\nيُتتبَّع bluetooth في كلتا الحالتين.\n\nأرقام يمكنك الوثوق بها بعد سنوات\n\nالإجماليات طويلة الأمد عديمة القيمة إذا أضاف عطل أو إعادة تشغيل اثنتي عشرة ساعة بصمت. لذلك:\n\n• أي جلسة تُركت مفتوحة بسبب إعادة تشغيل أو عطل تُغلق عند آخر نبضة معروفة لها، ولا تتجاوز أبدًا لحظة إقلاع الهاتف. الوقت الذي أمضاه الهاتف مغلقًا لا يُحتسب أبدًا.\n• إذا كانت سماعاتك لا تزال متصلة بعد إعادة التشغيل، تبدأ جلسة جديدة بدلًا من إطالة الجلسة القديمة عبر تلك الفجوة.\n• تُرسل الجلسات نبضات دورية أثناء بقائها مفتوحة، حتى يظل ضرر أي انقطاع فائت محدودًا.\n\nخاصة بطبيعة تصميمها\n\nلا يملك ylih إذن الوصول إلى الإنترنت. لا حسابات، ولا تحليلات، ولا إعلانات، ولا تتبّع. كل شيء يعيش في قاعدة بيانات على هاتفك، ولا ينسخه خارج الجهاز سوى النسخ الاحتياطي الخاص بأندرويد، إن كان مفعّلًا.\n\nالإعدادات ← تصدير تكتب سجلّك الكامل بصيغة json قابلة للقراءة، والاستيراد يستعيده، فالانتقال إلى هاتف جديد لا يكلّفك أرقامك أبدًا.\n\nالأذونات\n\n• الأجهزة القريبة (bluetooth): مطلوب لاستقبال أحداث الاتصال وقراءة اسم السماعة. بدونه، لا يمكن لتتبع bluetooth أن يعمل على الإطلاق.\n• الإشعارات: فقط لإشعار التتبع التفصيلي.\n• التشغيل عند بدء التشغيل: لإغلاق الجلسات التي لم يُبلَّغ عنها الإيقاف أبدًا.\n\nمفتوح المصدر بترخيص MIT.\n", "da-DK": "Høretelefoner går før eller siden i stykker. Inden det sker, svarer ylih på det eneste spørgsmål, der virkelig betyder noget om et par: hvor mange timer fik du ud af dem?\n\nHver gang dine høretelefoner forbindes, noterer ylih hvornår. Hver gang de afbrydes, noterer den hvornår. Det er hele idéen — og fordi en forbindelse blot er to tidsstempler, behøver appen ikke køre i baggrunden for at gøre det.\n\nHVAD DEN REGISTRERER\n\n• Levetidstimer pr. fysisk par. Når et par går i stykker, så udfas det — totalen fryses, og næste par af samme model starter igen fra nul som generation 2. Dine gamle tal blandes aldrig sammen med de nye.\n• Hver session, gemt for evigt: hvornår den blev forbundet, hvornår den blev afbrudt, og hvorfor den sluttede.\n• Afspilningstid (valgfrit): hvor meget af den forbundne tid der rent faktisk blev afspillet lyd, så \"hænger om halsen\" ikke tæller som lytning.\n• Pris pr. time, hvis du angiver, hvad du betalte for dem. Det er et tilfredsstillende tal at se falde.\n\nTO SPORINGSTILSTANDE\n\nKun bluetooth — standardindstillingen. Intet af appen kører, intet ligger i dit meddelelsespanel, og der er ingen batteriomkostning, fordi android leverer forbindelseshændelser til appen, selv når den er lukket.\n\nDetaljeret sporing — valgfri. Tilføjer høretelefoner med kabel og usb, og måler afspilning i forhold til forbundet tid. Den kræver én lydløs notifikation med minimal prioritet, fordi android kun rapporterer kabelbegivenheder til en app, der allerede kører. Det, og intet andet, er årsagen til, at notifikationen findes.\n\nBluetooth spores under alle omstændigheder.\n\nTAL DU KAN STOLE PÅ ÅR SENERE\n\nLangsigtede totaler er værdiløse, hvis et nedbrud eller en genstart stille og roligt lægger tolv timer til. Derfor:\n\n• En session, der er efterladt åben af en genstart eller et nedbrud, lukkes ved sit sidst kendte hjerteslag, aldrig senere end det øjeblik telefonen startede op. Tid, telefonen var slukket, tælles aldrig med.\n• Hvis dine høretelefoner stadig er forbundet efter en genstart, starter en ny session i stedet for at strække den gamle hen over pausen.\n• Sessioner overvåges løbende, mens de er åbne, så skaden fra en overset afbrydelse er begrænset.\n\nPRIVAT VED KONSTRUKTION\n\nylih har ingen internettilladelse. Der er ingen konti, ingen analyse, ingen reklamer og ingen sporing. Alt ligger i en database på din telefon — det eneste, der kan kopiere den væk fra enheden, er Androids egen sikkerhedskopiering, hvis du har den slået til.\n\nIndstillinger → Eksportér skriver hele din historik som læsbar json, og Importér genskaber den, så det aldrig koster dig dine tal at skifte til en ny telefon.\n\nTILLADELSER\n\n• Enheder i nærheden (bluetooth): nødvendig for at modtage forbindelseshændelser og læse et headsets navn. Uden den kan bluetooth-sporing slet ikke fungere.\n• Notifikationer: kun til notifikationen for detaljeret sporing.\n• Kør ved opstart: for at lukke sessioner, som nedlukningen aldrig fik rapporteret.\n\nOpen source under MIT-licensen.\n", "de-DE": "Kopfhörer gehen irgendwann kaputt. Bevor sie es tun, beantwortet ylih die einzige Frage, die bei einem Paar wirklich zählt: Wie viele Stunden hast du mit ihnen verbracht?\n\nJedes Mal, wenn sich deine Kopfhörer verbinden, notiert ylih den Zeitpunkt. Jedes Mal, wenn sie sich trennen, notiert es ihn ebenfalls. Das ist die ganze Idee dahinter – und weil eine Verbindung nur aus zwei Zeitstempeln besteht, muss die App dafür nicht im Hintergrund laufen.\n\nWAS ERFASST WIRD\n\n• Gesamtstunden pro physischem Kopfhörerpaar. Wenn ein Paar kaputtgeht, mustere es aus – die Summe friert dort ein, und das nächste Paar desselben Modells beginnt als Generation 2 wieder bei null. Deine alten Zahlen vermischen sich nie mit den neuen.\n• Jede Sitzung, dauerhaft gespeichert: Verbindungszeit, Trennungszeit und der Grund für das Ende.\n• Wiedergabezeit (optional): wie viel von dieser Verbindungszeit tatsächlich Musik oder Ton lief, damit \"um den Hals getragen\" nicht als Hören zählt.\n• Kosten pro Stunde, wenn du den Kaufpreis einträgst. Eine Zahl, der man gerne beim Sinken zusieht.\n\nZWEI TRACKING-MODI\n\nNur bluetooth – die Standardeinstellung. Nichts von der App läuft, nichts erscheint im Benachrichtigungsbereich, und es entsteht kein Akkuverbrauch, weil android Verbindungsereignisse auch bei geschlossener App an sie weiterleitet.\n\nDetailliertes Tracking – optional. Fügt kabelgebundene und USB-Kopfhörer hinzu und misst Wiedergabe im Verhältnis zur Verbindungszeit. Dafür ist eine einzige stille Benachrichtigung mit niedrigster Priorität nötig, weil android Ereignisse einer Kabelbuchse nur an eine bereits laufende App meldet. Das, und nichts sonst, ist der Grund für diese Benachrichtigung.\n\nBluetooth wird in beiden Modi erfasst.\n\nZAHLEN, DENEN DU AUCH JAHRE SPÄTER VERTRAUEN KANNST\n\nLangfristige Summen sind wertlos, wenn ein Absturz oder ein Neustart still zwölf Stunden hinzufügt. Deshalb:\n\n• Eine Sitzung, die durch einen Neustart oder Absturz offen geblieben ist, wird beim letzten bekannten Lebenszeichen geschlossen – nie später als dem Moment, in dem das Telefon hochgefahren ist. Zeit, in der das Telefon ausgeschaltet war, wird nie mitgezählt.\n• Sind deine Kopfhörer nach einem Neustart noch verbunden, beginnt eine neue Sitzung, statt die alte über die Lücke hinweg zu verlängern.\n• Offene Sitzungen erhalten laufend ein Lebenszeichen, sodass der Schaden durch eine verpasste Trennung begrenzt bleibt.\n\nVON NATUR AUS PRIVAT\n\nylih hat keine Internetberechtigung. Es gibt keine Konten, keine Analysen, keine Werbung und kein Tracking. Alles liegt in einer Datenbank auf deinem Telefon – vom Gerät kopieren kann sie nur Androids eigene Datensicherung, sofern du sie aktiviert hast.\n\nEinstellungen → JSON exportieren schreibt deine gesamte Historie als lesbares JSON, und Importieren stellt sie wieder her – ein Wechsel auf ein neues Telefon kostet dich nie deine Zahlen.\n\nBERECHTIGUNGEN\n\n• Geräte in der Nähe (bluetooth): nötig, um Verbindungsereignisse zu empfangen und den Namen eines Kopfhörers zu lesen. Ohne diese Berechtigung kann bluetooth-Tracking überhaupt nicht funktionieren.\n• Benachrichtigungen: nur für die Benachrichtigung des detaillierten Trackings.\n• Beim Start ausführen: um Sitzungen zu schließen, die das Herunterfahren nie gemeldet hat.\n\nOpen Source unter der MIT-Lizenz.\n", "en-US": "Headphones die. Before they do, ylih answers the only question that really matters about a pair: how many hours did you get out of them?\n\nEvery time your headphones connect, ylih writes down when. Every time they disconnect, it writes down when. That is the whole idea — and because a connection is just two timestamps, the app does not need to run in the background to do it.\n\nWHAT IT TRACKS\n\n• Lifetime hours per physical pair. When a pair dies, retire it — the total freezes, and the next pair of the same model starts again at zero as generation 2. Your old numbers are never mixed in with the new ones.\n• Every session, kept permanently: connected at, disconnected at, and why it ended.\n• Playback time (optional): how much of that connected time was actually playing audio, so \"worn around my neck\" doesn't count as listening.\n• Cost per hour, if you enter what you paid. It is a satisfying number to watch fall.\n\nTWO TRACKING MODES\n\nBluetooth only — the default. Nothing of the app runs, nothing sits in your notification shade, and there is no battery cost, because Android delivers connection events to the app even while it is closed.\n\nDetailed tracking — optional. Adds wired and USB headphones, and measures playback versus connected time. It needs one silent, minimum-priority notification, because Android only reports wired plug events to an app that is already running. That, and nothing else, is why the notification exists.\n\nBluetooth is tracked either way.\n\nNUMBERS YOU CAN TRUST YEARS LATER\n\nLong-term totals are worthless if a crash or a reboot quietly adds twelve hours. So:\n\n• A session left open by a reboot or a crash is closed at its last known heartbeat, never later than the moment the phone booted. Time the phone spent switched off is never counted.\n• If your headphones are still connected after a reboot, a fresh session starts rather than the old one being stretched across the gap.\n• Sessions are heartbeated while open, so the damage from a missed disconnect is bounded.\n\nPRIVATE BY CONSTRUCTION\n\nylih has no internet permission. There are no accounts, no analytics, no ads, and no tracking. Everything lives in a database on your phone — the only thing that can copy it off the device is Android's own backup, if you have that switched on.\n\nSettings → Export writes your whole history as readable JSON, and Import restores it, so moving to a new phone never costs you your numbers.\n\nPERMISSIONS\n\n• Nearby devices (Bluetooth): required to receive connection events and read a headset's name. Without it, Bluetooth tracking cannot work at all.\n• Notifications: only for the detailed-tracking notification.\n• Run at startup: to close sessions the shutdown never reported.\n\nOpen source under the MIT licence.\n", "es-ES": "Los auriculares acaban rompiéndose. Antes de que eso pase, ylih responde a la única pregunta que de verdad importa sobre un par: ¿cuántas horas les sacaste?\n\nCada vez que tus auriculares se conectan, ylih anota cuándo. Cada vez que se desconectan, anota cuándo. Esa es toda la idea, y como una conexión son solo dos marcas de tiempo, la app no necesita ejecutarse en segundo plano para hacerlo.\n\nQUÉ REGISTRA\n\n• Horas totales por par físico. Cuando un par se estropea, retíralo: el total se congela, y el siguiente par del mismo modelo empieza de nuevo desde cero como generación 2. Tus cifras antiguas nunca se mezclan con las nuevas.\n• Cada sesión, guardada para siempre: hora de conexión, hora de desconexión y por qué terminó.\n• Tiempo de reproducción (opcional): cuánto de ese tiempo conectado se estuvo reproduciendo audio de verdad, para que «colgados al cuello» no cuente como escuchar.\n• Coste por hora, si indicas cuánto pagaste. Es un número muy satisfactorio de ver bajar.\n\nDOS MODOS DE SEGUIMIENTO\n\nSolo bluetooth, el predeterminado. Nada de la app se ejecuta, nada ocupa tu barra de notificaciones y no hay coste de batería, porque android entrega los eventos de conexión a la app incluso mientras está cerrada.\n\nSeguimiento detallado, opcional. Añade auriculares con cable y USB, y mide la reproducción frente al tiempo conectado. Necesita una notificación silenciosa de prioridad mínima, porque android solo informa de los eventos del jack a una app que ya está en ejecución. Ese, y ningún otro, es el motivo por el que existe la notificación.\n\nEl bluetooth se rastrea en ambos casos.\n\nCIFRAS EN LAS QUE CONFIAR AÑOS DESPUÉS\n\nUn total a largo plazo no vale nada si un fallo o un reinicio le suman doce horas sin más. Así que:\n\n• Una sesión que quede abierta por un reinicio o un fallo se cierra en su último latido conocido, nunca después del momento en que el teléfono arrancó. El tiempo con el teléfono apagado nunca se cuenta.\n• Si tus auriculares siguen conectados después de un reinicio, empieza una sesión nueva en lugar de estirar la anterior sobre el hueco.\n• Las sesiones abiertas se monitorizan con latidos, así el daño de una desconexión perdida queda limitado.\n\nPRIVADA POR CONSTRUCCIÓN\n\nylih no tiene permiso de internet. No hay cuentas, ni analítica, ni anuncios, ni rastreo. Todo vive en una base de datos de tu teléfono; lo único que puede copiarla fuera del dispositivo es la copia de seguridad de Android, si la tienes activada.\n\nAjustes → Exportar guarda todo tu historial como JSON legible, e Importar lo restaura, así que cambiar de teléfono nunca te cuesta tus cifras.\n\nPERMISOS\n\n• Dispositivos cercanos (bluetooth): necesario para recibir los eventos de conexión y leer el nombre de unos auriculares. Sin él, el seguimiento por bluetooth no puede funcionar en absoluto.\n• Notificaciones: solo para la notificación del seguimiento detallado.\n• Ejecutar al iniciar: para cerrar las sesiones que el apagado nunca notificó.\n\nCódigo abierto bajo licencia MIT.\n", "fi-FI": "Kuulokkeet hajoavat ennen pitkää. Ennen sitä ylih vastaa ainoaan kysymykseen, joka kuulokeparista oikeasti merkitsee: kuinka monta tuntia sait niistä irti?\n\nAina kun kuulokkeesi yhdistetään, ylih kirjaa ylös, milloin. Aina kun ne katkaisevat yhteyden, se kirjaa senkin. Siinä koko idea — ja koska yhteys on vain kaksi aikaleimaa, sovelluksen ei tarvitse pyöriä taustalla tehdäkseen sen.\n\nMITÄ SE SEURAA\n\n• Jokaisen fyysisen parin elinaikaiset tunnit. Kun pari kuolee, poista se käytöstä — kokonaisaika jäätyy, ja saman mallin seuraava pari aloittaa taas nollasta sukupolvena 2. Vanhat luvut eivät koskaan sekoitu uusiin.\n• Jokainen sessio, säilytettynä pysyvästi: yhdistetty, katkaistu ja miksi se päättyi.\n• Toistoaika (valinnainen): kuinka suuri osa yhteysajasta meni oikeasti äänen toistoon, jotta \"kaulassa roikkuminen\" ei lasketa kuunteluksi.\n• Tuntihinta, jos syötät, mitä maksoit. Sen laskua on tyydyttävä seurata.\n\nKAKSI SEURANTATILAA\n\nVain bluetooth — oletustila. Mikään sovelluksen osa ei ole käynnissä, ilmoitusalueella ei näy mitään, eikä siitä koidu akkukustannuksia, koska android toimittaa yhteystapahtumat sovellukselle myös silloin, kun se on suljettu.\n\nTarkka seuranta — valinnainen. Lisää langalliset ja USB-kuulokkeet ja mittaa toistoaikaa suhteessa yhteysaikaan. Se vaatii yhden hiljaisen, mahdollisimman matalan prioriteetin ilmoituksen, koska android ilmoittaa langallisen kuulokkeen liittämisestä vain jo käynnissä olevalle sovellukselle. Se, ja vain se, on syy ilmoituksen olemassaoloon.\n\nBluetooth seurataan joka tapauksessa.\n\nLUVUT, JOIHIN VOI LUOTTAA VUOSIENKIN PÄÄSTÄ\n\nPitkän aikavälin kokonaismäärät ovat hyödyttömiä, jos kaatuminen tai uudelleenkäynnistys lisää huomaamatta kaksitoista tuntia. Siksi:\n\n• Uudelleenkäynnistyksen tai kaatumisen auki jättämä sessio suljetaan sen viimeisimmän tunnetun sykkeen kohdalla, korkeintaan siihen hetkeen asti, kun puhelin käynnistyi. Aikaa, jonka puhelin oli sammuksissa, ei koskaan lasketa mukaan.\n• Jos kuulokkeet ovat yhä yhdistettyinä uudelleenkäynnistyksen jälkeen, alkaa uusi sessio sen sijaan, että vanhaa venytettäisiin katkon yli.\n• Avoinna olevia sessioita sykähdytetään, joten kadonneen katkaisutapahtuman aiheuttama vahinko pysyy rajattuna.\n\nYKSITYINEN RAKENTEELTAAN\n\nylih:llä ei ole internet-oikeutta. Tilejä, analytiikkaa, mainoksia tai seurantaa ei ole. Kaikki asuu tietokannassa puhelimessasi — ainoa, joka voi kopioida sen laitteelta pois, on Androidin oma varmuuskopiointi, jos se on käytössä.\n\nAsetukset → Vie tallentaa koko historiasi luettavana JSON-tiedostona, ja Tuo palauttaa sen, joten uuteen puhelimeen siirtyminen ei koskaan maksa lukujasi.\n\nKÄYTTÖOIKEUDET\n\n• Lähellä olevat laitteet (bluetooth): tarvitaan yhteystapahtumien vastaanottamiseen ja kuulokkeiden nimen lukemiseen. Ilman sitä bluetooth-seuranta ei toimi lainkaan.\n• Ilmoitukset: vain tarkan seurannan ilmoitusta varten.\n• Käynnistys laitteen käynnistyessä: sulkee sessiot, joista sammutus ei koskaan ilmoittanut.\n\nAvoin lähdekoodi, MIT-lisenssi.\n", "fr-FR": "Les casques finissent par lâcher. Avant ça, ylih répond à la seule question qui compte vraiment sur une paire : combien d'heures en avez-vous tirées ?\n\nChaque fois que votre casque se connecte, ylih note quand. Chaque fois qu'il se déconnecte, il note quand aussi. C'est toute l'idée — et comme une connexion n'est jamais que deux horodatages, l'app n'a pas besoin de tourner en arrière-plan pour le faire.\n\nCE QU'IL SUIT\n\n• Les heures totales de chaque paire physique. Quand une paire rend l'âme, retirez-la — le total se fige, et la paire suivante du même modèle repart de zéro en génération 2. Vos anciens chiffres ne se mélangent jamais avec les nouveaux.\n• Chaque session, conservée définitivement : connexion, déconnexion, et pourquoi elle s'est terminée.\n• Le temps de lecture (optionnel) : la part de ce temps de connexion réellement passée à diffuser du son, pour que « autour du cou » ne compte pas comme de l'écoute.\n• Le coût horaire, si vous indiquez ce que vous avez payé. Un chiffre très satisfaisant à voir baisser.\n\nDEUX MODES DE SUIVI\n\nBluetooth seul — le mode par défaut. Rien de l'app ne tourne, rien n'apparaît dans vos notifications, et il n'y a aucun coût en batterie, car android délivre les événements de connexion à l'app même quand elle est fermée.\n\nSuivi détaillé — optionnel. Ajoute les casques filaires et USB, et mesure la lecture par rapport au temps de connexion. Il nécessite une notification silencieuse, de priorité minimale, car android ne signale les événements de branchement jack qu'à une app déjà en cours d'exécution. C'est la seule raison d'être de cette notification.\n\nLe bluetooth est suivi dans les deux cas.\n\nDES CHIFFRES FIABLES DES ANNÉES PLUS TARD\n\nDes totaux à long terme ne valent rien si un plantage ou un redémarrage ajoute discrètement douze heures. Donc :\n\n• Une session laissée ouverte par un redémarrage ou un plantage est close à son dernier signal connu, jamais plus tard que le moment où le téléphone a démarré. Le temps passé téléphone éteint n'est jamais compté.\n• Si votre casque est toujours connecté après un redémarrage, une nouvelle session démarre plutôt que d'étirer l'ancienne sur l'intervalle.\n• Les sessions sont surveillées régulièrement tant qu'elles sont ouvertes, ce qui limite les dégâts d'une déconnexion manquée.\n\nPRIVÉ PAR CONSTRUCTION\n\nylih n'a pas la permission internet. Aucun compte, aucune analyse, aucune publicité, aucun tracage. Tout vit dans une base de données sur votre téléphone ; seule la sauvegarde d'Android peut la copier hors de l'appareil, si vous l'avez activée.\n\nRéglages → Exporter écrit tout votre historique en JSON lisible, et Importer le restaure, si bien que changer de téléphone ne vous coûte jamais vos chiffres.\n\nPERMISSIONS\n\n• Appareils à proximité (bluetooth) : nécessaire pour recevoir les événements de connexion et lire le nom d'un casque. Sans elle, le suivi bluetooth ne peut pas fonctionner du tout.\n• Notifications : uniquement pour la notification du suivi détaillé.\n• Exécution au démarrage : pour clore les sessions que l'extinction n'a jamais signalées.\n\nOpen source sous licence MIT.\n", "hi-IN": "हेडफ़ोन देर-सबेर खराब हो जाते हैं। इससे पहले, ylih उस एक सवाल का जवाब देता है जो किसी जोड़ी के बारे में सबसे ज़्यादा मायने रखता है: आपने उनसे कितने घंटे इस्तेमाल किए?\n\nजब भी आपके हेडफ़ोन कनेक्ट होते हैं, ylih समय नोट करता है। जब भी वे डिसकनेक्ट होते हैं, वह भी नोट करता है। बस यही पूरी बात है — और चूंकि एक कनेक्शन सिर्फ दो समय-चिह्न हैं, इसलिए ऐप को यह करने के लिए बैकग्राउंड में चलते रहने की ज़रूरत नहीं होती।\n\nयह क्या रिकॉर्ड करता है\n\n• हर भौतिक जोड़ी के कुल घंटे। जब कोई जोड़ी खराब हो जाए, तो उसे रिटायर करें — कुल समय वहीं रुक जाता है, और उसी मॉडल की अगली जोड़ी जनरेशन 2 के रूप में फिर से शून्य से शुरू होती है। आपके पुराने आंकड़े कभी नए के साथ नहीं मिलते।\n• हर सत्र, हमेशा के लिए सुरक्षित: कब कनेक्ट हुआ, कब डिसकनेक्ट हुआ, और क्यों खत्म हुआ।\n• प्लेबैक समय (वैकल्पिक): उस कनेक्टेड समय में से कितना समय असल में ऑडियो बज रहा था, ताकि \"गले में लटके हुए\" को सुनना न माना जाए।\n• प्रति घंटा लागत, अगर आप बताते हैं कि आपने कितना चुकाया। इसे नीचे गिरते देखना संतोषजनक है।\n\nदो ट्रैकिंग मोड\n\nसिर्फ़ ब्लूटूथ — डिफ़ॉल्ट मोड। ऐप का कुछ भी नहीं चलता, नोटिफिकेशन शेड में कुछ नहीं दिखता, और बैटरी की कोई लागत नहीं है, क्योंकि android बंद होने पर भी ऐप को कनेक्शन इवेंट पहुंचाता है।\n\nविस्तृत ट्रैकिंग — वैकल्पिक। तार वाले और USB हेडफ़ोन जोड़ता है, और कनेक्टेड समय की तुलना में प्लेबैक मापता है। इसके लिए एक शांत, न्यूनतम-प्राथमिकता वाली सूचना चाहिए, क्योंकि android तार के प्लग इवेंट सिर्फ पहले से चल रहे ऐप को भेजता है। यही, और सिर्फ़ यही, वजह है कि वह सूचना मौजूद है।\n\nब्लूटूथ हर हाल में ट्रैक होता है।\n\nऐसे आंकड़े जिन पर सालों बाद भी भरोसा किया जा सके\n\nअगर कोई क्रैश या रीबूट चुपचाप बारह घंटे जोड़ दे, तो लंबी अवधि के कुल आंकड़े बेकार हो जाते हैं। इसलिए:\n\n• रीबूट या क्रैश से खुला रह गया सत्र उसके आखिरी ज्ञात हार्टबीट पर बंद होता है, फ़ोन के बूट होने के पल से बाद में कभी नहीं। जितना समय फ़ोन बंद रहा, वह कभी नहीं गिना जाता।\n• अगर रीबूट के बाद भी आपके हेडफ़ोन कनेक्ट हैं, तो पुराने सत्र को अंतराल में खींचने के बजाय एक नया सत्र शुरू होता है।\n• सत्र खुले रहने के दौरान हार्टबीट होते रहते हैं, ताकि छूटे हुए डिसकनेक्ट का नुकसान सीमित रहे।\n\nबुनियादी तौर पर निजी\n\nylih के पास इंटरनेट की अनुमति नहीं है। कोई अकाउंट नहीं, कोई एनालिटिक्स नहीं, कोई विज्ञापन नहीं, और कोई ट्रैकिंग नहीं। सब कुछ आपके फ़ोन पर मौजूद एक डेटाबेस में रहता है — उसे डिवाइस से बाहर सिर्फ़ Android का अपना बैकअप कॉपी कर सकता है, अगर आपने वह चालू कर रखा हो।\n\nसेटिंग्स → निर्यात आपका पूरा इतिहास पढ़ने-योग्य JSON के रूप में लिखता है, और आयात उसे वापस लाता है, इसलिए नए फ़ोन पर जाने से आपके आंकड़े कभी नहीं छूटते।\n\nअनुमतियां\n\n• आस-पास के डिवाइस (bluetooth): कनेक्शन इवेंट पाने और हेडसेट का नाम पढ़ने के लिए ज़रूरी। इसके बिना, bluetooth ट्रैकिंग बिल्कुल काम नहीं कर सकती।\n• सूचनाएं: सिर्फ़ विस्तृत-ट्रैकिंग सूचना के लिए।\n• स्टार्टअप पर चलाएं: उन सत्रों को बंद करने के लिए जिनकी जानकारी शटडाउन ने कभी नहीं दी।\n\nMIT लाइसेंस के तहत ओपन सोर्स।\n", "hu-HU": "A fejhallgatók előbb-utóbb tönkremennek. Mielőtt ez megtörténne, a ylih megválaszolja az egyetlen kérdést, ami egy pár esetében valóban számít: hány órát bírtál ki vele?\n\nMinden alkalommal, amikor a fejhallgatód csatlakozik, a ylih feljegyzi, hogy mikor. Minden alkalommal, amikor lecsatlakozik, azt is feljegyzi. Ennyi az egész — és mivel egy csatlakozás mindössze két időbélyeg, az alkalmazásnak nem kell a háttérben futnia ahhoz, hogy ezt rögzítse.\n\nMIT KÖVET\n\n• Az összes órát fizikai párok szerint, egész élettartamra. Amikor egy pár tönkremegy, vond ki: az összideje lezárul, és ugyanannak a modellnek a következő párja nulláról indul, 2. generációként. A régi számok soha nem keverednek az újakkal.\n• Minden munkamenetet, örökre megőrizve: mikor csatlakozott, mikor szakadt le, és miért ért véget.\n• A lejátszási időt (opcionálisan): a csatlakoztatott időből mennyi telt tényleges zenehallgatással, hogy a nyakban lógó fejhallgató ne számítson hallgatásnak.\n• Az óránkénti költséget, ha megadod, mennyibe került. Jó érzés nézni, ahogy csökken.\n\nKÉT KÖVETÉSI MÓD\n\nCsak bluetooth — ez az alapértelmezett. Az alkalmazásból semmi sem fut, semmi sem ül az értesítési sávban, és nincs akkumulátorköltség, mert az android a kapcsolódási eseményeket akkor is eljuttatja az alkalmazáshoz, ha az be van zárva.\n\nRészletes követés — opcionális. Hozzáadja a vezetékes és USB-s fejhallgatókat, és méri a lejátszást a csatlakoztatott időhöz képest. Egy néma, minimális prioritású értesítésre van szükség hozzá, mert az android a vezetékes csatlakozási eseményeket csak egy már futó alkalmazásnak jelzi. Kizárólag emiatt létezik az értesítés.\n\nA bluetooth mindkét esetben követve van.\n\nSZÁMOK, AMIKBEN ÉVEK MÚLVA IS MEGBÍZHATSZ\n\nEgy hosszú távú összeg semmit sem ér, ha egy összeomlás vagy egy újraindítás csendben hozzácsap tizenkét órát. Ezért:\n\n• Egy újraindítás vagy összeomlás miatt nyitva maradt munkamenet az utolsó ismert életjelnél zárul le, legkésőbb abban a pillanatban, amikor a telefon elindult. A kikapcsolva töltött idő soha nem kerül beszámításra.\n• Ha a fejhallgató még mindig csatlakoztatva van az újraindítás után, egy új munkamenet indul, ahelyett hogy a régit nyújtanák át a szünetén.\n• A nyitott munkamenetek életjeleket küldenek, így egy elveszett lecsatlakozás okozta kár korlátozott marad.\n\nTERVEZÉS SZERINT MAGÁNJELLEGŰ\n\nA ylih-nek nincs internet-hozzáférési engedélye. Nincsenek fiókok, nincs analitika, nincsenek hirdetések, és nincs nyomkövetés. Minden egy adatbázisban él a telefonodon — a készülékről egyedül az Android saját biztonsági mentése másolhatja ki, ha be van kapcsolva.\n\nA Beállítások → Exportálás olvasható JSON-ként írja ki a teljes előzményedet, az Importálás pedig visszaállítja, így egy új telefonra váltás soha nem kerül a számaidba.\n\nENGEDÉLYEK\n\n• A közeli eszközök (bluetooth): szükséges a kapcsolódási események fogadásához és a fejhallgató nevének kiolvasásához. Nélküle a bluetooth-követés egyáltalán nem működhet.\n• Értesítések: csak a részletes követés értesítéséhez.\n• Indítás rendszerindításkor: hogy le tudja zárni azokat a munkameneteket, amiket a leállás sosem jelentett.\n\nNyílt forráskódú, MIT licenc alatt.", "id": "Headphone akhirnya rusak. Sebelum itu terjadi, ylih menjawab satu-satunya pertanyaan yang benar-benar penting tentang sepasang headphone: berapa jam yang kamu dapatkan darinya?\n\nSetiap kali headphone-mu terhubung, ylih mencatat kapan. Setiap kali terputus, ylih mencatat kapan itu juga. Itulah seluruh idenya — dan karena sebuah koneksi hanyalah dua stempel waktu, aplikasi ini tidak perlu berjalan di latar belakang untuk melakukannya.\n\nAPA YANG DILACAK\n\n• Jam total masa pakai untuk setiap pasang fisik. Saat sepasang headphone mati, pensiunkan — totalnya berhenti di situ, dan pasangan berikutnya dari model yang sama mulai lagi dari nol sebagai generasi 2. Angka lamamu tidak pernah tercampur dengan yang baru.\n• Setiap sesi, disimpan selamanya: waktu terhubung, waktu terputus, dan alasan berakhirnya.\n• Waktu pemutaran (opsional): berapa banyak dari waktu terhubung itu yang benar-benar digunakan untuk memutar audio, sehingga \"tergantung di leher\" tidak dihitung sebagai mendengarkan.\n• Biaya per jam, jika kamu memasukkan berapa yang kamu bayar. Angka yang memuaskan untuk dilihat menurun.\n\nDUA MODE PELACAKAN\n\nHanya bluetooth — mode bawaan. Tidak ada bagian aplikasi yang berjalan, tidak ada yang muncul di panel notifikasimu, dan tidak ada biaya baterai, karena android mengirimkan peristiwa koneksi ke aplikasi bahkan saat sedang ditutup.\n\nPelacakan detail — opsional. Menambahkan headphone berkabel dan usb, serta mengukur waktu pemutaran dibanding waktu terhubung. Ini membutuhkan satu notifikasi senyap dengan prioritas minimum, karena android hanya melaporkan peristiwa colokan kabel ke aplikasi yang sudah berjalan. Itu, dan hanya itu, alasan notifikasi tersebut ada.\n\nBluetooth tetap dilacak apa pun pilihannya.\n\nANGKA YANG BISA DIPERCAYA BERTAHUN-TAHUN KEMUDIAN\n\nTotal jangka panjang tidak ada artinya jika crash atau reboot diam-diam menambahkan dua belas jam. Jadi:\n\n• Sesi yang tertinggal terbuka akibat reboot atau crash ditutup pada detak jantung terakhir yang diketahui, tidak pernah lebih lambat dari saat ponsel menyala kembali. Waktu saat ponsel mati tidak pernah dihitung.\n• Jika headphone-mu masih terhubung setelah reboot, sesi baru dimulai alih-alih meregangkan sesi lama melintasi jeda tersebut.\n• Sesi dipantau secara berkala selama masih terbuka, sehingga kerusakan akibat koneksi terputus yang terlewat tetap terbatas.\n\nPRIVAT SECARA KONSTRUKSI\n\nylih tidak memiliki izin internet. Tidak ada akun, tidak ada analitik, tidak ada iklan, dan tidak ada pelacakan. Semuanya tersimpan dalam basis data di ponselmu — satu-satunya yang bisa menyalinnya keluar dari perangkat adalah cadangan bawaan Android, jika kamu mengaktifkannya.\n\nPengaturan → Ekspor menulis seluruh riwayatmu sebagai json yang bisa dibaca, dan Impor memulihkannya, sehingga pindah ke ponsel baru tidak pernah membuatmu kehilangan angka-angkamu.\n\nIZIN\n\n• Perangkat di sekitar (bluetooth): diperlukan untuk menerima peristiwa koneksi dan membaca nama headset. Tanpanya, pelacakan bluetooth sama sekali tidak bisa berjalan.\n• Notifikasi: hanya untuk notifikasi pelacakan detail.\n• Jalankan saat perangkat dinyalakan: untuk menutup sesi yang tidak pernah dilaporkan saat perangkat dimatikan.\n\nSumber terbuka dengan lisensi MIT.\n", "it-IT": "Le cuffie prima o poi si rompono. Prima che succeda, ylih risponde all'unica domanda che conta davvero: quante ore ci hai passato dentro?\n\nOgni volta che le cuffie si connettono, ylih segna quando. Ogni volta che si disconnettono, segna quando. Tutto qui — e siccome una connessione sono solo due orari, l'app non ha bisogno di restare in esecuzione per registrarli.\n\nCOSA REGISTRA\n\n• Le ore totali di ogni paio fisico. Quando un paio muore, ritiralo: il totale si congela e il paio successivo dello stesso modello riparte da zero, come generazione 2. I numeri vecchi non si mescolano mai con i nuovi.\n• Ogni sessione, conservata per sempre: connessione, disconnessione e il motivo per cui è finita.\n• Il tempo di riproduzione (opzionale): quanto di quel tempo stavi davvero ascoltando, così le cuffie appese al collo non contano.\n• Il costo orario, se inserisci quanto le hai pagate. È un numero molto soddisfacente da veder scendere.\n\nDUE MODALITÀ\n\nSolo bluetooth — quella predefinita. Non resta in esecuzione niente, non c'è nessuna notifica e non c'è consumo di batteria, perché android consegna gli eventi di connessione anche ad app chiuse.\n\nTracciamento dettagliato — opzionale. Aggiunge le cuffie via cavo e USB e misura la riproduzione rispetto al tempo di connessione. Richiede una notifica silenziosa a priorità minima, perché android segnala gli eventi del jack solo a un'app già in esecuzione. È l'unico motivo per cui quella notifica esiste.\n\nIl bluetooth è tracciato in entrambi i casi.\n\nNUMERI DI CUI FIDARSI ANNI DOPO\n\nUn totale a lungo termine non vale niente se un riavvio ci aggiunge dodici ore per sbaglio. Quindi:\n\n• Una sessione lasciata aperta da un crash o da un riavvio viene chiusa all'ultimo battito noto, mai dopo il momento in cui il telefono si è acceso. Il tempo a telefono spento non viene mai conteggiato.\n• Se le cuffie sono ancora connesse dopo un riavvio, parte una sessione nuova invece di allungare quella vecchia.\n• Le sessioni aperte vengono monitorate, così il danno di una disconnessione persa resta limitato.\n\nPRIVATA PER COSTRUZIONE\n\nylih non ha il permesso internet. Nessun account, nessuna analitica, nessuna pubblicità, nessun tracciamento. Tutto vive in un database sul tuo telefono: l'unica cosa che può copiarlo fuori dal dispositivo è il backup di Android, se lo hai attivo.\n\nImpostazioni → Esporta salva l'intera cronologia in JSON leggibile, e Importa la ripristina: cambiare telefono non ti costa i tuoi numeri.\n\nPERMESSI\n\n• Dispositivi nelle vicinanze (bluetooth): serve a ricevere gli eventi di connessione e a leggere il nome delle cuffie. Senza, il tracciamento bluetooth non può funzionare.\n• Notifiche: solo per la notifica del tracciamento dettagliato.\n• Avvio automatico: per chiudere le sessioni che lo spegnimento non ha mai segnalato.\n\nOpen source con licenza MIT.\n", "ja-JP": "ヘッドホンはいつか壊れる。その前に、ylihが本当に大事な問いに答える。あのヘッドホンは何時間使えたのか？\n\nヘッドホンが接続されるたびに、ylihはその時刻を記録する。切断されるたびに、その時刻も記録する。それだけだ。接続とは2つの時刻にすぎないので、このアプリは記録のためにバックグラウンドで動き続ける必要がない。\n\n記録する内容\n\n・物理的なペアごとの総利用時間。ペアが壊れたら引退させる — 合計時間はそこで固定され、同じ機種の次のペアはまたゼロから、世代2として始まる。古い数字が新しい数字と混ざることは決してない。\n・すべてのセッションを永久に保存：接続した時刻、切断した時刻、そして終わった理由。\n・再生時間（任意）：接続していた時間のうち、実際に音を再生していた時間はどれだけか。首にかけているだけの時間は聴いた時間として数えない。\n・1時間あたりのコスト。支払った金額を入力すれば計算される。数字が下がっていくのを見るのは気持ちがいい。\n\n2つのトラッキングモード\n\nbluetoothのみ — 既定のモード。アプリは何も動かず、通知欄にも何も表示されず、バッテリーへの負担もない。androidはアプリが閉じていても接続イベントを届けてくれるからだ。\n\n詳細トラッキング — 任意。有線とUSBのヘッドホンにも対応し、再生時間と接続時間の比較も測る。androidは実行中のアプリにしか有線プラグのイベントを知らせないため、サイレントで最小優先度の通知が1つ必要になる。この通知が存在する理由はそれだけだ。\n\nbluetoothはどちらのモードでも記録される。\n\n何年後でも信頼できる数字\n\nクラッシュや再起動のたびに12時間が勝手に加算されるようでは、長期的な合計はまったく意味がない。そこで：\n\n・再起動やクラッシュでセッションが開いたままになった場合は、最後に確認できた時点で終了扱いにする。電源が入った瞬間より後になることはない。電源が切れていた時間は決して数えない。\n・再起動後もヘッドホンがまだ接続されていれば、古いセッションを引き伸ばすのではなく、新しいセッションを開始する。\n・セッションが開いている間は定期的に確認しているので、切断を取りこぼした場合の被害も限定的だ。\n\n構造的にプライベート\n\nylihにはインターネットへのアクセス権限がない。アカウントもなければ、分析機能も、広告も、トラッキングもない。すべては端末上のデータベースに存在し、それを端末の外へ持ち出せるのは、有効にしている場合のAndroid自身のバックアップだけだ。\n\n設定 → エクスポートで、履歴全体を読みやすいJSONとして書き出せる。インポートでそれを復元できるので、機種変更で数字を失うことはない。\n\n権限\n\n・付近のデバイス（bluetooth）：接続イベントを受け取り、ヘッドホンの名前を読み取るために必要。これがないとbluetoothのトラッキングはまったく機能しない。\n・通知：詳細トラッキングの通知にのみ使用。\n・起動時の自動実行：シャットダウン時に報告されなかったセッションを終了させるため。\n\nMITライセンスのオープンソース。\n", "ko-KR": "헤드폰은 언젠가 고장 납니다. 그 전에 ylih는 헤드폰에 대해 정말 중요한 단 하나의 질문에 답합니다: 몇 시간이나 사용하셨나요?\n\n헤드폰이 연결될 때마다 ylih는 그 시각을 기록합니다. 연결이 끊길 때마다 그 시각도 기록합니다. 아이디어는 이게 전부입니다 — 그리고 연결이란 결국 두 개의 시각일 뿐이므로, 이 앱은 이를 위해 백그라운드에서 실행될 필요가 없습니다.\n\n기록하는 항목\n\n• 물리적인 헤드폰 한 쌍당 누적 사용 시간. 한 쌍이 수명을 다하면 은퇴시키세요 — 총합이 고정되고, 같은 모델의 다음 쌍은 세대 2로 다시 0부터 시작합니다. 예전 숫자와 새 숫자는 절대 섞이지 않습니다.\n• 모든 세션을 영구히 보관: 연결 시각, 연결 해제 시각, 그리고 종료된 이유.\n• 재생 시간 (선택 사항): 연결된 시간 중 실제로 오디오가 재생된 시간이 얼마나 되는지. 그래서 \"목에 걸어만 둔 시간\"은 청취로 계산되지 않습니다.\n• 구매 가격을 입력하면 시간당 비용을 계산합니다. 이 숫자가 떨어지는 걸 보는 건 꽤 만족스럽습니다.\n\n두 가지 추적 모드\n\n블루투스 전용 — 기본 모드입니다. 앱의 어떤 부분도 실행되지 않고, 알림창에 아무것도 남지 않으며, 배터리 소모도 없습니다. android가 앱이 꺼져 있어도 연결 이벤트를 전달해 주기 때문입니다.\n\n상세 추적 — 선택 사항입니다. 유선 및 usb 헤드폰을 추가하고, 재생 시간 대비 연결 시간을 측정합니다. android는 이미 실행 중인 앱에만 유선 연결 이벤트를 알려주기 때문에, 조용하고 우선순위가 가장 낮은 알림이 하나 필요합니다. 이 알림이 존재하는 이유는 오직 그것뿐입니다.\n\n블루투스는 어느 모드에서도 추적됩니다.\n\n몇 년 후에도 믿을 수 있는 숫자\n\n충돌이나 재부팅이 조용히 12시간을 더해 버린다면 장기 누적 숫자는 아무 의미가 없습니다. 그래서:\n\n• 재부팅이나 충돌로 열린 채 남은 세션은 마지막으로 확인된 하트비트 시점에 닫히며, 휴대폰이 부팅된 시점보다 늦게 닫히는 일은 없습니다. 휴대폰이 꺼져 있던 시간은 절대 계산되지 않습니다.\n• 재부팅 후에도 헤드폰이 계속 연결되어 있다면, 이전 세션을 그 공백까지 늘리는 대신 새 세션이 시작됩니다.\n• 세션이 열려 있는 동안에는 하트비트가 계속 확인되므로, 연결 해제를 놓치더라도 피해가 제한됩니다.\n\n구조적으로 프라이빗\n\nylih에는 인터넷 권한이 없습니다. 계정도, 분석 도구도, 광고도, 트래킹도 없습니다. 모든 것은 당신의 휴대폰 안 데이터베이스에 존재하며, 이를 기기 밖으로 복사할 수 있는 것은 사용 설정해 둔 경우의 안드로이드 자체 백업뿐입니다.\n\n설정 → 내보내기는 전체 기록을 읽기 쉬운 json 형식으로 저장하고, 가져오기는 이를 복원합니다. 그러니 새 휴대폰으로 옮겨도 숫자를 잃지 않습니다.\n\n권한\n\n• 주변 기기 (블루투스): 연결 이벤트를 받고 헤드셋 이름을 읽기 위해 필요합니다. 이 권한이 없으면 블루투스 추적 자체가 작동하지 않습니다.\n• 알림: 상세 추적 알림에만 사용됩니다.\n• 시작 시 실행: 종료 시 보고되지 않은 세션을 닫기 위해 사용됩니다.\n\nMIT 라이선스로 공개된 오픈소스입니다.\n", "nl-NL": "Koptelefoons gaan een keer stuk. Voordat het zover is, beantwoordt ylih de enige vraag die er echt toe doet: hoeveel uur heb je eruit gehaald?\n\nElke keer dat je koptelefoon verbindt, noteert ylih wanneer. Elke keer dat hij verbreekt, noteert het wanneer. Dat is het hele idee — en omdat een verbinding niet meer is dan twee tijdstippen, hoeft de app niet op de achtergrond te draaien om dit te doen.\n\nWAT HET BIJHOUDT\n\n• Levenslange uren per fysieke koptelefoon. Als een koptelefoon het begeeft, pensioneer je hem — het totaal bevriest, en de volgende koptelefoon van hetzelfde model begint weer bij nul, als generatie 2. Je oude cijfers worden nooit vermengd met de nieuwe.\n• Elke sessie, permanent bewaard: verbonden om, verbroken om, en waarom hij eindigde.\n• Afspeeltijd (optioneel): hoeveel van die verbonden tijd er echt audio afspeelde, zodat \"om mijn nek hangen\" niet meetelt als luisteren.\n• Kosten per uur, als je invoert wat je hebt betaald. Een bevredigend getal om te zien dalen.\n\nTWEE MANIEREN VAN BIJHOUDEN\n\nAlleen bluetooth — de standaard. Er draait niets van de app, er staat niets in je meldingenpaneel en er is geen batterijkost, omdat android verbindingsgebeurtenissen aan de app doorgeeft, ook terwijl die gesloten is.\n\nGedetailleerd bijhouden — optioneel. Voegt bekabelde en usb-koptelefoons toe en meet afspelen versus verbonden tijd. Hiervoor is één stille melding met minimale prioriteit nodig, omdat android bekabelde aansluitgebeurtenissen alleen meldt aan een app die al draait. Dat, en niets anders, is waarom die melding bestaat.\n\nBluetooth wordt hoe dan ook bijgehouden.\n\nCIJFERS DIE JE JAREN LATER NOG KUNT VERTROUWEN\n\nCijfers op lange termijn zijn waardeloos als een crash of een herstart er stilletjes twaalf uur bij optelt. Daarom:\n\n• Een sessie die openbleef door een herstart of crash wordt afgesloten op het laatst bekende hartslagmoment, nooit later dan het moment waarop de telefoon opstartte. Tijd dat de telefoon uitstond, telt nooit mee.\n• Als je koptelefoon na een herstart nog steeds verbonden is, begint een nieuwe sessie in plaats van dat de oude wordt opgerekt over de onderbreking.\n• Sessies krijgen een hartslag zolang ze open staan, zodat de schade van een gemiste verbreking beperkt blijft.\n\nPRIVÉ VAN NATURE\n\nylih heeft geen internettoegang. Geen accounts, geen analyse, geen advertenties en geen tracking. Alles staat in een database op je telefoon — alleen Androids eigen back-up kan die van het toestel af kopiëren, als je die aan hebt staan.\n\nInstellingen → Exporteren schrijft je hele geschiedenis als leesbare json, en Importeren zet die terug, zodat overstappen naar een nieuwe telefoon je nooit je cijfers kost.\n\nMACHTIGINGEN\n\n• Apparaten in de buurt (bluetooth): nodig om verbindingsgebeurtenissen te ontvangen en de naam van een koptelefoon te lezen. Zonder deze machtiging kan bluetooth-tracking helemaal niet werken.\n• Meldingen: alleen voor de melding van gedetailleerd bijhouden.\n• Uitvoeren bij opstarten: om sessies af te sluiten die het afsluiten nooit heeft gemeld.\n\nOpen source onder de MIT-licentie.\n", "no-NO": "Hodetelefoner dør. Før de gjør det, svarer ylih på det eneste spørsmålet som virkelig betyr noe for et par: hvor mange timer fikk du ut av dem?\n\nHver gang hodetelefonene dine kobles til, skriver ylih ned når. Hver gang de kobles fra, skriver den ned når. Det er hele ideen — og fordi en tilkobling bare er to tidsstempler, trenger ikke appen å kjøre i bakgrunnen for å gjøre det.\n\nHVA DEN SPORER\n\n• Levetidstimer per fysisk par. Når et par dør, pensjonerer du det — totalen fryses, og neste par av samme modell starter på nytt fra null som generasjon 2. De gamle tallene dine blandes aldri med de nye.\n• Hver økt, lagret permanent: tilkoblet når, frakoblet når, og hvorfor den endte.\n• Avspillingstid (valgfritt): hvor mye av den tilkoblede tiden som faktisk gikk til lydavspilling, slik at «hengende rundt halsen» ikke teller som lytting.\n• Kostnad per time, hvis du oppgir hva du betalte. Det er et tilfredsstillende tall å se synke.\n\nTO SPORINGSMODUSER\n\nKun bluetooth — standarden. Ingenting av appen kjører, ingenting ligger i varslingspanelet, og det koster ikke batteri, fordi android leverer tilkoblingshendelser til appen selv når den er lukket.\n\nDetaljert sporing — valgfritt. Legger til kablede hodetelefoner og usb-hodetelefoner, og måler avspilling mot tilkoblet tid. Den krever ett stille varsel med minimal prioritet, fordi android bare rapporterer kabelhendelser til en app som allerede kjører. Det, og ingenting annet, er hvorfor varselet finnes.\n\nBluetooth spores uansett.\n\nTALL DU KAN STOLE PÅ ÅR SENERE\n\nLangsiktige totaler er verdiløse hvis en krasj eller en omstart stille legger til tolv timer. Derfor:\n\n• En økt som blir stående åpen etter en omstart eller en krasj, avsluttes ved sitt siste kjente hjerteslag, aldri senere enn øyeblikket telefonen startet opp. Tid telefonen var avslått, telles aldri med.\n• Hvis hodetelefonene dine fortsatt er tilkoblet etter en omstart, starter en ny økt i stedet for at den gamle strekkes over gapet.\n• Økter får jevnlige hjerteslag mens de er åpne, slik at skaden fra en tapt frakobling begrenses.\n\nPRIVAT VED KONSTRUKSJON\n\nylih har ikke internett-tilgang. Det finnes ingen kontoer, ingen analyse, ingen reklame og ingen sporing av deg. Alt lever i en database på telefonen din — det eneste som kan kopiere den vekk fra enheten, er Androids egen sikkerhetskopiering, hvis du har den på.\n\nInnstillinger → Eksportér skriver hele historikken din som lesbar json, og Importér gjenoppretter den, slik at det aldri koster deg tallene dine å bytte til en ny telefon.\n\nTILLATELSER\n\n• Enheter i nærheten (bluetooth): kreves for å motta tilkoblingshendelser og lese navnet på et headset. Uten den kan ikke bluetooth-sporing fungere i det hele tatt.\n• Varsler: kun for varselet ved detaljert sporing.\n• Kjør ved oppstart: for å avslutte økter som nedstengingen aldri rapporterte.\n\nÅpen kildekode under MIT-lisensen.\n", "pl-PL": "Słuchawki w końcu się psują. Zanim to się stanie, ylih odpowiada na jedyne pytanie, które naprawdę liczy się w przypadku pary słuchawek: ile godzin z nich wyciągnąłeś?\n\nZa każdym razem, gdy słuchawki się łączą, ylih zapisuje kiedy. Za każdym razem, gdy się rozłączają, zapisuje kiedy. To cały pomysł — a ponieważ połączenie to tylko dwa znaczniki czasu, aplikacja nie musi działać w tle, żeby to robić.\n\nCO REJESTRUJE\n\n• Łączne godziny każdej fizycznej pary. Kiedy para umiera, wycofaj ją — suma zostaje zamrożona, a kolejna para tego samego modelu zaczyna znów od zera, jako generacja 2. Stare liczby nigdy nie mieszają się z nowymi.\n• Każdą sesję, przechowywaną na zawsze: kiedy połączono, kiedy rozłączono i dlaczego się skończyła.\n• Czas odtwarzania (opcjonalnie): ile z tego czasu połączenia faktycznie trwało odtwarzanie audio, więc \"wiszące na szyi\" się nie liczy jako słuchanie.\n• Koszt za godzinę, jeśli podasz, ile zapłaciłeś. To satysfakcjonująca liczba do obserwowania, jak spada.\n\nDWA TRYBY ŚLEDZENIA\n\nTylko bluetooth — domyślny. Nic z aplikacji nie działa, nic nie siedzi w powiadomieniach, i nie ma kosztu baterii, ponieważ android dostarcza zdarzenia połączenia do aplikacji nawet gdy jest zamknięta.\n\nSzczegółowe śledzenie — opcjonalne. Dodaje słuchawki przewodowe i USB oraz mierzy odtwarzanie w stosunku do czasu połączenia. Wymaga jednej cichej notyfikacji o minimalnym priorytecie, ponieważ android zgłasza zdarzenia podłączenia jacka tylko już działającej aplikacji. To, i nic więcej, jest powodem istnienia tej notyfikacji.\n\nBluetooth jest śledzony tak czy inaczej.\n\nLICZBY, KTÓRYM MOŻNA UFAĆ PO LATACH\n\nDługoterminowe sumy są bezwartościowe, jeśli awaria lub restart po cichu dodadzą dwanaście godzin. Więc:\n\n• Sesja pozostawiona otwartą przez restart lub awarię jest zamykana przy ostatnim znanym potwierdzeniu, nigdy później niż w momencie uruchomienia telefonu. Czas, gdy telefon był wyłączony, nigdy nie jest liczony.\n• Jeśli słuchawki są nadal połączone po restarcie, zaczyna się nowa sesja zamiast rozciągania starej na całą przerwę.\n• Otwarte sesje są regularnie potwierdzane, więc szkoda z powodu pominiętego rozłączenia jest ograniczona.\n\nPRYWATNA Z ZAŁOŻENIA\n\nylih nie ma uprawnienia dostępu do internetu. Nie ma kont, analityki, reklam ani śledzenia użytkownika. Wszystko żyje w bazie danych na twoim telefonie — skopiować ją poza urządzenie może tylko własna kopia zapasowa Androida, jeśli masz ją włączoną.\n\nUstawienia → Eksportuj zapisuje całą twoją historię jako czytelny JSON, a Importuj ją przywraca, więc przejście na nowy telefon nigdy nie kosztuje cię twoich liczb.\n\nUPRAWNIENIA\n\n• Urządzenia w pobliżu (bluetooth): wymagane do odbierania zdarzeń połączenia i odczytu nazwy słuchawek. Bez tego śledzenie bluetooth w ogóle nie może działać.\n• Powiadomienia: tylko dla notyfikacji szczegółowego śledzenia.\n• Uruchamianie przy starcie: aby zamykać sesje, o których zamknięcie systemu nigdy nie poinformowało.\n\nOpen source na licencji MIT.\n", "pt-BR": "Fones de ouvido morrem. Antes que isso aconteça, o ylih responde à única pergunta que realmente importa sobre um par: quantas horas você tirou deles?\n\nToda vez que seus fones conectam, o ylih anota quando. Toda vez que desconectam, anota quando também. É essa a ideia toda — e como uma conexão é só dois horários, o app não precisa ficar em execução em segundo plano para registrá-los.\n\nO QUE ELE REGISTRA\n\n• Horas totais de cada par físico. Quando um par morre, aposente-o — o total congela ali, e o próximo par do mesmo modelo começa de novo do zero, como geração 2. Seus números antigos nunca se misturam com os novos.\n• Cada sessão, guardada para sempre: quando conectou, quando desconectou e por quê.\n• Tempo de reprodução (opcional): quanto desse tempo conectado foi realmente áudio tocando, para que \"pendurado no pescoço\" não conte como uso.\n• Custo por hora, se você informar quanto pagou. É um número satisfatório de ver cair.\n\nDOIS MODOS DE RASTREAMENTO\n\nSomente bluetooth — o padrão. Nada do app fica em execução, nada ocupa sua barra de notificações, e não há custo de bateria, porque o android entrega os eventos de conexão ao app mesmo quando ele está fechado.\n\nRastreamento detalhado — opcional. Adiciona fones com fio e USB, e mede reprodução versus tempo conectado. Precisa de uma notificação silenciosa, de prioridade mínima, porque o android só informa eventos de conexão por cabo a um app que já está em execução. Só por isso ela existe.\n\nO bluetooth é rastreado de qualquer forma.\n\nNÚMEROS EM QUE VOCÊ PODE CONFIAR ANOS DEPOIS\n\nTotais de longo prazo não valem nada se uma falha ou uma reinicialização adicionarem doze horas silenciosamente. Por isso:\n\n• Uma sessão deixada aberta por uma reinicialização ou uma falha é fechada no último sinal conhecido, nunca depois do momento em que o telefone ligou. O tempo em que o telefone ficou desligado nunca é contado.\n• Se seus fones ainda estiverem conectados depois de uma reinicialização, uma sessão nova começa em vez de esticar a antiga pelo intervalo.\n• As sessões recebem sinais periódicos enquanto abertas, para limitar o estrago de uma desconexão perdida.\n\nPRIVADO POR CONSTRUÇÃO\n\nO ylih não tem permissão de internet. Não há contas, não há análises, não há anúncios e não há rastreamento de uso. Tudo vive em um banco de dados no seu telefone — a única coisa que pode copiá-lo para fora do aparelho é o backup do próprio Android, se você o mantiver ligado.\n\nAjustes → Exportar grava todo o seu histórico como JSON legível, e Importar o restaura, então trocar de telefone nunca custa seus números.\n\nPERMISSÕES\n\n• Dispositivos próximos (Bluetooth): necessário para receber eventos de conexão e ler o nome de um fone. Sem ela, o rastreamento por bluetooth simplesmente não funciona.\n• Notificações: só para a notificação do rastreamento detalhado.\n• Executar na inicialização: para fechar sessões que o desligamento nunca informou.\n\nCódigo aberto sob a licença MIT.\n", "ro": "Căștile mor, mai devreme sau mai târziu. Înainte să se întâmple, ylih răspunde la singura întrebare care contează cu adevărat despre o pereche: câte ore ai scos din ea?\n\nDe fiecare dată când căștile tale se conectează, ylih notează când. De fiecare dată când se deconectează, notează când. Asta e toată ideea — și, cum o conectare înseamnă doar două momente, aplicația nu trebuie să ruleze în fundal ca să le înregistreze.\n\nCE ÎNREGISTREAZĂ\n\n• Orele totale ale fiecărei perechi fizice. Când o pereche moare, retrage-o — totalul se blochează, iar următoarea pereche a aceluiași model pornește din nou de la zero, ca generația 2. Numerele vechi nu se amestecă niciodată cu cele noi.\n• Fiecare sesiune, păstrată pentru totdeauna: momentul conectării, al deconectării și motivul pentru care s-a încheiat.\n• Timpul de redare (opțional): cât din acel timp conectat s-a redat efectiv sunet, ca purtatul căștilor la gât fără muzică să nu conteze ca ascultare.\n• Costul pe oră, dacă introduci cât ai plătit pentru ele. E un număr satisfăcător de urmărit cum scade.\n\nDOUĂ MODURI DE URMĂRIRE\n\nDoar bluetooth — cel implicit. Nimic din aplicație nu rulează, nimic nu stă în bara de notificări, iar consumul de baterie e zero, pentru că android livrează evenimentele de conectare aplicației chiar și atunci când e închisă.\n\nUrmărire detaliată — opțională. Adaugă căștile prin cablu și USB și măsoară redarea față de timpul conectat. Are nevoie de o singură notificare silențioasă, cu prioritate minimă, pentru că android raportează evenimentele mufei doar unei aplicații deja pornite. Acesta, și numai acesta, e motivul pentru care există notificarea.\n\nBluetooth este urmărit oricum.\n\nNUMERE ÎN CARE POȚI AVEA ÎNCREDERE PESTE ANI\n\nTotalurile pe termen lung nu valorează nimic dacă o defecțiune sau o repornire adaugă în tăcere douăsprezece ore. Așadar:\n\n• O sesiune rămasă deschisă din cauza unei reporniri sau a unei defecțiuni este închisă la ultima ei confirmare cunoscută, niciodată mai târziu de momentul în care telefonul a pornit. Timpul cât telefonul a stat oprit nu este numărat niciodată.\n• Dacă căștile tale sunt încă conectate după o repornire, începe o sesiune nouă, în loc ca cea veche să fie întinsă peste pauză.\n• Sesiunile primesc confirmări periodice cât timp sunt deschise, ca daunele unei deconectări nesesizate să fie limitate.\n\nPRIVATĂ PRIN CONSTRUCȚIE\n\nylih nu are permisiune de internet. Nu există conturi, analitice, reclame sau urmărire în scopuri de marketing. Totul trăiește într-o bază de date de pe telefonul tău — singurul lucru care o poate copia în afara dispozitivului este copia de rezervă a Android, dacă o ai activată.\n\nSetări → Exportă scrie întreg istoricul tău ca JSON lizibil, iar Importă îl restaurează, așa că trecerea la un telefon nou nu te costă niciodată numerele tale.\n\nPERMISIUNI\n\n• Dispozitive din apropiere (Bluetooth): necesară pentru a primi evenimentele de conectare și a citi numele unor căști. Fără ea, urmărirea bluetooth nu poate funcționa deloc.\n• Notificări: doar pentru notificarea urmăririi detaliate.\n• Rulare la pornire: pentru a închide sesiunile pe care oprirea nu le-a raportat niciodată.\n\nOpen source, sub licența MIT.\n", "ru-RU": "Наушники рано или поздно ломаются. Прежде чем это случится, ylih отвечает на единственный по-настоящему важный вопрос: сколько часов вы из них выжали?\n\nКаждый раз, когда наушники подключаются, ylih записывает время. Каждый раз, когда отключаются, — тоже. Вот и всё — а поскольку подключение это всего лишь две отметки времени, приложению не нужно работать в фоне, чтобы их фиксировать.\n\nЧТО ОТСЛЕЖИВАЕТСЯ\n\n• Часы за весь срок службы каждой физической пары. Когда пара выходит из строя, спишите её — итог замирает, а следующая пара той же модели начинает отсчёт заново, с нуля, как поколение 2. Старые цифры никогда не смешиваются с новыми.\n• Каждая сессия хранится вечно: время подключения, время отключения и причина завершения.\n• Время воспроизведения (по желанию): сколько из этого времени реально шло звучание, чтобы наушники, просто висящие на шее, не считались прослушиванием.\n• Стоимость часа, если вы укажете, сколько заплатили за наушники. Приятно наблюдать, как это число падает.\n\nДВА РЕЖИМА ОТСЛЕЖИВАНИЯ\n\nТолько bluetooth — режим по умолчанию. Ничего не работает, в шторке уведомлений ничего нет, расход батареи нулевой, потому что android доставляет события подключения приложению, даже когда оно закрыто.\n\nПодробное отслеживание — по желанию. Добавляет проводные и usb-наушники и измеряет время воспроизведения относительно времени подключения. Требует одно тихое уведомление минимального приоритета, потому что android сообщает о событиях проводного подключения только уже запущенному приложению. Это единственная причина, по которой это уведомление существует.\n\nBluetooth отслеживается в любом случае.\n\nЦИФРЫ, КОТОРЫМ МОЖНО ДОВЕРЯТЬ ГОДЫ СПУСТЯ\n\nДолгосрочные итоги ничего не стоят, если сбой или перезагрузка незаметно добавляют двенадцать лишних часов. Поэтому:\n\n• Сессия, оставшаяся открытой из-за перезагрузки или сбоя, закрывается по последнему известному сигналу и никогда не позже момента загрузки телефона. Время, пока телефон был выключен, никогда не засчитывается.\n• Если наушники всё ещё подключены после перезагрузки, начинается новая сессия — вместо растягивания старой через весь промежуток.\n• Открытые сессии периодически проверяются, поэтому ущерб от пропущенного отключения ограничен.\n\nПРИВАТНОСТЬ ПО КОНСТРУКЦИИ\n\nУ ylih нет разрешения на доступ в интернет. Нет ни аккаунтов, ни аналитики, ни рекламы, ни отслеживания пользователя. Всё живёт в базе данных на вашем телефоне — скопировать её за пределы устройства может только собственное резервное копирование Android, если оно включено.\n\nНастройки → Экспорт сохраняет всю историю в читаемом json, а Импорт её восстанавливает, так что переход на новый телефон никогда не будет стоить вам ваших цифр.\n\nРАЗРЕШЕНИЯ\n\n• Устройства поблизости (bluetooth): нужно, чтобы получать события подключения и читать название гарнитуры. Без него bluetooth-отслеживание вообще не может работать.\n• Уведомления: только для уведомления подробного отслеживания.\n• Запуск при старте системы: чтобы закрывать сессии, о завершении которых выключение так и не сообщило.\n\nОткрытый исходный код по лицензии MIT.\n", "sv-SE": "Hörlurar dör förr eller senare. Innan de gör det svarar ylih på den enda frågan som verkligen spelar roll för ett par: hur många timmar fick du ut av dem?\n\nVarje gång dina hörlurar ansluts skriver ylih ner när. Varje gång de kopplas från skriver den ner när. Det är hela idén — och eftersom en anslutning bara är två tidsstämplar behöver appen inte köras i bakgrunden för att göra det.\n\nVAD DEN REGISTRERAR\n\n• Livstidstimmar per fysiskt par. När ett par dör, pensionera det — totalsumman fryses, och nästa par av samma modell börjar om från noll som generation 2. Dina gamla siffror blandas aldrig med de nya.\n• Varje session, sparad för alltid: anslutningstid, frånkopplingstid och varför den slutade.\n• Uppspelningstid (valfritt): hur mycket av den anslutna tiden som faktiskt spelade upp ljud, så att \"hänger runt halsen\" inte räknas som lyssning.\n• Kostnad per timme, om du anger vad du betalade. Det är en tillfredsställande siffra att se sjunka.\n\nTVÅ SPÅRNINGSLÄGEN\n\nEndast bluetooth — standardläget. Inget av appen körs, inget ligger i aviseringsfältet, och det finns ingen batterikostnad, eftersom android levererar anslutningshändelser till appen även när den är stängd.\n\nDetaljerad spårning — valfritt. Lägger till kabelanslutna och usb-hörlurar och mäter uppspelning i förhållande till anslutningstid. Kräver en tyst avisering med lägsta prioritet, eftersom android bara rapporterar kabelhändelser till en app som redan körs. Det, och inget annat, är varför aviseringen finns.\n\nBluetooth spåras i båda fallen.\n\nSIFFROR DU KAN LITA PÅ ÅRTIONDEN SENARE\n\nLångsiktiga totalsummor är värdelösa om en krasch eller omstart tyst lägger till tolv timmar. Så:\n\n• En session som lämnats öppen av en omstart eller krasch stängs vid sitt senast kända pulsslag, aldrig senare än det ögonblick telefonen startade om. Tid då telefonen var avstängd räknas aldrig med.\n• Om dina hörlurar fortfarande är anslutna efter en omstart startar en ny session, i stället för att den gamla sträcks ut över gapet.\n• Sessioner får pulsslag medan de är öppna, så skadan från en missad frånkoppling begränsas.\n\nPRIVAT PER KONSTRUKTION\n\nylih har ingen internetbehörighet. Det finns inga konton, ingen analys, ingen reklam och ingen spårning. Allt lever i en databas på din telefon — det enda som kan kopiera den från enheten är Androids egen säkerhetskopiering, om du har den påslagen.\n\nInställningar → Exportera sparar hela din historik som läsbar json, och Importera återställer den, så att byta telefon aldrig kostar dig dina siffror.\n\nBEHÖRIGHETER\n\n• Enheter i närheten (bluetooth): krävs för att ta emot anslutningshändelser och läsa ett headsets namn. Utan den kan bluetoothspårning inte fungera alls.\n• Aviseringar: endast för aviseringen om detaljerad spårning.\n• Kör vid start: för att stänga sessioner som avstängningen aldrig rapporterade.\n\nÖppen källkod under MIT-licensen.\n", "th": "หูฟังไม่ช้าก็เร็วต้องเสีย ก่อนที่มันจะเสีย ylih จะตอบคำถามเดียวที่สำคัญที่สุดเกี่ยวกับหูฟังคู่หนึ่ง นั่นคือคุณใช้งานมันไปกี่ชั่วโมง\n\nทุกครั้งที่หูฟังของคุณเชื่อมต่อ ylih จะบันทึกเวลาไว้ ทุกครั้งที่ตัดการเชื่อมต่อ ก็บันทึกเวลาไว้เช่นกัน แค่นั้นเอง และเนื่องจากการเชื่อมต่อหนึ่งครั้งคือเวลาสองจุดเท่านั้น แอปจึงไม่จำเป็นต้องทำงานอยู่เบื้องหลังเพื่อทำสิ่งนี้\n\nสิ่งที่แอปติดตาม\n\n• ชั่วโมงตลอดอายุการใช้งานของหูฟังแต่ละคู่ทางกายภาพ เมื่อหูฟังคู่หนึ่งพัง ให้เลิกใช้มัน ยอดรวมจะหยุดนิ่ง และหูฟังรุ่นเดียวกันคู่ถัดไปจะเริ่มนับใหม่จากศูนย์ในฐานะรุ่นที่ 2 ตัวเลขเก่าจะไม่ปะปนกับตัวเลขใหม่เด็ดขาด\n• ทุกช่วงการใช้งานถูกเก็บไว้ถาวร: เวลาที่เชื่อมต่อ เวลาที่ตัดการเชื่อมต่อ และเหตุผลที่จบลง\n• เวลาการเล่นเสียง (ตัวเลือกเสริม): เวลาที่เชื่อมต่ออยู่นั้นมีการเล่นเสียงจริงเท่าไร เพื่อไม่ให้ \"คล้องคออยู่เฉยๆ\" ถูกนับเป็นการฟัง\n• ค่าใช้จ่ายต่อชั่วโมง หากคุณกรอกราคาที่จ่ายไป เป็นตัวเลขที่น่าพอใจเมื่อเห็นมันลดลง\n\nสองโหมดการติดตาม\n\nเฉพาะบลูทูธ — โหมดค่าเริ่มต้น ไม่มีส่วนใดของแอปทำงานอยู่ ไม่มีการแจ้งเตือนค้างอยู่ และไม่เสียแบตเตอรี่เลย เพราะ android ส่งเหตุการณ์การเชื่อมต่อให้แอปแม้ในขณะที่ปิดอยู่\n\nการติดตามแบบละเอียด — ตัวเลือกเสริม เพิ่มหูฟังแบบมีสายและ usb และวัดเวลาการเล่นเสียงเทียบกับเวลาที่เชื่อมต่อ ต้องมีการแจ้งเตือนแบบเงียบและความสำคัญต่ำสุดหนึ่งรายการ เพราะ android จะรายงานเหตุการณ์เสียบสายให้เฉพาะแอปที่กำลังทำงานอยู่เท่านั้น นั่นคือเหตุผลเดียวที่มีการแจ้งเตือนนี้\n\nบลูทูธถูกติดตามอยู่แล้วไม่ว่าจะเลือกโหมดใด\n\nตัวเลขที่เชื่อถือได้แม้ผ่านไปหลายปี\n\nยอดรวมระยะยาวจะไร้ค่าหากการรีสตาร์ทหรือแอปขัดข้องแอบเพิ่มเวลาสิบสองชั่วโมงเข้าไปโดยไม่รู้ตัว ดังนั้น:\n\n• ช่วงการใช้งานที่ค้างอยู่จากการรีสตาร์ทหรือแอปขัดข้อง จะถูกปิดที่การแจ้งเตือนล่าสุดที่ทราบ ไม่มีทางช้ากว่าเวลาที่โทรศัพท์บูตขึ้นมา เวลาที่โทรศัพท์ปิดอยู่จะไม่ถูกนับรวมเด็ดขาด\n• หากหูฟังยังเชื่อมต่ออยู่หลังการรีสตาร์ท จะเริ่มช่วงการใช้งานใหม่แทนการยืดช่วงเดิมข้ามช่วงเวลาที่ขาดหายไป\n• ช่วงการใช้งานที่เปิดอยู่จะถูกตรวจสอบเป็นระยะ เพื่อจำกัดความเสียหายจากการตัดการเชื่อมต่อที่พลาดไป\n\nเป็นส่วนตัวโดยการออกแบบ\n\nylih ไม่มีสิทธิ์เข้าถึงอินเทอร์เน็ต ไม่มีบัญชีผู้ใช้ ไม่มีการวิเคราะห์ข้อมูล ไม่มีโฆษณา และไม่มีการติดตามพฤติกรรม ทุกอย่างอยู่ในฐานข้อมูลบนโทรศัพท์ของคุณ สิ่งเดียวที่คัดลอกข้อมูลออกไปนอกเครื่องได้คือการสำรองข้อมูลของ Android เอง หากคุณเปิดใช้งานไว้\n\nตั้งค่า → ส่งออก จะบันทึกประวัติทั้งหมดของคุณเป็นไฟล์ json ที่อ่านได้ และนำเข้าจะกู้คืนมันกลับมา การย้ายไปโทรศัพท์เครื่องใหม่จึงไม่ทำให้คุณเสียตัวเลขที่สะสมไว้\n\nสิทธิ์การเข้าถึง\n\n• อุปกรณ์ใกล้เคียง (บลูทูธ): จำเป็นสำหรับรับเหตุการณ์การเชื่อมต่อและอ่านชื่อของหูฟัง หากไม่มีสิทธิ์นี้ การติดตามบลูทูธจะทำงานไม่ได้เลย\n• การแจ้งเตือน: ใช้เฉพาะการแจ้งเตือนของการติดตามแบบละเอียดเท่านั้น\n• เรียกใช้เมื่อเริ่มระบบ: เพื่อปิดช่วงการใช้งานที่การปิดเครื่องไม่เคยรายงานไว้\n\nโอเพนซอร์สภายใต้สัญญาอนุญาต MIT\n", "tr-TR": "Kulaklıklar er ya da geç bozulur. Bu olmadan önce ylih, bir kulaklık çifti hakkında gerçekten önemli olan tek soruyu yanıtlar: kaç saat kullandın?\n\nKulaklıkların her bağlandığında ylih ne zaman olduğunu kaydeder. Her bağlantı kesildiğinde de ne zaman olduğunu kaydeder. Fikrin tamamı bu — ve bir bağlantı sadece iki zaman damgası olduğundan, uygulamanın bunu yapmak için arka planda çalışmasına gerek yoktur.\n\nNELERİ İZLER\n\n• Her fiziksel çift için ömür boyu saat. Bir çift bozulduğunda emekliye ayır — toplam donar ve aynı modelin bir sonraki çifti 2. nesil olarak sıfırdan başlar. Eski sayıların yenileriyle karışması asla olmaz.\n• Her oturum kalıcı olarak saklanır: bağlanma zamanı, bağlantı kesilme zamanı ve neden bittiği.\n• Çalma süresi (isteğe bağlı): o bağlı sürenin ne kadarında gerçekten ses çaldı, böylece \"boynuna asılı durması\" dinleme sayılmaz.\n• Saat başına maliyet, ne kadar ödediğini girersen. Düşüşünü izlemek tatmin edici bir sayıdır.\n\nİKİ TAKİP MODU\n\nYalnızca bluetooth — varsayılan mod. Uygulamanın hiçbir parçası çalışmaz, bildirim alanında hiçbir şey durmaz ve pil maliyeti yoktur; çünkü android bağlantı olaylarını uygulama kapalıyken bile iletir.\n\nAyrıntılı takip — isteğe bağlı. Kablolu ve USB kulaklıkları ekler, çalma süresini bağlı süreyle karşılaştırarak ölçer. Sessiz, minimum öncelikli tek bir bildirim gerektirir; çünkü android kablo takma olaylarını yalnızca zaten çalışan bir uygulamaya bildirir. Bildirimin var olmasının tek sebebi budur.\n\nBluetooth her iki modda da takip edilir.\n\nYILLAR SONRA BİLE GÜVENİLİR SAYILAR\n\nBir çökme ya da yeniden başlatma sessizce on iki saat eklerse uzun vadeli toplamların hiçbir değeri kalmaz. Bu yüzden:\n\n• Bir yeniden başlatma ya da çökme yüzünden açık kalan bir oturum, son bilinen kalp atışında kapanır — telefonun açıldığı andan daha geç asla değil. Telefonun kapalı geçirdiği süre hiçbir zaman sayılmaz.\n• Kulaklıklar bir yeniden başlatmadan sonra hâlâ bağlıysa, eski oturum boşluğun üzerine uzatılmak yerine yeni bir oturum başlar.\n• Oturumlar açıkken kalp atışıyla izlenir, böylece kaçırılan bir bağlantı kesilme olayının zararı sınırlı kalır.\n\nYAPISI GEREĞİ GİZLİ\n\nylih'in internet izni yoktur. Hesap yok, analitik yok, reklam yok, takip yok. Her şey telefonundaki bir veritabanında yaşar; onu cihazın dışına kopyalayabilecek tek şey, açıksa Android'in kendi yedeklemesidir.\n\nAyarlar → Dışa Aktar, tüm geçmişini okunabilir JSON olarak yazar; İçe Aktar da onu geri yükler — yeni bir telefona geçmek sayılarını asla kaybettirmez.\n\nİZİNLER\n\n• Yakındaki cihazlar (bluetooth): bağlantı olaylarını almak ve bir kulaklığın adını okumak için gerekir. Bu izin olmadan bluetooth takibi hiç çalışamaz.\n• Bildirimler: yalnızca ayrıntılı takip bildirimi için.\n• Başlangıçta çalıştır: kapanışın hiç bildirmediği oturumları kapatmak için.\n\nMIT lisansıyla açık kaynak.\n", "uk": "Навушники рано чи пізно виходять з ладу. Перш ніж це станеться, ylih відповідає на єдине питання, яке справді важливе про пару навушників: скільки годин ти в них провів?\n\nЩоразу, коли навушники підключаються, ylih записує коли. Щоразу, коли вони відключаються, записує коли. Оце й уся ідея — і оскільки з'єднання це лише дві мітки часу, застосунку не потрібно працювати у фоні, щоб це робити.\n\nЩО ВІН ВІДСТЕЖУЄ\n\n• Загальні години кожної фізичної пари. Коли пара виходить з ладу, спиши її — підсумок зупиняється, а наступна пара тієї самої моделі знову починає з нуля, як генерація 2. Старі цифри ніколи не змішуються з новими.\n• Кожну сесію, збережену назавжди: коли підключено, коли відключено і чому це закінчилося.\n• Час відтворення (за бажанням): скільки з того часу підключення насправді відтворювався звук, тож \"навушники висіли на шиї\" не рахується за прослуховування.\n• Вартість за годину, якщо вказати, скільки заплачено. Це приємне число спостерігати, як воно спадає.\n\nДВА РЕЖИМИ ВІДСТЕЖЕННЯ\n\nЛише bluetooth — типовий режим. Нічого із застосунку не працює, нічого не сидить у шторці сповіщень, і немає витрат акумулятора, бо android доставляє події підключення застосунку, навіть коли він закритий.\n\nДетальне відстеження — необов'язкове. Додає дротові та usb-навушники й вимірює відтворення відносно часу підключення. Потребує одного тихого сповіщення з мінімальним пріоритетом, бо android повідомляє про підключення дротового роз'єму лише запущеному застосунку. Це єдина причина, чому те сповіщення існує.\n\nBluetooth відстежується у будь-якому разі.\n\nЦИФРИ, ЯКИМ МОЖНА ДОВІРЯТИ РОКАМИ ПІЗНІШЕ\n\nДовгострокові підсумки нічого не варті, якщо збій чи перезавантаження тихо додають дванадцять годин. Тому:\n\n• Сесія, залишена відкритою через перезавантаження чи збій, закривається за останнім відомим сигналом, ніколи не пізніше моменту, коли телефон увімкнувся. Час, поки телефон був вимкнений, ніколи не рахується.\n• Якщо навушники все ще підключені після перезавантаження, починається нова сесія, замість того щоб розтягувати стару на весь цей проміжок.\n• Поки сесія відкрита, вона отримує регулярні сигнали, тож шкода від пропущеного відключення обмежена.\n\nПРИВАТНІСТЬ ЗА КОНСТРУКЦІЄЮ\n\nylih не має дозволу на інтернет. Немає облікових записів, аналітики, реклами чи стеження. Усе живе в базі даних на твоєму телефоні — скопіювати її за межі пристрою може лише власне резервне копіювання Android, якщо воно ввімкнене.\n\nНалаштування → Експортувати зберігає всю історію як читабельний json, а Імпортувати відновлює її, тож перехід на новий телефон ніколи не коштує тобі твоїх цифр.\n\nДОЗВОЛИ\n\n• Пристрої поблизу (bluetooth): потрібен, щоб отримувати події підключення та читати назву гарнітури. Без нього bluetooth-відстеження взагалі не працюватиме.\n• Сповіщення: лише для сповіщення детального відстеження.\n• Запуск при старті: щоб закривати сесії, про які вимкнення так і не повідомило.\n\nВідкритий код за ліцензією MIT.\n", "vi": "Tai nghe rồi cũng sẽ hỏng. Trước khi điều đó xảy ra, ylih trả lời câu hỏi duy nhất thực sự quan trọng về một đôi tai nghe: bạn đã dùng được bao nhiêu giờ?\n\nMỗi lần tai nghe kết nối, ylih ghi lại thời điểm đó. Mỗi lần chúng ngắt kết nối, ylih cũng ghi lại thời điểm đó. Chỉ vậy thôi — và vì một lần kết nối chỉ là hai mốc thời gian, ứng dụng không cần chạy nền để làm việc này.\n\nNHỮNG GÌ ĐƯỢC GHI LẠI\n\n• Số giờ trọn đời của từng đôi tai nghe vật lý. Khi một đôi hỏng, hãy cho nó nghỉ hưu — tổng thời gian dừng lại, và đôi tiếp theo cùng mẫu bắt đầu lại từ số 0, gọi là thế hệ 2. Số liệu cũ không bao giờ bị trộn lẫn với số liệu mới.\n• Mọi phiên kết nối, được lưu vĩnh viễn: thời điểm kết nối, thời điểm ngắt kết nối và lý do kết thúc.\n• Thời gian phát nhạc (tùy chọn): bao nhiêu phần trong thời gian kết nối đó thực sự đang phát âm thanh, để việc \"đeo quanh cổ\" không được tính là đang nghe.\n• Chi phí mỗi giờ, nếu bạn nhập số tiền đã trả. Đây là con số rất thỏa mãn khi nhìn nó giảm dần.\n\nHAI CHẾ ĐỘ THEO DÕI\n\nChỉ bluetooth — mặc định. Không có gì của ứng dụng chạy nền, không có gì nằm trong thanh thông báo, và không tốn pin, vì android vẫn gửi sự kiện kết nối cho ứng dụng ngay cả khi nó đã đóng.\n\nTheo dõi chi tiết — tùy chọn. Thêm tai nghe có dây và USB, đồng thời đo thời gian phát nhạc so với thời gian kết nối. Cần một thông báo im lặng, ưu tiên thấp nhất, vì android chỉ báo sự kiện cắm tai nghe có dây cho một ứng dụng đang chạy. Đó là lý do duy nhất khiến thông báo đó tồn tại.\n\nBluetooth luôn được theo dõi trong cả hai chế độ.\n\nNHỮNG CON SỐ CÓ THỂ TIN CẬY SAU NHIỀU NĂM\n\nTổng số liệu dài hạn sẽ vô nghĩa nếu một lần treo máy hay khởi động lại âm thầm cộng thêm mười hai giờ. Vì vậy:\n\n• Một phiên bị bỏ ngỏ do khởi động lại hoặc treo máy sẽ được đóng lại ở lần báo nhịp cuối cùng đã biết, không bao giờ trễ hơn thời điểm điện thoại khởi động. Thời gian điện thoại tắt nguồn không bao giờ được tính.\n• Nếu tai nghe vẫn đang kết nối sau khi khởi động lại, một phiên mới sẽ bắt đầu thay vì kéo dài phiên cũ qua khoảng gián đoạn đó.\n• Các phiên đang mở được báo nhịp định kỳ, nên thiệt hại từ một lần ngắt kết nối bị bỏ lỡ luôn có giới hạn.\n\nRIÊNG TƯ NGAY TỪ THIẾT KẾ\n\nylih không có quyền truy cập internet. Không có tài khoản, không phân tích dữ liệu, không quảng cáo và không theo dõi người dùng. Mọi thứ nằm trong một cơ sở dữ liệu trên điện thoại của bạn — thứ duy nhất có thể sao chép nó ra khỏi thiết bị là bản sao lưu của chính Android, nếu bạn bật tính năng đó.\n\nCài đặt → Xuất json ghi lại toàn bộ lịch sử của bạn dưới dạng JSON có thể đọc được, và Nhập sẽ khôi phục lại, nên việc chuyển sang điện thoại mới không bao giờ khiến bạn mất đi số liệu của mình.\n\nQUYỀN TRUY CẬP\n\n• Thiết bị lân cận (Bluetooth): cần thiết để nhận sự kiện kết nối và đọc tên của tai nghe. Nếu không có quyền này, việc theo dõi bluetooth hoàn toàn không hoạt động được.\n• Thông báo: chỉ dùng cho thông báo của chế độ theo dõi chi tiết.\n• Chạy khi khởi động: để đóng các phiên mà lần tắt máy trước đó không kịp báo lại.\n\nMã nguồn mở theo giấy phép MIT.\n", "zh-CN": "耳机迟早会用坏。在那之前,ylih 会回答关于一副耳机唯一真正重要的问题:你用它听了多少个小时?\n\n每次耳机连接,ylih 都会记下时间。每次断开,它也会记下时间。这就是整个想法——正因为一次连接只是两个时间戳,应用根本不需要在后台运行就能完成记录。\n\n记录内容\n\n• 每副实体耳机的总使用时长。耳机报废后,将其退役——总时长就此定格,同款耳机的下一副会以第 2 代的身份从零开始计算,新旧数字永远不会混在一起。\n• 每一次连接,永久保存:连接时间、断开时间,以及结束的原因。\n• 播放时长(可选):这段连接时间里,有多少是真正在播放音频,这样挂在脖子上就不会被算作在听。\n• 每小时成本,只要你填写购买价格。看着这个数字不断下降会很有成就感。\n\n两种追踪模式\n\n仅蓝牙——默认模式。应用不运行任何程序,通知栏中不会出现任何内容,也没有额外的电量消耗,因为 Android 即使在应用关闭时也会将连接事件传递给它。\n\n详细追踪——可选。可记录有线和 USB 耳机,并统计播放时间与连接时间的比例。它需要一条静默的最低优先级通知,因为 Android 只会把有线插拔事件报告给正在运行的应用。这也是这条通知存在的唯一原因。\n\n无论哪种模式,蓝牙耳机都会被追踪。\n\n多年后依然可信的数字\n\n如果一次崩溃或重启悄悄多算了十二个小时,长期的总时长就毫无意义了。因此:\n\n• 因重启或崩溃而未能正常关闭的连接,会在其最后一次已知的心跳时刻关闭,且绝不会晚于手机开机的那一刻。手机关机期间的时间永远不会被计入。\n• 如果耳机在重启后仍处于连接状态,应用会开始一段全新的连接,而不是把旧的连接跨过这段间隔硬拉长。\n• 连接处于打开状态时会持续发送心跳,因此即使漏掉一次断开事件,造成的误差也是有限的。\n\n从设计上就保证隐私\n\nylih 没有联网权限。没有账户,没有分析统计,没有广告,也没有追踪。一切都保存在你手机上的本地数据库中——唯一能把它复制到设备之外的,是 Android 自带的备份功能,前提是你开启了它。\n\n设置 → 导出 会把你的全部历史记录写成可读的 JSON 文件,导入 则可以将其恢复,因此换新手机也不会让你丢失自己的数字。\n\n权限\n\n• 附近的设备(蓝牙):用于接收连接事件并读取耳机名称。没有这项权限,蓝牙追踪就完全无法工作。\n• 通知:仅用于详细追踪功能的通知。\n• 开机自启:用于关闭那些因关机而未能正常上报的连接。\n\n基于 MIT 许可协议开源。\n", "zh-TW": "耳機遲早會壞。在那之前，ylih 會回答關於一副耳機唯一真正重要的問題：你究竟用了它多少小時？\n\n耳機每次連線，ylih 都會記下時間；每次斷線，也會記下時間。就是這麼簡單——因為一次連線就只是兩個時間戳記，所以應用程式根本不需要在背景持續執行。\n\n它會記錄什麼\n\n• 每副實體耳機的累積時數。耳機壞掉時，將它退役——總時數就此凍結，換上同款新耳機會作為第 2 代重新從零開始，舊的數字永遠不會與新的混在一起。\n• 每一次連線都會永久保存：連線時間、斷線時間，以及結束的原因。\n• 播放時間（選用）：那段連線時間中，實際在播放音訊的比例，讓「掛在脖子上」不會被算作在聽。\n• 每小時使用成本，只要輸入購買金額即可。看著這個數字慢慢下降，會很有成就感。\n\n兩種追蹤模式\n\n僅藍牙——預設模式。應用程式不會執行任何東西，通知欄不會出現任何通知，也不會消耗額外電量，因為即使應用程式已關閉，android 仍會將連線事件傳遞給它。\n\n詳細追蹤——選用。加入有線與 USB 耳機，並測量播放時間與連線時間的比例。它需要一則無聲、最低優先度的通知，因為 android 只會將有線插拔事件回報給已在執行中的應用程式，這也是這則通知存在的唯一原因。\n\n無論選擇哪種模式，藍牙都會被追蹤。\n\n多年後仍可信賴的數字\n\n如果一次當機或重新開機悄悄多算了十二小時，長期累積的總時數就毫無意義。因此：\n\n• 因重新開機或當機而未正常結束的連線，會在最後一次已知的心跳時間點結束，絕不會晚於手機開機的那一刻。手機關機期間的時間，永遠不會被計入。\n• 如果耳機在重新開機後仍保持連線，會開始一次全新的連線，而不是把舊的連線硬拉長跨越這段空窗期。\n• 連線保持開啟時會持續發送心跳，藉此限制漏接一次斷線訊號所造成的誤差。\n\n從架構上就注重隱私\n\nylih 沒有網路權限。沒有帳號、沒有分析追蹤、沒有廣告，也沒有任何形式的追蹤。所有資料都只存在於你手機上的資料庫中——唯一能將它複製到裝置之外的，是 Android 內建的備份功能，前提是你已啟用。\n\n「設定 → 匯出」會將完整歷史紀錄寫成可讀的 json 檔案，「匯入」則可將其還原，因此換新手機也不會讓你失去這些數字。\n\n權限\n\n• 鄰近裝置（藍牙）：接收連線事件並讀取耳機名稱所必需。沒有這項權限，藍牙追蹤將完全無法運作。\n• 通知：僅用於詳細追蹤功能的通知。\n• 開機時啟動：用於結束那些因關機而從未被回報的連線。\n\n以 MIT 授權開放原始碼。\n"}, "icon": {"en-US": {"name": "/it.eldavo.ylih/en-US/icon__H4UM0-5iuvQgnFZ3XVFDcaXKLOZXg2yyoS3j-Itoaw=.png", "sha256": "fc7e14334fb98aebd0827159dd75450dc69728b3995e0db2ca84b78fe22da1ac", "size": 17957}}, "preferredSigner": "ba4f1511f0d1e49d468387ab6fac6b2df748b887e7018f8ebe4fccd207cf417a"}, "versions": {"e45acabd086dd0c49ab818e267b972b1228fede317c0061f36fc6c8cacd88747": {"added": 1786749285772, "file": {"name": "/it.eldavo.ylih_5.apk", "sha256": "e45acabd086dd0c49ab818e267b972b1228fede317c0061f36fc6c8cacd88747", "size": 3684226, "ipfsCIDv1": "bafybeiayxxcd7rsxf44bhzmnkp6froecd4wz4afc5aesoaf4pvypqtvrdu"}, "src": {"name": "/it.eldavo.ylih_5_src.tar.gz", "sha256": "ee4c39bdbb3582f614a73a1d67d7275e058b554df1be3238b73eb1759caa1a4a", "size": 1292626}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.1.3", "versionCode": 5, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 37}, "signer": {"sha256": ["ba4f1511f0d1e49d468387ab6fac6b2df748b887e7018f8ebe4fccd207cf417a"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "it.eldavo.ylih.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"ar": "• تغييرات في البناء والتحزيم فقط. لا شيء يتغيّر على الشاشة.\n", "da-DK": "• Kun ændringer i build og pakning. Der ændrer sig intet på skærmen.\n", "de-DE": "• Nur Änderungen an Build und Paketierung. Auf dem Bildschirm ändert sich nichts.\n", "en-US": "• Build and packaging changes only. Nothing changes on screen.\n", "es-ES": "• Solo cambios en la compilación y el empaquetado. En pantalla no cambia nada.\n", "fi-FI": "• Vain koonti- ja paketointimuutoksia. Näkymässä ei muutu mitään.\n", "fr-FR": "• Uniquement des changements de compilation et d'empaquetage. Rien ne change à l'écran.\n", "hi-IN": "• केवल बिल्ड और पैकेजिंग से जुड़े बदलाव। स्क्रीन पर कुछ नहीं बदलता।\n", "hu-HU": "• Csak build- és csomagolási változások. A képernyőn semmi sem változik.\n", "id": "• Hanya perubahan build dan pemaketan. Tidak ada yang berubah di layar.\n", "it-IT": "• Solo modifiche alla build e al confezionamento. Sullo schermo non cambia nulla.\n", "ja-JP": "• ビルドとパッケージングの変更のみです。画面上の変更はありません。\n", "ko-KR": "• 빌드와 패키징 관련 변경뿐입니다. 화면에서 바뀌는 것은 없습니다.\n", "nl-NL": "• Alleen wijzigingen in build en verpakking. Op het scherm verandert er niets.\n", "no-NO": "• Kun endringer i bygging og pakking. Ingenting endrer seg på skjermen.\n", "pl-PL": "• Tylko zmiany w kompilacji i pakowaniu. Na ekranie nic się nie zmienia.\n", "pt-BR": "• Apenas mudanças de compilação e empacotamento. Nada muda na tela.\n", "ro": "• Doar modificări de compilare și împachetare. Pe ecran nu se schimbă nimic.\n", "ru-RU": "• Только изменения в сборке и упаковке. На экране ничего не меняется.\n", "sv-SE": "• Endast ändringar i bygge och paketering. Ingenting ändras på skärmen.\n", "th": "• เปลี่ยนเฉพาะการบิลด์และการแพ็กเกจเท่านั้น ไม่มีอะไรเปลี่ยนบนหน้าจอ\n", "tr-TR": "• Yalnızca derleme ve paketleme değişiklikleri. Ekranda hiçbir şey değişmiyor.\n", "uk": "• Лише зміни у збірці та пакуванні. На екрані нічого не змінюється.\n", "vi": "• Chỉ thay đổi về build và đóng gói. Không có gì thay đổi trên màn hình.\n", "zh-CN": "• 仅涉及构建与打包的改动。界面没有任何变化。\n", "zh-TW": "• 僅涉及建置與封裝的變更。畫面沒有任何變化。\n"}}}}, "it.niedermann.nextcloud.deck": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"1db57f372103bd5e2d5cdeb3c5dc625f3ef8abb59e675449579b425d0c37fbb6": null, "e7152b3062658082f5abdf7bdfdbb90c170155f557f598a799d0c9967dfaa6d5": {"added": 1786749285772, "file": {"name": "/it.niedermann.nextcloud.deck_1026003.apk", "sha256": "e7152b3062658082f5abdf7bdfdbb90c170155f557f598a799d0c9967dfaa6d5", "size": 21109064, "ipfsCIDv1": "bafybeibbflj5melqtmda6uu7l7p3u7dfzmjdhgmaklvs2wirxwgnewnwnq"}, "src": {"name": "/it.niedermann.nextcloud.deck_1026003_src.tar.gz", "sha256": "14a0cbca732498bdd2541d97567df1ff3a8b07dc10d3d3ccb8830218da362c08", "size": 9551838}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.26.3", "versionCode": 1026003, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["ea929cafc33a6ca77392809f53b1daf80992c4a83f4d11433200174493aebe93"]}, "usesPermission": [{"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.GET_ACCOUNTS"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "it.niedermann.nextcloud.deck.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "1.26.3\n\n- 🐞 fix: Focused fields weren't scrolled into view when soft keyboard appears\n\n1.26.2\n\n- 🎨 fix: Fix hex representation of color chooser to strip alpha\n\n1.26.1\n\n- 🐞 fix: Show tips when parsing response fails\n\n1.26.0\n\n- 🎨 feat: Card colors\n- 🐞 fix: Fix several crash causes when editing cards\n- ⚙️ chore: Update dependencies"}}, "1b8493353b306632e5586704e7a3c90edfadabd8dd64d064dc9fee8de0ff7e03": {"whatsNew": {"en-US": "- 🎨 fix: Fix hex representation of color chooser to strip alpha"}}}}, "it.niedermann.owncloud.notes": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"097f053ceb1d5c5ac5118fb81d3cbe349a36d08f2a0f9d8824552cb5f7faee40": null, "4ea7eae850ae379fc60e1bead1fc1f3022d9e9fc64ac30d559263f5d42068534": {"added": 1786866775484, "file": {"name": "/it.niedermann.owncloud.notes_340000190.apk", "sha256": "4ea7eae850ae379fc60e1bead1fc1f3022d9e9fc64ac30d559263f5d42068534", "size": 25554760, "ipfsCIDv1": "bafybeigu4ugmdvnuei554xgxcur23crvzscrzmfsz3fyekxubr3bmdh37a"}, "src": {"name": "/it.niedermann.owncloud.notes_340000190_src.tar.gz", "sha256": "edfb3735e4f1a030a58318fde81f2f8aca4a71be76d673995f9241e8e56c70be", "size": 4753365}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "34.0.1", "versionCode": 340000190, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["3e80f32df2c89e4cdd3a32f1002178d8d4f21b9da89f8add6abae29fd3c95c0b"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "com.owncloud.android.providers.PERMISSION"}, {"name": "android.permission.GET_ACCOUNTS"}, {"name": "android.permission.AUTHENTICATE_ACCOUNTS"}, {"name": "android.permission.MANAGE_ACCOUNTS"}, {"name": "android.permission.USE_CREDENTIALS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "it.niedermann.owncloud.notes.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Bug fixes and performance improvements"}}, "08ec2ca548d5f106bd597f8a223f8053731e514179812f339f07857be8d50ffa": {"releaseChannels": null}}}, "jp.nonbili.nora": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"893d54f15a071a308dfcecb806520bb7cfe54f2aa489fc59241a47cf74350d74": null, "8d4f3ad2276b1687903ff8b3e6924cb5264a0efbd0efbc461b7600d0e417ca76": null, "d29ab756a7b507c9c509c798f38dc885261e2fe22e07eeb2bf53b615ce67510b": {"added": 1786866775484, "file": {"name": "/jp.nonbili.nora_9004.apk", "sha256": "d29ab756a7b507c9c509c798f38dc885261e2fe22e07eeb2bf53b615ce67510b", "size": 52205004, "ipfsCIDv1": "bafybeieq64vptnipitydmame7pgbwqj7zhrjuosunqktcsz54zc66z2mxq"}, "src": {"name": "/jp.nonbili.nora_9004_src.tar.gz", "sha256": "5852323034e814a02d8b2eb8caa09f426d36d7b288211831a06d92488ecff974", "size": 125920117}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.8.6", "versionCode": 9004, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["ee16655fc04d22824004be97657a9e7ccac3dd4982f049188702ded52cda2126"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "jp.nonbili.nora.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Rely on Instagram, Reddit, Threads and X"}}, "whatsNew": {"en-US": "- Add tab context menus and tab group/layout options in desktop mode\n- Add option to hide Facebook feed\n- Fix top of page touch interaction when toolbar is hidden\n- Fix settings crash on certain locales\n- Fix rendering on secondary displays in desktop mode\n- Enlarge header action touch targets\n- Translation updates\n"}}, "a0e80cb7af1ff7523e118473a73bde3c216fb1beb0e9ad8229fb8889f977fdc0": {"added": 1786866775484, "file": {"name": "/jp.nonbili.nora_9003.apk", "sha256": "a0e80cb7af1ff7523e118473a73bde3c216fb1beb0e9ad8229fb8889f977fdc0", "size": 44881410, "ipfsCIDv1": "bafybeia5yb477bsnerik2yeaaegf7dj6hcuetlvnldzihrtlfra5ivrhvu"}, "src": {"name": "/jp.nonbili.nora_9003_src.tar.gz", "sha256": "019bc1870a4690947c9820f5531018f01aaf3dc06e5352af98f9d8c7ee4433da", "size": 125922119}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "0.8.6", "versionCode": 9003, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["ee16655fc04d22824004be97657a9e7ccac3dd4982f049188702ded52cda2126"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "jp.nonbili.nora.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Rely on Instagram, Reddit, Threads and X"}}}}}, "jp.nonbili.noutube": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"2d8c89e99446fdb4f860ee549dbc91fb6bcee75e2429843108c44be4e6abd830": null, "e8761ce11df3d929384426ee725ef7ddc8cc9f11772ca675e7dbe83b288b5e6c": null, "7b24a395bbd3066ead43192507247891d9a62f04f9064869ac553fa9dd1c59c6": {"added": 1786749285772, "file": {"name": "/jp.nonbili.noutube_7104.apk", "sha256": "7b24a395bbd3066ead43192507247891d9a62f04f9064869ac553fa9dd1c59c6", "size": 67269910, "ipfsCIDv1": "bafybeidm5qpxirrzvqy6jzor4ljjnbt363b32rv7iqcxosp7bj3b2qffjq"}, "src": {"name": "/jp.nonbili.noutube_7104_src.tar.gz", "sha256": "2db74e8e41d8be1d55737e2520ef8e0ab4e00bac7b0202819131241c2efb643f", "size": 148070196}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.6.6", "versionCode": 7104, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["75807654fe0a952397951e5068be3abafc54704d3c49522951f10497a2c91555"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "jp.nonbili.noutube.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Rely on YouTube and YouTube Music"}}, "whatsNew": {"en-US": "- Add lock button in fullscreen player\n- Make media notification progress seekable\n- Add distraction-free toggles for home feed, related videos, and end screens\n- Add bookmark moving to menu and undoable removal\n- Improve bookmark library layout and reorganize settings\n- Fix YouTube double-tap seek and player title display\n- Fix settings crash on certain locales\n- Fix rendering issues on secondary displays in desktop mode\n"}}, "fa2a69f4be5729ee302e1436be4fab7744ac92b71cd09527c9ed977943c73d9a": {"added": 1786749285772, "file": {"name": "/jp.nonbili.noutube_7103.apk", "sha256": "fa2a69f4be5729ee302e1436be4fab7744ac92b71cd09527c9ed977943c73d9a", "size": 64320854, "ipfsCIDv1": "bafybeidjjvflupspaunfmrwekewxideru453i3hsxbpay62x6tkzzhfccq"}, "src": {"name": "/jp.nonbili.noutube_7103_src.tar.gz", "sha256": "ead6f4114436126a66f36c8aaf98b414ddfd68b9333e2aa3e69e51e4f77046bc", "size": 148056277}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "0.6.6", "versionCode": 7103, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["75807654fe0a952397951e5068be3abafc54704d3c49522951f10497a2c91555"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.SYSTEM_ALERT_WINDOW"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.BLUETOOTH"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "jp.nonbili.noutube.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Rely on YouTube and YouTube Music"}}}}}, "m.co.rh.id.a_personal_stuff": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"3faa85b4e0306b102846a35ff40c43b6c9dcbac64b0291abfea807ae57731b97": null, "cb392bc325bba32fee7d70c3f1ee8df2c47c27f69553ad449239a6f8e01f69d9": {"added": 1786749285772, "file": {"name": "/m.co.rh.id.a_personal_stuff_21.apk", "sha256": "cb392bc325bba32fee7d70c3f1ee8df2c47c27f69553ad449239a6f8e01f69d9", "size": 7362683, "ipfsCIDv1": "bafybeiag5t3r5m7vy65yxgih4vu3zocffw3mzvbh44bakeqfaj2ssbdoli"}, "src": {"name": "/m.co.rh.id.a_personal_stuff_21_src.tar.gz", "sha256": "6fc21b6d99d2e1fe585181972213209f08473cadfac0d2dd78a0e14a7ba47022", "size": 3891269}, "manifest": {"versionName": "1.7.0", "versionCode": 21, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 37}, "signer": {"sha256": ["c83db6a257a89823e56d3e84de93f68e620d89f05da1f5f4d087a2fde8a40854"]}, "usesPermission": [{"name": "android.permission.CAMERA"}, {"name": "android.permission.FLASHLIGHT"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "m.co.rh.id.a_personal_stuff.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "Release 1.7.0+21\n\nNeue Funktionen:\n* Artikelkäufe/-erwerb verfolgen\n* Neue Bestandsbewegungen-Seite, die Verwendungen und Käufe in einer einzigen Zeitleiste kombiniert, mit Summen pro Gruppe und einer Zusammenfassung: Anfangsbestand - Verbraucht + Gekauft = Restbestand\n* Benutzerbearbeitbares Verwendungsdatum/-uhrzeit für Verwendungen hinzufügen\n* Listen-Zeilen-Miniaturansichten mit Tippen zum Vergrößern für Verwendungen, Käufe und Wartungen (auch von Bestandsbewegungen geerbt)\n\nFehlerbehebungen", "en-US": "Release 1.7.0+21\n\nFeatures:\n* Track item purchases/acquisitions\n* New Stock Movements page combining usages and purchases into a single timeline, with per-group totals and an Initial - Used + Bought = Remaining summary\n* Add a user-editable Usage Date Time to usages\n* List-row thumbnails with tap-to-zoom for usages, purchases, and maintenances (also inherited by Stock Movements)\n\nFixes:\n* Stock Movements rows were missing their images\n* Item list \"more actions\" popup dividers were invisible on h", "et": "Release 1.7.0+21\n\nUued funktsioonid:\n* Jälgige esemete ostu/soetamist\n* Uus Lao liikumiste leht, kus käsutused ja ostud on kombineeritud ühte ajaskaalasse, koos gruppikaupa summade ja kokkuvõttega: Algne - Kasutatud + Ostetud = Jäänud\n* Kasutajate poolt redigeeritava Kasutuse Kuupäev/Kellaaeg lisamine kasutustele\n* Loendirea pisipildid, mida saab suumida klõpsuga, kasutuste, ostude ja hoolduste jaoks (päritud ka Lao liikumistele)\n\nVeaparandused:\n* Lao liikumiste ridadel puudusid pildid\n* Esemete", "fr-FR": "Release 1.7.0+21\n\nNouvelles fonctionnalités :\n* Suivre les achats/acquisitions d'articles\n* Nouvelle page Mouvements de stock combinant les utilisations et les achats dans une seule chronologie, avec des totaux par groupe et un résumé Initial - Utilisé + Acheté = Restant\n* Ajouter une Date/Heure d'utilisation modifiable par l'utilisateur aux utilisations\n* Miniatures de ligne de liste avec appui pour zoomer pour les utilisations, achats et maintenances (également hérité par les Mouvements de sto", "id": "Release 1.7.0+21\n\nFitur Baru:\n* Lacak pembelian/perolehan item\n* Halaman Pergerakan Stok baru yang menggabungkan penggunaan dan pembelian dalam satu linimasa, dengan total per grup dan ringkasan Awal - Terpakai + Dibeli = Sisa\n* Tambahkan Tanggal/Waktu Penggunaan yang dapat diedit pengguna ke penggunaan\n* Thumbnail baris daftar dengan ketuk untuk zum untuk penggunaan, pembelian, dan pemeliharaan (juga diwarisi oleh Pergerakan Stok)\n\nPerbaikan:\n* Baris Pergerakan Stok kehilangan gambar mereka\n* P", "is-IS": "Release 1.7.0+21\n\nNýir eiginleikar:\n* Fylgstu með kaupum/öðrum pónum á hluti\n* Nýr Birgðahreyfingar síða sem sameinar notkun og kaupa í eina tímalínu, með sumrum fyrir hóp og útskýringu með Upphaflegt - Notað + Keypt = Eftir\n* Bæta við notkvemlegri Notkunardagsetningu/tíma í notkun\n* Smámyndir í listaröðum með þrekkju til að stækka fyrir notkun, kaup og viðhald (einni erft af Birgðahreyfingar)\n\nVilluleiðréttingar:\n* Birgðahreyfingar raðir vantar myndirnar sínar\n* Skilgreinir í \"fleiri aðgerðir\" ", "it-IT": "Release 1.7.0+21\n\nNuove funzionalità:\n* Traccia acquisti/acquisizioni di articoli\n* Nuova pagina Movimenti di magazzino che combina utilizzi e acquisti in una singola timeline, con totali per gruppo e un riepilogo Iniziale - Usato + Comprato = Rimanente\n* Aggiungi Data/Ora Utilizzo modificabile dall'utente agli utilizzi\n* Miniature riga elenco con tocco per zoom per utilizzi, acquisti e manutenzioni (ereditato anche dai Movimenti di magazzino)\n\nCorrezioni:\n* Le righe Movimenti di magazzino manca", "nb-NO": "Release 1.7.0+21\n\nNye funksjoner:\n* Spor varekjøp/anskaffelser\n* Ny Lagerbevegelser-side som kombinerer bruk og kjøp i en enkelt tidslinje, med totaler per gruppe og en Startbeholdning - Brukt + Kjøpt = Gjenstående oppsummering\n* Legg til brukerredigerbar Bruksdato/-tid for bruk\n* Liste-rad-miniatyrbilder med trykk for å forstørre for bruk, kjøp og vedlikehold (også arvet av Lagerbevegelser)\n\nFeilrettinger:\n* Lagerbevegelser-rader manglet bildene sine\n* Skillelinjer i vareliste \"flere handlinger", "nn-NO": "Release 1.7.0+21\n\nNye funksjonar:\n* Spor varekjøp/anskaffingar\n* Ny Lagerbevegningar-side som kombinerer bruk og kjøp i ei enkel tidslinje, med totalar per gruppe og ein Startbeholdning - Brukt + Kjøpt = Attverande oppsummering\n* Legg til brukarredigerbar Bruksdato/-tid for bruk\n* Listerekkje-miniatyrbilete med trykk for å forstørra for bruk, kjøp og vedlikehald (også arva av Lagerbevegningar)\n\nFeilrettingar:\n* Lagerbevegningar-rekkjer mangla bileta sine\n* Skillelinjer i vareliste \"fleire handli", "rm": "Release 1.7.0+21\n\nNovas funcziuns:\n* Folgir cumpras/acquisiziuns d'objects\n* Nova pagina Moviments da provisiun che cumbina utilisaziuns e cumpras en ina singula lingia da temp, cun totals per grup e ina resuma Inizial - Duvrà + Cumprà = Restà\n* Agiuntar ina Data/Ura da utilisaziun editabla da l'utilisador a las utilisaziuns\n* Miniaturas da lingia da glista cun tip per zoomar per utilisaziuns, cumpras e manutenziuns (eretà era da ils Moviments da provisiun)\n\nCorecziuns:\n* Las lingias da Moviment"}}}}, "me.hackerchick.catima": {"metadata": {"lastUpdated": 1786749285772, "screenshots": {"wear": {"en-US": [{"name": "/me.hackerchick.catima/en-US/wearScreenshots/screenshot-01.png", "sha256": "acf55fda7a6c9f76e7d491f054f243bbed3eccca1991a218d87d29dcc3e41f66", "size": 22742}, {"name": "/me.hackerchick.catima/en-US/wearScreenshots/screenshot-02.png", "sha256": "e59a90bb8f35c155deb5a35764d0e8958850b2367fc5f13638bf1b3f04716611", "size": 29502}, {"name": "/me.hackerchick.catima/en-US/wearScreenshots/screenshot-03.png", "sha256": "0fbd98a7867aff102b17b33c6a2af3b164bb313979c790a9a5e4dc6e54ed4178", "size": 7935}]}}, "description": {"en-US": "Stop the search for plastic reward cards during store or webshop checkout.\n<b>Scan barcodes to your device using its camera, forget about cards.</b>\n\nForget your wallet, or keep it ultralight for valuables.\n\nWith this essential everyday carry (EDC) tool you can replace useless plastic with cash.\n\n- Avoid spying with very few permissions. No Internet access and no ads.\n- Add cards or codes with names and customizable colours.\n- Manual code entry if there is no barcode to store, or it can't be used.\n- Import cards and codes from files, Catima, FidMe, Loyalty Card Keychain and Voucher Vault.\n- Make a backup of all your cards and transfer them to a new device if you want.\n- Share coupons, exclusive offers, promo codes, or cards and codes using any app.\n- Sync with supported Gadgetbridge or Wear OS smartwatches.\n- Dark theme and accessibility options for vision impaired users.\n- Made for everyone by the libre software community.\n- Localized hand-made translations for 40+ languages.\n- Gratis, supported by community contributions.\n- Use, study, change and share it as you wish; <i>with all</i>.\n- Not only Free Software / Open Source. <i>Copylefted</i> libre software (GPLv3+) card management.\n\nSimplify your life and shopping, and never lose a paper receipt, in-store payment gift card or airplane ticket again.\nTake all your rewards and bonuses with you, and save as you go.\n"}}, "versions": {"fe31fe2e48e071aa396e939b7187c5ddb07728f1331e942926d25a59cbdecaab": {"added": 1786749285772, "file": {"name": "/me.hackerchick.catima_1001.apk", "sha256": "fe31fe2e48e071aa396e939b7187c5ddb07728f1331e942926d25a59cbdecaab", "size": 5250458, "ipfsCIDv1": "bafybeiertv53d3prbobs644qrp64cndazgt2jnqquudoexyovzziyjbqra"}, "src": {"name": "/me.hackerchick.catima_1001_src.tar.gz", "sha256": "abf7c0acb2361b4a8b6dea62c3f7987aa5fa2b2601b070fd43abbb641a35ccfc", "size": 4017481}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.45.0 (F-Droid)", "versionCode": 1001, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["62864db787cc31928dc2c114673cdbb017beabb13ba6df6ae5256e738bb953ae"]}, "usesPermission": [{"name": "android.permission.CAMERA"}, {"name": "android.permission.NFC"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 23}, {"name": "me.hackerchick.catima.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "b65c7a6d55c962097b8551244537cce5ec7415657f43af65388865ca26b5bc57": {"whatsNew": {"cs-CZ": "- Přidána možnost otevření obrázku v interním prohlížeči obrázků v galerii\n", "de-DE": "- Option hinzugefügt, um Bilder aus dem integrierten Bildbetrachter in der Galerie App zu öffnen\n", "fr-FR": "- Ajout d'option dans le visualisateur interne d'images pour ouvrir l'image dans la galerie d'images\n", "it-IT": "- Aggiunta l'opzione per aprire l'immagine nel visualizzatore interno della galleria\n", "nl-NL": "- Optie toegevoegd om afbeeldingen te openen in interne weergavesoftware in gallerij\n", "pl-PL": "- Dodano opcję otwierania zdjęć w wbudowanej przeglądarce zdjęć galerii\n", "pt-BR": "- Adiciona a opção para abrir imagens no visualizador interno da galeria\n", "sl": "- Dodana možnost odpiranja slike v vgrajenem pregledovalniku slik v galeriji\n"}}, "4105e0f1f8e53893d6294729c39f974ee9248f3a8caede5b6e1192d475888a17": {"whatsNew": {"sl": "- Preprečitev sesutja sistema na napravah z nepravilno delujočim NFC-jem\n"}}, "4f01f40d06d82fc5b8cfbbc5eccd083151a86564fbd4fa420eb54aaebf668b71": {"added": 1786749285772, "file": {"name": "/me.hackerchick.catima_1002.apk", "sha256": "4f01f40d06d82fc5b8cfbbc5eccd083151a86564fbd4fa420eb54aaebf668b71", "size": 5250454, "ipfsCIDv1": "bafybeifb2nqxpfcxz4zrrovbcqscjoc7gxcqeko4trap2ttmbtem5omwlq"}, "src": {"name": "/me.hackerchick.catima_1002_src.tar.gz", "sha256": "4d4a7d4c876bf1c09e2aed0a6c0afb4a27f78cce362641a941c6c774a8411b85", "size": 4017471}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2.45.0", "versionCode": 1002, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 36}, "signer": {"sha256": ["d405cd69ede4c22074c328fb825689a84ab3fca4b3fdf0b6cc1333af62c67eb3"]}, "usesPermission": [{"name": "android.permission.CAMERA"}, {"name": "android.permission.NFC"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 23}, {"name": "me.hackerchick.catima.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Add a Bluetooth server for Wear OS companion app support\n- Remove embedded CHANGELOG"}}, "41e6d52eb0ee104d9f0b22d01ae4254a2c609d832c2557252cd9a0a5d38f662d": {"added": 1786749285772, "file": {"name": "/me.hackerchick.catima_200.apk", "sha256": "41e6d52eb0ee104d9f0b22d01ae4254a2c609d832c2557252cd9a0a5d38f662d", "size": 1393889, "ipfsCIDv1": "bafybeieplnr2jzoptgf5kfqcrcu3hvxrqwsfpp3k6tjajzfxazcjs22lla"}, "src": {"name": "/me.hackerchick.catima_200_src.tar.gz", "sha256": "ae6509c5675125df44f6516bbe8ccf65f7e3691e2895ab66edc818d7f05de3cb", "size": 4017421}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.0.0 Wear OS", "versionCode": 200, "features": [{"name": "android.hardware.type.watch"}], "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["d405cd69ede4c22074c328fb825689a84ab3fca4b3fdf0b6cc1333af62c67eb3"]}, "usesPermission": [{"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "me.hackerchick.catima.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "- Initial release of Wear OS companion app"}}}}, "net.diffengine.romandigitalclock": {"metadata": {"lastUpdated": 1786866775484, "screenshots": {"phone": {"en-US": [{"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p1.png", "sha256": "a52f17e71e9e067979669a0a1a15e2ee7404afc84d3bcfc4804a8411040c733e", "size": 229449}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p10.jpg", "sha256": "8795707e2178b6304e685fde5734e314dd8bb2e60e3f799760523792045be684", "size": 32830}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p11.jpg", "sha256": "c1c01425300752ae0b5c8182ab0e75f351bbe27b09232e8c1a8e763b3e31fa9c", "size": 30701}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p2.png", "sha256": "0a88033f7547710f5627fca4bb68569f2f007f52199408a78c66849790f9941d", "size": 178769}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p3.png", "sha256": "fc90bfaa84d86da48906021b6e37d18e7e1af70d8398ce23db01e6501b7a0f51", "size": 101100}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p4.png", "sha256": "0c75f04e833f321d7c1cd0b766a9edf89d58845d326a4a532365fc6b02597599", "size": 179339}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p5.png", "sha256": "560b09ed415eca2beab248f5d431dbe6603837f416e782bff087bc264f673a14", "size": 95773}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p6.png", "sha256": "7eb3af1b1715611607705065b7a809ec11e5713c6e51df4eb0e17bc91f30e86a", "size": 209917}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p7.png", "sha256": "b29b487ddb9c9bb9090558eece953d3dec9e394046a97c4cf7166671f15a55dd", "size": 214959}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p8.png", "sha256": "f4cb1096660e7d29d7b65c0cd5d9e7b63cfd8ea28205038c515236d1fd05abba", "size": 210714}, {"name": "/net.diffengine.romandigitalclock/en-US/phoneScreenshots/p9.png", "sha256": "2b92b2a5a9c7516240d7ebbf6fb5ec763de7370f1bea5ca822fe710cc3f7a834", "size": 225389}]}, "tenInch": {"en-US": [{"name": "/net.diffengine.romandigitalclock/en-US/tenInchScreenshots/pA.png", "sha256": "b71092f3e22fdb29ee17b7eeed4dd7e368b17f9486f83adb64e6919d65c1c201", "size": 192420}, {"name": "/net.diffengine.romandigitalclock/en-US/tenInchScreenshots/pB.png", "sha256": "0b5fa5558a923d8a58302d9a5951838351f1cf78e95ac4fd0b0ddff4cc1df584", "size": 189074}, {"name": "/net.diffengine.romandigitalclock/en-US/tenInchScreenshots/pC.png", "sha256": "2b2f559ac55987a9852eb444d6d93d7764d3f27cad7411240fc8056a2c2bcb1c", "size": 188310}, {"name": "/net.diffengine.romandigitalclock/en-US/tenInchScreenshots/pD.png", "sha256": "41d6f80fe5ab9be98820bf3b762f73b9b4c5f35cf0728c657acd53be4c8d11fb", "size": 183225}]}}, "description": {"en-US": "The RomanDigital app provides a clock of unique style that can be used to repurpose an old device or to display time on a current model.\n\nFor more personal use, the RomanDigital widget makes a distinctive addition to a device's Home screen.\n\nRomanDigital includes features expected in an ordinary digital clock, such as:\n* Choice of 12 or 24 hour format\n* Optional AM/PM indicator (uniquely integrated into the time display)\n* Option to keep display on when app is in the foreground\n* Display in either portrait or landscape\n\nRomanDigital also includes:\n* Independent configuration of app and widgets.\n* Selectable app and widget time display layout between horizontal and vertical.\n* Selectable app and widget time display typeface (monospace, sans-serif, or serif).\n* Variable widget background opacity that can be set from 0% to 100% by tens.\n* Selectable widget time zone.\n* Selectable widget layouts to add a time zone label.\n* Selectable app time display color.\n\nFor more detailed information including a FAQ list, please see the README.md file accompanying the RomanDigital source code.\n\nFor those interested in placing RomanDigital on their phone's lock screen in the case where the phone doesn't support placing custom widgets there, please see the aforementioned FAQ for a possible workaround.\n\nSource code for RomanDigital is available at:\nhttps://github.com/dfyockey/RomanDigital"}}, "versions": {"8a9f34b3f709c6d546c4ef9434e133a937aed42a1a6a38d9e8aeeaf7ddd4619f": null, "dec5739b4b91ff3876d380b06f1c464fa46634013db70791926224222841af6a": {"added": 1786866775484, "file": {"name": "/net.diffengine.romandigitalclock_18.apk", "sha256": "dec5739b4b91ff3876d380b06f1c464fa46634013db70791926224222841af6a", "size": 9312020, "ipfsCIDv1": "bafybeicoaiujlwhi42zy6oqim2iegwfxl2q3m2qhwtu25idjxe4c7cvzm4"}, "src": {"name": "/net.diffengine.romandigitalclock_18_src.tar.gz", "sha256": "b92b5b463f10fac261fc58c1f5f365717d5e7ecef2566b6adba43aa40000f764", "size": 7264920}, "manifest": {"versionName": "3.1.0", "versionCode": 18, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 35}, "signer": {"sha256": ["48a768c4ced584b930fe9315333a131e653426e5ceb16bfa5de12dc9403db0f4"]}, "usesPermission": [{"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "net.diffengine.romandigitalclock.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Added:\n* Vertical time display layout (hours above minutes), independently selectable for the app and each widget.\n\nChanged:\n* Minimum widget cell size to 1x1.\n\nFixed:\n* Crash resulting from ForegroundServiceStartNotAllowedException being thrown. The fix in version 3.0.2 was found to only be effective under test conditions. Apologies to users who have experienced a crash due to this issue.\n* Lack of sufficient space on a widget, under some circumstances, for a time zone label to be properly disp"}}}}, "net.koofr.vault": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"21bd9981e7267313dbb155c24b03a9a27bfc7a59077148c582d53e2d54ca0729": null, "463e9d52a1347915760c38b08a1af15eb3dd6d9043a1fc1815e2505678447d08": {"added": 1786866775484, "file": {"name": "/net.koofr.vault_126001.apk", "sha256": "463e9d52a1347915760c38b08a1af15eb3dd6d9043a1fc1815e2505678447d08", "size": 69603647, "ipfsCIDv1": "bafybeicz3ukuvn5ka7yolen33c25k3verlstyliwhvv3kvh5dardjsp3fi"}, "src": {"name": "/net.koofr.vault_126001_src.tar.gz", "sha256": "9ea2cec06ddb19557beebff980f7eeb9815d7d25a870393ff4b2b8a64fd837eb", "size": 9188547}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.1.26", "versionCode": 126001, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["1b0be4f09e706575192c0a6ca23aee6c5c409de5a647dbf79b8bebdc128c2d62"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "net.koofr.vault.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Depends on koofr.eu servers"}}}}}, "net.thunderbird.android": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"f98236bc59f261c839a5928831b75ef134838b1cf9d87d71547ce0b289c68c0a": null, "4a1875bb1cf4293c468048e56a91d16818653f7d6e646642dff7486dfbf0732d": {"added": 1786749285772, "file": {"name": "/net.thunderbird.android_30.apk", "sha256": "4a1875bb1cf4293c468048e56a91d16818653f7d6e646642dff7486dfbf0732d", "size": 10772899, "ipfsCIDv1": "bafybeictdhkk5wmpicvgxlplbn7cemruvwq3z55hck7c2sfkcfwgavtixi"}, "src": {"name": "/net.thunderbird.android_30_src.tar.gz", "sha256": "08050d98ce78bb4661af63f41758de019971570b72c11ad1eb3f61d05c46df99", "size": 39084987}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "22.0", "versionCode": 30, "usesSdk": {"minSdkVersion": 23, "targetSdkVersion": 35}, "signer": {"sha256": ["b6524779b3dbbc5ac17a5ac271ddb29dcfbf723578c238e03c3c217811356dd1"]}, "usesPermission": [{"name": "android.permission.CAMERA"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC", "maxSdkVersion": 33}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "net.thunderbird.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Thunderbird version 22.0\n\nNew:\n- Incognito Keyboard privacy setting\n- Thundermail interim screen when adding account\n\nChanged:\n- Selected sort option now shows indicator in sort menu\n\nFixed:\n- Messages could scroll horizontally when content fit screen\n- Thread deletion confirmation incorrectly said only one message would be deleted\n- Notification actions difficult to scroll/reorder on small screen\n- Show Headers collapsed multi-line email headers into single line\n"}}}}, "net.yumicoradio.android": {"metadata": {"added": 1786866775484, "categories": ["Radio"], "issueTracker": "https://github.com/Pixwell85/YumiCoRadio-Android/issues", "lastUpdated": 1786866775484, "license": "GPL-3.0-or-later", "sourceCode": "https://github.com/Pixwell85/YumiCoRadio-Android", "webSite": "https://yumicoradio.net", "screenshots": {"phone": {"en-US": [{"name": "/net.yumicoradio.android/en-US/phoneScreenshots/1.jpg", "sha256": "6693233fa103d8b756723a7fa4333df9076f46c146c61569e3baece5aa1da55b", "size": 394875}, {"name": "/net.yumicoradio.android/en-US/phoneScreenshots/2.jpg", "sha256": "f58dcc606e8a9ed4a3e8303bb8ef0bc6a7bf17c1e26ab998fe39f70bb31de9d6", "size": 245133}, {"name": "/net.yumicoradio.android/en-US/phoneScreenshots/3.jpg", "sha256": "f549dbf8dcebb990c0c136f2e79064ae58854df79baae462f638ec3fdee381a7", "size": 261368}, {"name": "/net.yumicoradio.android/en-US/phoneScreenshots/4.jpg", "sha256": "377faa874ffd36a65e63d54b72a819fc61130934f5e9d0a66f0e18294b8b917d", "size": 147981}, {"name": "/net.yumicoradio.android/en-US/phoneScreenshots/5.jpg", "sha256": "f2810f50b7b458c0f7e5097a475e4ab56077c0f979c55aa45a94f06718c643f1", "size": 128161}, {"name": "/net.yumicoradio.android/en-US/phoneScreenshots/6.jpg", "sha256": "444c910a73cec4e697149930b634cddba7b39b011c1f52cad485977adea08ec2", "size": 258210}]}}, "authorName": "Yumi Co. Radio", "name": {"en-US": "Yumi Co. Radio"}, "summary": {"en-US": "Listen to Yumi Co. Radio — Future Funk, City Pop, Nu Disco, Vaporwave."}, "description": {"en-US": "Yumi Co. Radio is a 24/7 net radio playing Future Funk, City Pop, Nu Disco and\nVaporwave. This is the official native Android player, wrapped in an authentic\nWindows 98 look.\n\nTap play and listen anywhere: playback keeps running in the background and on the\nlock screen, with full notification and Bluetooth controls. Now-playing shows the\nlive track, artist, album art and listener count, and a \"recently played\" list\nlets you look back over the last songs. Pick your stream quality (256 or 128 kbps),\nset a sleep timer, or share what's on the air.\n\nBuilt for the car: Yumi Co. Radio supports Android Auto, so you can start the live\nstream and see the current track right from your dashboard.\n\nNo ads, no accounts, no tracking of any kind. Free and open source (GPLv3).\n"}, "icon": {"en-US": {"name": "/net.yumicoradio.android/en-US/icon_vKQoN3-5Wc6vXXJ3l_rcRse70B42S9JE9Im5oi-BYH4=.png", "sha256": "bca428377fb959ceaf5d727797fadc46c7bbd01e364bd244f489b9a22f81607e", "size": 212516}}, "preferredSigner": "b38b45180743f0de2632a64b2fe40c0519f2a535dda11e998b5bfaf132d01077"}, "versions": {"6bc1cdbfd38658d156cb29cca559186842370dc024990db3179ffe85a58f9234": {"added": 1786866775484, "file": {"name": "/net.yumicoradio.android_100.apk", "sha256": "6bc1cdbfd38658d156cb29cca559186842370dc024990db3179ffe85a58f9234", "size": 13166811, "ipfsCIDv1": "bafybeihtszr56ihbptrmqtwz2qxlz5e5wkhj5urvgqihbqy6jgpf6fpinq"}, "src": {"name": "/net.yumicoradio.android_100_src.tar.gz", "sha256": "3d2b6850581385e8fdb766dc19a9573d26cce9e1c116bee7d4229b73ebd83fc2", "size": 2138802}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.25.0208", "versionCode": 100, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["b38b45180743f0de2632a64b2fe40c0519f2a535dda11e998b5bfaf132d01077"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "net.yumicoradio.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "The app communicates with the Yumi Co. Radio chat server, whose source code is not published."}, "TetheredNet": {"en-US": "The app is designed to work only with the Yumi Co. Radio online service (audio streaming and chat) operated by the developer."}}, "whatsNew": {"en-US": "Reproducible build fixes for F-Droid: dropped the non-deterministic ART baseline profile and the v1 (JAR) signature (minSdk is now 24). No user-facing changes versus 0.24.0208.\n"}}}}, "nl.hansdezwart.bgclock": {"metadata": {"added": 1786749285772, "categories": ["Game Helper", "Timer"], "issueTracker": "https://source.hansdezwart.nl/hansdezwart/bgclock/issues", "lastUpdated": 1786749285772, "license": "MIT", "sourceCode": "https://source.hansdezwart.nl/hansdezwart/bgclock", "screenshots": {"phone": {"en-US": [{"name": "/nl.hansdezwart.bgclock/en-US/phoneScreenshots/1.png", "sha256": "c30f3cd03216bb84f6f0beaa5d0a9d19e5b671549dd6a9e91022b68828855ba5", "size": 59099}, {"name": "/nl.hansdezwart.bgclock/en-US/phoneScreenshots/2.png", "sha256": "386aa1896d866a53e9c8be40f0c71f4bf98a01ebcb92f77f5b955aa4ce3600d4", "size": 117947}, {"name": "/nl.hansdezwart.bgclock/en-US/phoneScreenshots/3.png", "sha256": "9ae1844b55b23bcfc6dac0f136ba9d464e4732048e68a2c7e3704c43678435d0", "size": 180435}, {"name": "/nl.hansdezwart.bgclock/en-US/phoneScreenshots/4.png", "sha256": "cc951314c06c3fd8427e7d7c94ec013db7168d31fa70dce4306174296029738d", "size": 52082}, {"name": "/nl.hansdezwart.bgclock/en-US/phoneScreenshots/5.png", "sha256": "74dd97bb48812e98dce605bed8da1f24501785f8ce5ca649050f7629b4d9e35a", "size": 70139}]}}, "authorName": "Hans de Zwart", "name": {"en-US": "Backgammon Clock"}, "summary": {"en-US": "A flexible two-player backgammon match clock and scorekeeper."}, "description": {"en-US": "A backgammon clock and scorekeeper for two players sharing one phone between them.\n\nThe app asks for no permissions at all. There is no network access, no analytics, no accounts, no ads, and nothing to configure before you can use it. The whole clock is a single HTML file inside the app.\n\n<b>Features</b>\n\n- Large area with the remaining total time/delay time for this move. Tap on your half to end your turn and start your opponent's clock.\n- Set the number of points to play for (1, 3, 5, 7, …, 29).\n- Set the reserve time per point (e.g. 2 minutes or 3 minutes), in 15-second increments.\n- Set the delay (free seconds every turn which don't carry over to the next turn), in 1 second increments.\n- Choose 1 of 5 colour schemes.\n- Turn sounds (for the turn change, when the delay runs out, and when the time runs out) on or off.\n- Pause/play the clocks.\n- Number of moves for this game and current score (when playing a multi-point match) are always shown.\n- Once a game is done, click the score icon in the middle to set the score. The clocks stay at their current time.\n- Adjust the clocks from the score sheet, if necessary.\n- Press the reset button twice (within 2 seconds, so you can't press it accidentally) to reset the clock and scores and start a new match.\n- Keeps running in the background, returns to the last known clock timings and scores after a crash or forced quit.\n- The screen stays awake while you play.\n\nFunctional design is by Hans de Zwart, partially inspired by the open sourced Chess.com clock. Code is by Claude Opus.\n"}, "icon": {"en-US": {"name": "/nl.hansdezwart.bgclock/en-US/icon_zp7ks0U9OQNnKU7dvXKu_-ZaeidX38DocdfxrejUFqs=.png", "sha256": "ce9ee4b3453d390367294eddbd72aeffe65a7a2757dfc0e871d7f1ade8d416ab", "size": 2593}}, "preferredSigner": "ad6cb26ea40633406068cd3048ca8defa8bd1d9c870c7bc5c07a4a83dd42cf2f"}, "versions": {"72c140b0083ef273bc6452a7f1006e1e2dc4c64c61f8bcc90d082c3f6d1f9dee": {"added": 1786749285772, "file": {"name": "/nl.hansdezwart.bgclock_2.apk", "sha256": "72c140b0083ef273bc6452a7f1006e1e2dc4c64c61f8bcc90d082c3f6d1f9dee", "size": 1040099, "ipfsCIDv1": "bafybeiffuemp53gip3qdhuqtcoh5ws6jh27ep4rvrrokgcplbhf3jnk75y"}, "src": {"name": "/nl.hansdezwart.bgclock_2_src.tar.gz", "sha256": "cab4dd18fbe93e45aab0e19db6e563a53b52f99dd0f0628b2f32a4f83cad2bb8", "size": 464255}, "manifest": {"versionName": "1.1", "versionCode": 2, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["ad6cb26ea40633406068cd3048ca8defa8bd1d9c870c7bc5c07a4a83dd42cf2f"]}}, "whatsNew": {"en-US": "The navigation bar at the bottom of the screen now stays visible while you\nplay, so switching to another app is easy. Only the status bar is hidden.\n\nThe description in F-Droid has been rewritten to spell out what the clock can\nactually do.\n"}}}}, "nz.eloque.quits": {"metadata": {"added": 1786749285772, "categories": ["Finance Manager"], "issueTracker": "https://github.com/SeineEloquenz/quits/issues", "lastUpdated": 1786749285772, "license": "AGPL-3.0-only", "sourceCode": "https://github.com/SeineEloquenz/quits", "screenshots": {"phone": {"en-US": [{"name": "/nz.eloque.quits/en-US/phoneScreenshots/1.png", "sha256": "89bd33fc4eccf36b550768a44e96008cd71b813c771efd5b9dfe251e9801286a", "size": 178057}, {"name": "/nz.eloque.quits/en-US/phoneScreenshots/2.png", "sha256": "8a05ddd47fe8ff9fd922de9cec66200c4516b12794a2ee112de5407e523398b2", "size": 123832}, {"name": "/nz.eloque.quits/en-US/phoneScreenshots/3.png", "sha256": "e893985724d8f553134e5e6e7be5956bb29bf91425c5aa0cc344bed847a02b24", "size": 180599}, {"name": "/nz.eloque.quits/en-US/phoneScreenshots/4.png", "sha256": "146f71c571ce6bbb94965dffa61cdb09280804b06835fb33f1ef30e36c9f2932", "size": 131173}, {"name": "/nz.eloque.quits/en-US/phoneScreenshots/5.png", "sha256": "d28338c2d799a2cc5d75fedb50127d597d0457685751fc077bda323dc460a576", "size": 94961}, {"name": "/nz.eloque.quits/en-US/phoneScreenshots/6.png", "sha256": "ff882f78810501f7a9963434be33aaf21a57ff74e94fe9e1551407a3588e046b", "size": 191393}]}}, "authorEmail": "quits@eloque.nz", "authorName": "SeineEloquenz", "authorWebSite": "https://seine.eloque.nz/", "name": {"en-US": "Quits"}, "summary": {"en-US": "Quits is a privacy-preserving expense splitting application"}, "description": {"en-US": "Quits is a privacy-preserving, shared expense splitting application built with Kotlin Multiplatform.\nThe app allows to easily split expenses between multiple people and synchronize via a public\nor self-hosted, encrypted relay server.\n\nIt supports multiple groups, members, split types, categories, etc.\n"}, "donate": ["https://buymeacoffee.com/seineeloquenz"], "icon": {"en-US": {"name": "/nz.eloque.quits/en-US/icon_koELiCrC0xBGndqHsqg2Ay14SYdIHZtpxIJtvGKAdcQ=.png", "sha256": "92810b882ac2d310469dda87b2a836032d784987481d9b69c4826dbc628075c4", "size": 2195}}, "preferredSigner": "23f205a919b08ff729bae421512247d9ff0efc168b21a01fa4c747c18aa98b47"}, "versions": {"0f5d48843ca251928bea25d2db68d19c7d4e9441908051c47a474a5632477b78": {"added": 1786749285772, "file": {"name": "/nz.eloque.quits_12.apk", "sha256": "0f5d48843ca251928bea25d2db68d19c7d4e9441908051c47a474a5632477b78", "size": 10768638, "ipfsCIDv1": "bafybeiaca2ua6qrohdkkwwtk56yzgk3ofgfjkiykxu42l4wah33nsxx3aa"}, "src": {"name": "/nz.eloque.quits_12_src.tar.gz", "sha256": "f789adcc2dd7ba3120547e350af5b3b133b86dd5a9deae4b441339b9eac4f1c1", "size": 1573585}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.9.2", "versionCode": 12, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 37}, "signer": {"sha256": ["23f205a919b08ff729bae421512247d9ff0efc168b21a01fa4c747c18aa98b47"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "nz.eloque.quits.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Initial public release\n"}}}}, "org.archivekeep.ArchiveKeep": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"f3e1efafc83f235f09eafe2f4aea51835c93e6c02fbb79f886499365eef9558a": null, "55af6fdf880f772c2512bd238ee60deafecdf630e1473f23d1b0439dbc091a45": {"added": 1786749285772, "file": {"name": "/org.archivekeep.ArchiveKeep_63.apk", "sha256": "55af6fdf880f772c2512bd238ee60deafecdf630e1473f23d1b0439dbc091a45", "size": 73659923, "ipfsCIDv1": "bafybeieuha6htvj4thg2rzeckblmljmswzchimud4cf4h4cvnstizsbkhu"}, "src": {"name": "/org.archivekeep.ArchiveKeep_63_src.tar.gz", "sha256": "bfc943cedf66dea02ea492e541152eba68df33538a7003514b2f59f4c8f203da", "size": 373131}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.6.3", "versionCode": 63, "usesSdk": {"minSdkVersion": 30, "targetSdkVersion": 35}, "signer": {"sha256": ["3d1eee1d389688155df900ad682532c50618f94fc5bf1780b8a5727bc96fa84e"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "org.archivekeep.ArchiveKeep.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "org.b3log.siyuan": {"metadata": {"lastUpdated": 1786749285772, "summary": {"en-US": "Open-source knowledge workspace for humans and AI agents", "ru-RU": "Пространство знаний с открытым исходным кодом для людей и ИИ-агентов", "zh-CN": "开源、隐私优先、自托管的知识工作空间"}, "description": {"en-US": "SiYuan is an open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together.\n\n<h3>Features</h3>\nMost features are free, even for commercial use.\n<ul>\n<li>Content block\n<ul>\n<li>Block-level reference and two-way links</li>\n<li>Custom attributes</li>\n<li>SQL query embed</li>\n<li>Protocol <code>siyuan://</code></li>\n</ul>\n</li>\n<li>Editor\n<ul>\n<li>Block-style</li>\n<li>Markdown WYSIWYG</li>\n<li>List outline</li>\n<li>Block zoom-in</li>\n<li>Block horizontal layout</li>\n<li>Million-word large document editing</li>\n<li>Mathematical formulas, charts, flowcharts, Gantt charts, timing charts, staffs, etc.</li>\n<li>Web clipping</li>\n<li>PDF Annotation link</li>\n</ul>\n</li>\n<li>Export\n<ul>\n<li>Block ref and embed</li>\n<li>Standard Markdown with assets</li>\n<li>PDF, Word and HTML</li>\n<li>Copy to WeChat MP, Zhihu and Yuque</li>\n</ul>\n</li>\n<li>Database\n<ul>\n<li>Table view</li>\n</ul>\n</li>\n<li>Spaced repetition</li>\n<li>Multi-tab, drag and drop to split screen</li>\n<li>Template snippet</li>\n<li>JavaScript/CSS snippet</li>\n<li>Android/iOS APP</li>\n<li>Docker deployment</li>\n<li>API</li>\n<li>Community marketplace</li>\n</ul>\n\nSome features are only available to paid members, for more details please refer to Pricing.\n", "ru-RU": "SiYuan — это рабочее пространство знаний с открытым исходным кодом, ориентированное на конфиденциальность и самохостинг, где люди и ИИ-агенты работают вместе.\n\n<h3>Возможности</h3>\nБольшинство функций бесплатны, даже для коммерческого использования.\n<ul>\n<li>Блок содержимого</li>\n<ul>\n<li>Ссылки на уровне блока и двусторонние ссылки</li>\n<li>Пользовательские атрибуты</li>\n<li>Встраивание SQL-запроса</li>\n<li>Протокол <code>siyuan://</code></li>\n</ul>\n</li>\n<li>Редактор</li>\n<ul>\n<li>Стиль блока</li>\n<li>WYSIWYG-редактор Markdown</li>\n<li>Списочная структура</li>\n<li>Масштабирование блока</li>\n<li>Горизонтальная компоновка блока</li>\n<li>Редактирование больших документов объёмом в миллион слов</li>\n<li>Математические формулы, диаграммы, блок-схемы, диаграммы Ганта, диаграммы синхронизации и т.д.</li>\n<li>Веб-клиппинг</li>\n<li>Ссылка аннотации PDF</li>\n</ul>\n</li>\n<li>Экспорт\n<ul>\n<li>Ссылка на блок и встраивание</li>\n<li>Стандартный Markdown с ресурсами</li>\n<li>PDF, Word и HTML</li>\n<li>Копировать в WeChat MP, Zhihu и Yuque</li>\n</ul>\n</li>\n<li>База данных\n<ul>\n<li>Табличный вид</li>\n</ul>\n</li>\n<li>Интервальное повторение</li>\n<li>Многовкладочный режим, перетаскивание для разделения экрана</li>\n<li>Фрагмент шаблона</li>\n<li>Фрагмент JavaScript/CSS</li>\n<li>Приложение для Android/iOS</li>\n<li>Развертывание в Docker</li>\n<li>API</li>\n<li>Маркетплейс сообщества</li>\n</ul>\n\nНекоторые функции доступны только платным участникам. Для получения более подробной информации см. Pricing.\n", "zh-CN": "思源笔记是一个开源、隐私优先、自托管的知识工作空间，让人与智能体在此协作。\n\n<h3>特性</h3>\n大部分功能是免费的，即使是在商业环境下使用\n<ul>\n<li>内容块\n<ul>\n<li>块级引用和双向链接</li>\n<li>自定义属性</li>\n<li>SQL 查询嵌入</li>\n<li>协议 <code>siyuan://</code></li>\n</ul>\n</li>\n<li>编辑器\n<ul>\n<li>Block 风格</li>\n<li>Markdown 所见即所得</li>\n<li>列表大纲</li>\n<li>块缩放聚焦</li>\n<li>块横向排版</li>\n<li>百万字大文档编辑</li>\n<li>数学公式、图表、流程图、甘特图、时序图、五线谱等</li>\n<li>网页剪藏</li>\n<li>PDF 标注双链</li>\n</ul>\n</li>\n<li>导出\n<ul>\n<li>引用块和嵌入块</li>\n<li>带 assets 文件夹的标准 Markdown</li>\n<li>PDF、Word 和 HTML</li>\n<li>复制到微信公众号、知乎和语雀</li>\n</ul>\n</li>\n<li>数据库\n<ul>\n<li>表格视图</li>\n</ul>\n</li>\n<li>间隔重复</li>\n<li>模板片段</li>\n<li>JavaScript/CSS 代码片段</li>\n<li>Android/iOS APP</li>\n<li>Docker 部署</li>\n<li>API</li>\n<li>社区集市</li>\n</ul>\n\n部分功能需要付费会员才能使用，更多细节请参考定价。\n"}}, "versions": {"0491d071331f3caf1b86366c9f06f7f9bc4fa8b45921c8c0961a8a0361dc7c6e": null, "fd35db5caef347e0f6bd58c38398c1dce697e8848665e640719e2eafb0509ed3": {"added": 1786749285772, "file": {"name": "/org.b3log.siyuan_348.apk", "sha256": "fd35db5caef347e0f6bd58c38398c1dce697e8848665e640719e2eafb0509ed3", "size": 90655761, "ipfsCIDv1": "bafybeihwtizv7dansazm4okb6mdbvggrccgsy5kgovvm33ltga4g2w7y2m"}, "src": {"name": "/org.b3log.siyuan_348_src.tar.gz", "sha256": "6f38cf0bdd3c7229d66ae155fa280ca36340877eb9536c8d6943abb5796b3cd7", "size": 664489}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "3.8.0", "versionCode": 348, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["187b9fcbe20f4e2f270f1ebd881edc5092e52514277a8407de59a095d57c2a71"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "com.android.launcher.permission.INSTALL_SHORTCUT"}, {"name": "android.permission.SCHEDULE_EXACT_ALARM"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "org.b3log.siyuan.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "org.broguece.game": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"10c4a9d055d3084905530a3d7841820336cf691fc0f034ea4f082404e9086dd8": null, "d6ae87a56beae5062d0b2da30a80028e10ff20c2309fd2b0deaab0e300bd189a": {"added": 1786749285772, "file": {"name": "/org.broguece.game_1150123.apk", "sha256": "d6ae87a56beae5062d0b2da30a80028e10ff20c2309fd2b0deaab0e300bd189a", "size": 13229132, "ipfsCIDv1": "bafybeig3j4cn4qefoskra43vfvcmizv26zp5cwrpux6rrpvna3flfasu4i"}, "src": {"name": "/org.broguece.game_1150123_src.tar.gz", "sha256": "b44bc36901028fdaace0e638618743cfab869182acca3ce4ccb5b00a61f48ce1", "size": 118445165}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86_64"], "versionName": "1.15.1.23", "versionCode": 1150123, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["bb8f7d9d0ba011057a1e76cae2df4430d8d5b439b3b10e44c631bdfb0ab1ae41"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}]}, "whatsNew": {"en-US": "- Map scrolling and camera follow are now smooth\n- New Movement setting: Swipe or D-Pad\n- Long-press the D-Pad to move or resize it; drop it near its default spot to reset\n- Swipe the sidebar toward its edge to switch between left- and right-handed layouts\n- Taps on the sidebar no longer reach the map\n- The map no longer scrolls under the sidebar or D-Pad\n"}}}}, "org.comunes.tane": {"metadata": {"lastUpdated": 1786749285772, "icon": {"en-US": {"name": "/icons/org.comunes.tane.193.png"}}}, "versions": {"a2ab72c00699d97b8c58ee893de5947dbbe69e9ac6bda2abfa249a300eb93af4": {"added": 1786749285772, "file": {"name": "/org.comunes.tane_193.apk", "sha256": "a2ab72c00699d97b8c58ee893de5947dbbe69e9ac6bda2abfa249a300eb93af4", "size": 57383495, "ipfsCIDv1": "bafybeigbhzamv4dfpjrb7dam4xir47cd5qkklsta6izatc6xr36czxshvi"}, "src": {"name": "/org.comunes.tane_193_src.tar.gz", "sha256": "b82e9cceb96023806a78090d1ccb9652ba41209a8cb70500b7c2779336d0df58", "size": 254260023}, "manifest": {"nativecode": ["x86_64"], "versionName": "0.1.17", "versionCode": 193, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["ddfae432091b8248a8a4a1b353487fa626301f4357ef835e94ec312f69418e38"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "org.comunes.tane.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "c4f6e5a7599911d4e080538d557df12d2578abaf663185f37416d6e6d5e9ceff": {"added": 1786749285772, "file": {"name": "/org.comunes.tane_192.apk", "sha256": "c4f6e5a7599911d4e080538d557df12d2578abaf663185f37416d6e6d5e9ceff", "size": 54798952, "ipfsCIDv1": "bafybeibii7ma2z6j2n23hyiu3hjcbxmg3wcy4qt5puxcaihzvchxg76maa"}, "src": {"name": "/org.comunes.tane_192_src.tar.gz", "sha256": "592adac68e4135493c3a3488cfb7489ffc12c01292f648270fdaa66120ff4208", "size": 254260167}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "0.1.17", "versionCode": 192, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["ddfae432091b8248a8a4a1b353487fa626301f4357ef835e94ec312f69418e38"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "org.comunes.tane.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "46e3943a69a51dc8331b8e2f15fbeb0afbd1cb2601de93c98efadb065995fcb5": {"added": 1786749285772, "file": {"name": "/org.comunes.tane_191.apk", "sha256": "46e3943a69a51dc8331b8e2f15fbeb0afbd1cb2601de93c98efadb065995fcb5", "size": 49314430, "ipfsCIDv1": "bafybeih7o5qmwsuo2aqxea3cjlczo73lcmzgphoqeytr3chlqdzur2qbgq"}, "src": {"name": "/org.comunes.tane_191_src.tar.gz", "sha256": "385e8c6c001ee7745b16588204b1f98ffa976a15221fc80c4cec48fe8454e3ae", "size": 254258909}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "0.1.17", "versionCode": 191, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 36}, "signer": {"sha256": ["ddfae432091b8248a8a4a1b353487fa626301f4357ef835e94ec312f69418e38"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "org.comunes.tane.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "org.diekaiju.duckassist": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"8d7a1ec0c0f08d7a4f2762f97b727849d365a784afb9d25713da38ea46ab9e0a": null, "c83282166af5de2bbcfca7c63863e2f91cb6985573106dd0cde1ce7b3eeac1f4": {"added": 1786749285772, "file": {"name": "/org.diekaiju.duckassist_247.apk", "sha256": "c83282166af5de2bbcfca7c63863e2f91cb6985573106dd0cde1ce7b3eeac1f4", "size": 747069, "ipfsCIDv1": "bafybeidwbknzibhwszkbeo5yjdbhuk3xdkrflidsgabzjrliwd3ujbazxa"}, "src": {"name": "/org.diekaiju.duckassist_247_src.tar.gz", "sha256": "ce4fa379f7659a64ba73a07777dd8e584de608d27ab8c4f67a7b79853ea5851f", "size": 1710451}, "manifest": {"versionName": "0.4.2", "versionCode": 247, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 35}, "signer": {"sha256": ["5ef69bd656d41b55a7582541b7e79c5117e6ee6be0cf076aa582e428c23e5c54"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.MODIFY_AUDIO_SETTINGS"}, {"name": "android.permission.CAMERA"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Connects to Duck.ai servers."}}, "whatsNew": {"de-DE": "- Verhindert das Neuladen von WebView und den Verlust des Zustands, wenn die App pausiert oder minimiert wird.\n", "en-US": "- Prevented WebView from reloading and losing state when the app is paused or minimized.\n", "pt-BR": "- Impedido o recarregamento do WebView e a perda de estado quando o aplicativo é pausado ou minimizado.\n", "tr-TR": "- Uygulama duraklatıldığında veya simge durumuna küçültüldüğünde WebView'ın yeniden yüklenmesi ve durumun kaybolması engellendi.\n"}}}}, "org.electrum.electrum": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"fa6e299ac75f10e37c1d060cbb4270ca2da9b194164194760d4db1070f31b05a": null, "7e29f0f01bee101cea1d386a2cf5cde3f79929b4ea9a739cc4a015f0250cfe2c": null, "da24bc28cd0d33162935ecaee4f4dc68db1d7fef157337fd3bf9ee2ede88e910": null, "5bf4f2c385584f2d93fb3687cf2fe0ee671273eb73e67d5792a2eed932b86959": {"added": 1786866775484, "file": {"name": "/org.electrum.electrum_45408014.apk", "sha256": "5bf4f2c385584f2d93fb3687cf2fe0ee671273eb73e67d5792a2eed932b86959", "size": 50144221, "ipfsCIDv1": "bafybeicp3t4pvlbdzqhtn6fmzibbmyetbif4jkqzil42oyuuz3p5oiujhm"}, "src": {"name": "/org.electrum.electrum_45408014_src.tar.gz", "sha256": "b40e2bfcc58476a35297c8ce425147b77e25a0f67c2b6929709b63c1692fbaeb", "size": 10787982}, "manifest": {"nativecode": ["x86_64"], "versionName": "4.8.1", "versionCode": 45408014, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["e543d576fa0f2a33d412bca4c7d61e2301830e956e7d947e75b9052d176027d3"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "org.electrum.electrum.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}]}}, "03bbdd878cbfd12e719f809d627b4661a310ffb9c9a3452f815abecb73e78642": {"added": 1786866775484, "file": {"name": "/org.electrum.electrum_45408013.apk", "sha256": "03bbdd878cbfd12e719f809d627b4661a310ffb9c9a3452f815abecb73e78642", "size": 50031667, "ipfsCIDv1": "bafybeihhsuvxzeb3hzxsau6is3ggtd7uh2sln27ndgox3ex3jmy3nu2t5e"}, "src": {"name": "/org.electrum.electrum_45408013_src.tar.gz", "sha256": "dcfebf7f2ac657a6bf90f93ea381d275cead3bc918cfeb5ac67c0f50bb0fe334", "size": 10788025}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "4.8.1", "versionCode": 45408013, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["e543d576fa0f2a33d412bca4c7d61e2301830e956e7d947e75b9052d176027d3"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "org.electrum.electrum.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}]}}, "cc0d79bb6c64719447e88f2231230636fdf6f827a617385c8c010faa348b9aa0": {"added": 1786866775484, "file": {"name": "/org.electrum.electrum_45408012.apk", "sha256": "cc0d79bb6c64719447e88f2231230636fdf6f827a617385c8c010faa348b9aa0", "size": 46133963, "ipfsCIDv1": "bafybeiat2qnqodo5lhyxhcuqqq4j3u36ezlfaesgulnnhzps7veomx7l3y"}, "src": {"name": "/org.electrum.electrum_45408012_src.tar.gz", "sha256": "bf01d33500e39c55febd11fd212775424bab48983ba16b84d0473cee81d8746e", "size": 10787913}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "4.8.1", "versionCode": 45408012, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["e543d576fa0f2a33d412bca4c7d61e2301830e956e7d947e75b9052d176027d3"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "org.electrum.electrum.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}]}}}}, "org.fdroid.basic": {"versions": {"1155d8f46950b50a876af89ee2982352512d51acf4d3f38358b1b026ee290560": {"releaseChannels": null}, "65cec1ecd50bd61486b8144f60e951bf6513f369283d3f0e0257f98672be294c": {"releaseChannels": null}, "8471ea045d776e494e57e8289bfcc67b071dcd29f0b954649e7479da85deb15b": {"releaseChannels": null}, "1aa1931bf61e11382c2b225581d4adcd2d9803697a144a84c6eb4db04f67cafb": {"releaseChannels": null}, "a9d4f41d493f4b698480dd1826baf7f0066f069e247c4a0f64f5e117a901d63d": {"releaseChannels": null}, "2f83ac3adfb3abfd40047172d101adc96368967b7169a0c80a1a48f00dec9fe1": {"releaseChannels": null}, "a3a6db20e16fb6a5d3fdebfef7d074ef248ccf55453ab69b091cc0490ae05c55": {"releaseChannels": null}, "fdbcb468502f49eaecc12169c3a7c95c4d50104b5708f018d94d6025cb273f1b": {"releaseChannels": null}, "ca36a3346c2be2c061c7e6a0db2731f997b8b15bade19bad32062dda445fafaf": {"releaseChannels": null}, "eaf387dde2129fac8c2520688de9a6874bd790533af101421d16de996966fd27": {"releaseChannels": null}, "9238e9f82f8577c6bca941fc8b25b6cfc07b867eb1921710184410584b3686ea": {"releaseChannels": null}, "a6819d6067f7af22686b6534f3b04e9cb69efc90f05c0784daa1ef98b9bc3184": {"releaseChannels": null}, "e37fc1495244a269b307c19fe9a099fe5e43281cbfa4a7fc9c2570aa4e6780f9": {"releaseChannels": null}}}, "org.girino.frac.android.foss": {"metadata": {"added": 1786866775484, "categories": ["Science & Education"], "changelog": "https://github.com/girino/android-mandelbrot-set/blob/HEAD/CHANGELOG.md", "issueTracker": "https://github.com/girino/android-mandelbrot-set/issues", "lastUpdated": 1786866775484, "license": "BSD-2-Clause", "sourceCode": "https://github.com/girino/android-mandelbrot-set", "screenshots": {"phone": {"en-US": [{"name": "/org.girino.frac.android.foss/en-US/phoneScreenshots/1.png", "sha256": "8e74640d91c946feb71a6c4199b6cc72cae569a4097db7b350199a97d31165c4", "size": 141954}, {"name": "/org.girino.frac.android.foss/en-US/phoneScreenshots/2.png", "sha256": "05e0c1510aa95016e65c9b9fbce99071c819afbd16f095a1a17f125ffd88c503", "size": 100820}]}}, "authorName": "Girino Vey", "name": {"en-US": "Fractals by Girino FOSS", "pt-BR": "Fractals by Girino FOSS"}, "summary": {"en-US": "Explore Mandelbrot and related fractals offline", "pt-BR": "Explore Mandelbrot e outros fractais sem conexão"}, "description": {"en-US": "Explore the Mandelbrot set and related fractals directly on your Android device.\n\nPan and pinch to navigate, choose different fractal formulas, switch color palettes,\nand toggle smooth coloring. Rendering happens entirely on the device.\n\nThe app contains no ads, trackers, analytics, network access, or data collection.\n", "pt-BR": "Explore o conjunto de Mandelbrot e outros fractais diretamente no seu dispositivo Android.\n\nArraste e use o gesto de pinça para navegar, escolha diferentes fórmulas fractais,\ntroque a paleta de cores e ative a coloração suave. Todo o processamento acontece\nlocalmente no aparelho.\n\nO aplicativo não contém anúncios, rastreadores, análise de uso, acesso à rede nem coleta de dados.\n"}, "icon": {"en-US": {"name": "/org.girino.frac.android.foss/en-US/icon_EimileUdVqirJq44h4pcRTNqZ478ni2lleCvYgV92yA=.png", "sha256": "1229a295e51d56a8ab26ae38878a5c45336a678efc9e2da595e0af62057ddb20", "size": 119209}}, "preferredSigner": "711f6c03152b8c553f35b5ca0cd6d0d88fcf53e9b603834a48e023624ef18bbd"}, "versions": {"fcd7a385f1dc607ac921ba37dc289799ee696563139c116fee92e85d6d8cc11e": {"added": 1786866775484, "file": {"name": "/org.girino.frac.android.foss_2.apk", "sha256": "fcd7a385f1dc607ac921ba37dc289799ee696563139c116fee92e85d6d8cc11e", "size": 783677, "ipfsCIDv1": "bafybeiednkcsgiqpfxsewjf7qhvqztb3rr5jl72afl57zaosmzmo7xwdia"}, "src": {"name": "/org.girino.frac.android.foss_2_src.tar.gz", "sha256": "adb5061f1d0ad7e86713d0c5f69263c867653161a05a2f237e77bd2a948ccbab", "size": 660696}, "manifest": {"versionName": "1.0.0", "versionCode": 2, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["711f6c03152b8c553f35b5ca0cd6d0d88fcf53e9b603834a48e023624ef18bbd"]}}, "whatsNew": {"en-US": "First stable FOSS release, with no ads, trackers, network access, or data collection. Includes F-Droid metadata and dual BSD-2-Clause/GAL licensing.\n", "pt-BR": "Primeira versão FOSS estável, sem anúncios, rastreadores, acesso à rede ou coleta de dados. Inclui metadados para o F-Droid e licenciamento duplo BSD-2-Clause/GAL.\n"}}}}, "org.hlwd.bible": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"dfbbfebe97c68cc8e88e3dcceaf411c1d8dff8280149b66d75a10da1d44ebc61": null, "1b463af725dd11948f68ba991f829172b5d3e6a29cb1377aaa06d18cc0185b62": {"added": 1786866775484, "file": {"name": "/org.hlwd.bible_20260810.apk", "sha256": "1b463af725dd11948f68ba991f829172b5d3e6a29cb1377aaa06d18cc0185b62", "size": 171865718, "ipfsCIDv1": "bafybeigx4akjrhgu47slxukcugfdxr5dvzdorpll2g2rmlf4n6nflvrgv4"}, "src": {"name": "/org.hlwd.bible_20260810_src.tar.gz", "sha256": "acd66ca91d5996be224af35d1f4c2fa04e88fc59eb8c2ae89fe87c319b668c8d", "size": 243711331}, "manifest": {"versionName": "4.04", "versionCode": 20260810, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["fb54219a409af4f39138de63781579992cb711846e04062ccaa5f47b91c54527"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "org.hlwd.bible.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "• Support for Android 16.0: Target\n", "es-ES": "• Soporte para Android 16.0: Objetivo\n", "fr-FR": "• Support pour Android 16.0: Cible\n", "it-IT": "• Supporto per Android 16.0: Obbiettivo\n", "pt-PT": "• Suporte para Android 16.0: Alvo\n"}}}}, "org.irmacard.cardemu": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"1f53a89005dca694d7ebe792e83412e288b0d711e51580dcfc15fb0215a2f458": null, "d7ea0f8b3d5ea5ee430141a6ef439558ab6671c8eb562e91c6b4db3acb297cdc": {"added": 1786866775484, "file": {"name": "/org.irmacard.cardemu_4194517.apk", "sha256": "d7ea0f8b3d5ea5ee430141a6ef439558ab6671c8eb562e91c6b4db3acb297cdc", "size": 319241026, "ipfsCIDv1": "bafybeibvzy4o5zuzddtyyjuo2usld7jeamfuyrsxnrq5dkrovz6yjsy7wq"}, "src": {"name": "/org.irmacard.cardemu_4194517_src.tar.gz", "sha256": "1f2012c721e1e2474125c455fc5f58ddc57e1ead86d7337bd0a61db28219ed82", "size": 403280365}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86_64"], "versionName": "8.2.0", "versionCode": 4194517, "features": [{"name": "android.hardware.camera.any"}], "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["8969e37dadfdca2912867ca3fc2b023faaccbf2bfba1f14e0256c017368b6bf4"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.CAMERA"}, {"name": "android.permission.RECORD_AUDIO"}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE", "maxSdkVersion": 28}, {"name": "android.permission.READ_EXTERNAL_STORAGE"}, {"name": "android.permission.NFC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "org.irmacard.cardemu.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}]}, "antiFeatures": {"NonFreeAssets": {}}}}}, "org.localsend.localsend_app": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"f575c642d1c9ee37475bf0d30e138d2672e0857216addaebc327041339aeb064": null, "cfafc58c806f35f4bd13bcce38a9256d6397e2976e85e676645b48bc48907efd": null, "fa1b7eb9ee7fcbfc75caf5037c19a490ec0c008790b92c3b04aae9f68a5204b5": null, "6268f296558cd8fbd114490bda443567d8cbd7e6c2f452b5f006c4b7a9948070": {"added": 1786749285772, "file": {"name": "/org.localsend.localsend_app_613.apk", "sha256": "6268f296558cd8fbd114490bda443567d8cbd7e6c2f452b5f006c4b7a9948070", "size": 46467598, "ipfsCIDv1": "bafybeib5faw35b5mgtc6i4bqsd5ddiqojx3fkwahlyvhtgsxyqokpav6jy"}, "src": {"name": "/org.localsend.localsend_app_613_src.tar.gz", "sha256": "64e66c1fbb960ad042a0e54f2742234d84f3391814ddb4e08364a7c2c9c30874", "size": 509927429}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "1.18.1", "versionCode": 613, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3220c353a73cfbd0c2f3052471c445324cf452bcba26de1c473a52fe5c44e1d6"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.BIND_QUICK_SETTINGS_TILE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "org.localsend.localsend_app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "11398bf9637a7364d2a322e2524222a5910c64f4f3f9ca6d2cf144e29a8b6053": {"added": 1786749285772, "file": {"name": "/org.localsend.localsend_app_612.apk", "sha256": "11398bf9637a7364d2a322e2524222a5910c64f4f3f9ca6d2cf144e29a8b6053", "size": 39208952, "ipfsCIDv1": "bafybeiaoxmesqnfqwkqfsw2ujk73l4i54gc7trdwbpsg6vqxomn4xsh774"}, "src": {"name": "/org.localsend.localsend_app_612_src.tar.gz", "sha256": "013bf8988b90d5724cb16de6d5067da77bea33e9f626760dc5e69b562b7859c2", "size": 509919639}, "manifest": {"nativecode": ["armeabi-v7a"], "versionName": "1.18.1", "versionCode": 612, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3220c353a73cfbd0c2f3052471c445324cf452bcba26de1c473a52fe5c44e1d6"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.BIND_QUICK_SETTINGS_TILE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "org.localsend.localsend_app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}, "7e5aeabe150fbe629313b04d0cf5ed25f645b8a98cefcea8b82c593808b6717a": {"added": 1786749285772, "file": {"name": "/org.localsend.localsend_app_611.apk", "sha256": "7e5aeabe150fbe629313b04d0cf5ed25f645b8a98cefcea8b82c593808b6717a", "size": 48831807, "ipfsCIDv1": "bafybeiazrdt2kbae4sdedwho42lyrklwqmpm6pexc72oc3wnaj2fthu45a"}, "src": {"name": "/org.localsend.localsend_app_611_src.tar.gz", "sha256": "c8956f77f6ed5840dc502e5e8f64f2bf4c5a8fef80163a7df875a6386942af85", "size": 509903848}, "manifest": {"nativecode": ["x86_64"], "versionName": "1.18.1", "versionCode": 611, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["3220c353a73cfbd0c2f3052471c445324cf452bcba26de1c473a52fe5c44e1d6"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.WRITE_EXTERNAL_STORAGE"}, {"name": "android.permission.READ_MEDIA_IMAGES"}, {"name": "android.permission.READ_MEDIA_VIDEO"}, {"name": "android.permission.ACCESS_MEDIA_LOCATION"}, {"name": "android.permission.QUERY_ALL_PACKAGES"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.BIND_QUICK_SETTINGS_TILE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "android.permission.READ_MEDIA_AUDIO"}, {"name": "org.localsend.localsend_app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "org.moire.opensudoku": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"08f4be311c06878e8f5459811626c3e3cc39133716c7c34c516c4ee80fbfb4e9": null, "89054465a2236967305c5c153250eb9439ad2c1ebea874c8c7df2978549b1ec0": {"added": 1786749285772, "file": {"name": "/org.moire.opensudoku_20260803.apk", "sha256": "89054465a2236967305c5c153250eb9439ad2c1ebea874c8c7df2978549b1ec0", "size": 42049320, "ipfsCIDv1": "bafybeiaandq5235iwicq2cyawzzbkhbjc65rhuoziwxoakn4unwsqh4kbq"}, "src": {"name": "/org.moire.opensudoku_20260803_src.tar.gz", "sha256": "163884e44eedf2382a172c4190156e20bcefe866468ca2bf5c2f3f19792d366e", "size": 6447548}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "4.9.0", "versionCode": 20260803, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 37}, "signer": {"sha256": ["a54ce29ebb02fcb9b478620572f7c4dd39b903736fe6199687471ba729f4613a"]}, "usesPermission": [{"name": "android.permission.CAMERA"}]}, "whatsNew": {"en-US": "- Experimental Puzzle Scanning feature improvements (portrait scanning support, new 'Edit' button, OCR engine migrated to FOSS-compatible TensorFlow Lite) [Bart Uliasz]\n- New 'with mistakes' and 'with hints' filter options [Bart Uliasz]\n- Improved primary color selection for custom themes [Bart Uliasz]\n- Full edge-to-edge support for all major screens [Bart Uliasz]\n- Updated targetSdk to 37 [Bart Uliasz]\n- Translations updates [Bart Uliasz, Andreas Pettersson, hamburger2048]\n"}}}}, "org.ojrandom.paiesque": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"768639739d452a674abc374875be7a595857dfd3249bfe68693ef06cfccf9248": null, "cba17c8271ca33627341011171f3b9ee97b24289c63e3460260ba52713c75ea7": {"added": 1786749285772, "file": {"name": "/org.ojrandom.paiesque_91.apk", "sha256": "cba17c8271ca33627341011171f3b9ee97b24289c63e3460260ba52713c75ea7", "size": 49197005, "ipfsCIDv1": "bafybeigs7q77agccgvhc3dzo4ze2a7dk7ano4o7d6kszxj3fxkkkauuhbe"}, "src": {"name": "/org.ojrandom.paiesque_91_src.tar.gz", "sha256": "7d3008682fe320f11b256a095558da4f42371b52800f7110cad383d67adf28e5", "size": 9534364}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "91", "versionCode": 91, "features": [{"name": "android.hardware.bluetooth_le"}], "usesSdk": {"minSdkVersion": 34, "targetSdkVersion": 34}, "signer": {"sha256": ["2c5be05a58c7a79415aa120f8299cec8ceb42feb34d1fff7655df8965bfb23fe"]}, "usesPermission": [{"name": "android.permission.health.READ_HEART_RATE"}, {"name": "android.permission.health.READ_HEART_RATE_VARIABILITY"}, {"name": "android.permission.health.READ_HEALTH_DATA_HISTORY"}, {"name": "android.permission.health.WRITE_HEART_RATE"}, {"name": "android.permission.health.WRITE_HEART_RATE_VARIABILITY"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_WIFI_STATE"}, {"name": "org.ojrandom.paiesque.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "v91 improves map performance with zoom‑based track simplification,\nmoves heavy operations off the main thread to prevent ANRs,\nand fixes several map and recording issues.\n\n## Map Performance\n\n- Tracks are simplified using the current zoom level via a new\n  `PolylineSimplifier` utility.  Points closer than one screen pixel\n  are removed before rendering, keeping the map responsive without\n  visible quality loss.\n- Heavy operations – track simplification, fit‑to‑track, offline map\n  file loading, "}}}}, "org.onekash.kashcal": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"aaf1ca94e8dfd201e3c464ba7105b7cbbb5e55e6e23b7ebdb6e11e6310a09632": null, "b99cf44aa0580c12d6d04e751de519a6acea27acb036b1f9c72fc923b0a08ce2": {"added": 1786866775484, "file": {"name": "/org.onekash.kashcal_718.apk", "sha256": "b99cf44aa0580c12d6d04e751de519a6acea27acb036b1f9c72fc923b0a08ce2", "size": 12138223, "ipfsCIDv1": "bafybeiacnnwlofmnocs5iy7qrmx2zo7wqfpdv5zxle6dy65k45sm2jhpyi"}, "src": {"name": "/org.onekash.kashcal_718_src.tar.gz", "sha256": "60f44c04742dd426da32e217d668c9b17bf10483f53e7095cc255a3947fe1a42", "size": 7797246}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "2026.08.14", "versionCode": 718, "usesSdk": {"minSdkVersion": 31, "targetSdkVersion": 37}, "signer": {"sha256": ["720a06f797d39f6669f2074ac52d6e0cfd8d99bf0b59e5ea1f74bbb3217f5595"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.ACCESS_LOCAL_NETWORK"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.VIBRATE"}, {"name": "android.permission.USE_EXACT_ALARM"}, {"name": "android.permission.READ_CONTACTS"}, {"name": "android.permission.WRITE_CONTACTS"}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.WRITE_CALENDAR"}, {"name": "android.permission.READ_SYNC_SETTINGS"}, {"name": "android.permission.WRITE_SYNC_SETTINGS"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "org.onekash.kashcal.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "• Contacts: fixed CardDAV contact sync on servers with a broken auto-discovery response (reverse proxy on a non-standard port, or discovery probe rejected); contacts now reuse the account's working calendar connection\n• Contacts: fixed a rare case where an empty discovery could wipe already-synced contacts from the phone\n• Added a Beta badge to the Contacts sync toggle in account settings\n• Improved the change-password field to use a password keyboard and offer credential-manager fill and save\n"}}}}, "org.schabi.newpipe.localserver": {"metadata": {"lastUpdated": 1786866775484, "screenshots": {"phone": {"en-US": [{"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/app_interface.jpg", "sha256": "ab93ef86a2fd258ff2d37c2cf23bd9454d81d02252220b0280d1eeccc61e8204", "size": 64084}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/app_interface2.jpg", "sha256": "b485a6bdbd0d70d095facb503f3ea02b20ff53c6af38593f8c0fe30f35e44e0e", "size": 89802}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/homepage-black.png", "sha256": "0c23b5d14e2c1d14511dfcc61f5f19c0457a504bd8e1551dadf55a40bf953ff2", "size": 1141513}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/homepage-white.png", "sha256": "0fd4b9c42c7af2f0102cae131aad089d13b72172f99036364951d68a2671d9ce", "size": 889438}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/homepage_mobile.png", "sha256": "22199f3d6eab05eb11e4d87460c9ba00dc5cbbf2dfd34dce0bf48e245580c43e", "size": 480990}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/hompage-black.png", "sha256": "00e87622727313638e4d39b52105589e3ef5987f9b2ba319f103cc40959a9d10", "size": 889385}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/preference_settings.jpg", "sha256": "73d82c758aa9e39df0a81d761405f70c100b8f50799c7149ae0c3268220fd136", "size": 85164}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/settings.jpg", "sha256": "ee763c27d68ba3932cf14beb56f887c13e377293bab3f0795883778b5cda15cc", "size": 81419}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/touchpad.jpg", "sha256": "a5fe01772e1a86d76fa81c308cf360d5df888425c0ef10374063f4a59bb3805e", "size": 39441}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/videoplayer.png", "sha256": "8ca518990bc943b858150c42c96f84edf711aa2f0fd2a02e345c4e13cfc30ef5", "size": 558955}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/videoplayer_mobile.png", "sha256": "65b7b6922b9010e15a51cf45dc868280dd8aa4ea7497bab9535da4e290c4ed94", "size": 71331}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/web_interface_home.jpg", "sha256": "fc74f1dbbe53826de236e79b8b7b2dfb016f3098d570ef7c22e5b01692ebdee7", "size": 169567}, {"name": "/org.schabi.newpipe.localserver/en-US/phoneScreenshots/web_interface_watch.jpg", "sha256": "be93cffb478018d9219b12a9fb2e74f0387d6af6a5e6e0969269404fd7e44013", "size": 73564}]}}, "description": {"en-US": "LocalTube is an enhanced, self-hosted streaming server solution built on top of a specialized fork of NewPipe Extractor. By bundling a lightweight and concurrent Java HTTP server inside an Android application, LocalTube enables you to browse, search, and stream content from major streaming platforms directly from any device in your local network using a standard web browser.\n\nKey Features:\n- Decentralized Local Server: Runs a lightweight, concurrent Java HTTP server directly on your Android device (default port 8080), serving a modern, responsive web interface.\n- Cross-Device Playback: Connect seamlessly to the server from any device on your local network (PC, laptop, smart TV, tablet) by visiting your device's local IP.\n- Video.js Media Player: High-performance HTML5 player using Video.js for quality switching, adaptive playback speed, gesture controls, and smooth seeking.\n- Enhanced Gestures & Shortcuts: Double-tap or double-click to seek 10s forward/backward (with chevron ripples), swipe vertically to adjust volume (with volume HUD), and use keyboard/remote D-pad shortcuts (Space, J, L, M, Arrows).\n- Autoplay Queue: Seamless \"Up Next\" autoplay timer countdown at the end of video playback with Cancel and Play Now actions.\n- Picture-in-Picture & Subtitles: Native floating Picture-in-Picture window support, and fully fixed WebVTT captions/subtitles rendering.\n- Remote Playback Control: Remotely control other active clients on your network (play, pause, fast-forward, rewind) from the web interface.\n- Database Backup Import/Export: Back up and restore your settings and SQLite watch history as JSON files.\n- YouTube Interests & Subscriptions Importer: Log in securely via WebView to scrape and import subscription lists, as well as personalize followed interest keywords using unique homepage recommendation tags.\n- Dedicated Shorts Player Integration: Open YouTube Shorts directly in a specialized vertical scrolling Shorts player (supporting swipe controls) from your Watch Later, History, or Search feeds.\n- Custom Quality Preferences: Easily manage preferred video streaming resolutions directly inside the client and server settings.\n- Theme Customization: Toggle between modern Dark and clean Light themes instantly.\n- Material 3 User Interface: Beautifully updated UI with cohesive Material Design 3 tokens, color harmonies, and responsive layouts.\n- Private Watch History: Tracks your watched videos locally on the host device using a secure SQLite database, maintaining privacy with zero external telemetry or tracking.\n\n\n"}}, "versions": {"a0b3dc4bb9be8b14e9c7d1d6b19506f294f39118755c88a52f66a0ddb4c2c5fb": null, "29f7b5692ca913ec38e77b25ad2b909db6cef63f01d944289493cdc6b5247b0a": {"added": 1786866775484, "file": {"name": "/org.schabi.newpipe.localserver_12.apk", "sha256": "29f7b5692ca913ec38e77b25ad2b909db6cef63f01d944289493cdc6b5247b0a", "size": 5330587, "ipfsCIDv1": "bafybeihwf5prgds5whlxhythdfpwgmx5mgrjaxy3fbjur3c6p2cac5qjey"}, "src": {"name": "/org.schabi.newpipe.localserver_12_src.tar.gz", "sha256": "d45047d88298146cc4e2ed6f239534de580415461e4d4665ed7f1ac8d4fea364", "size": 44878579}, "manifest": {"versionName": "3.7", "versionCode": 12, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 34}, "signer": {"sha256": ["5ef69bd656d41b55a7582541b7e79c5117e6ee6be0cf076aa582e428c23e5c54"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "org.schabi.newpipe.localserver.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Connects to YouTube, SoundCloud, PeerTube and Bandcamp."}}, "whatsNew": {"en-US": "1: Added a dedicated WebPlayer WebView container inside the Android application to browse and play feeds directly within the app\n2: Added a setting to automatically default to Audio-Only playback (Shorts excluded)\n3: Added Swipe-to-Refresh support to reload pages inside the WebView container easily\n4: Replaced the WebView-based audio player with a fully native Android Audio Player Activity for optimized background playback performance\n5: Replaced the bottom cancel button in Google login/import d"}}}}, "org.shano.assistral": {"versions": {"61bca8e4e47fdca62ca62afe6d3f6420a7bc47f271d3054bd23bd2502820e9a4": {"antiFeatures": {"NonFreeNet": {"en-US": "Rely on Mistrals LeChat."}}}, "dfc51ce720ada40cf9229eced6a93dd838eeea31951575425cfb48fb4d4b646c": {"antiFeatures": {"NonFreeNet": {"en-US": "Rely on Mistrals LeChat."}}}, "e69993025b21177f3eea8b2338c017be2b899a6e3e4b0abf719c5a3c69005f63": {"antiFeatures": {"NonFreeNet": {"en-US": "Rely on Mistrals LeChat."}}}}}, "org.woheller69.level": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"58d85d1cb2c62ec48db2c62b7a36c31b7d941ce2ce67d504115fbc5f063985e9": null, "fbe2fa19b05adc4d1335f7a2456c138b8483b643746c45dee6c6fb14ca7a6db8": {"added": 1786749285772, "file": {"name": "/org.woheller69.level_35.apk", "sha256": "fbe2fa19b05adc4d1335f7a2456c138b8483b643746c45dee6c6fb14ca7a6db8", "size": 1342270, "ipfsCIDv1": "bafybeicusawobl6fnsbrvadaec34itramvylobg3uatxbwdwthqdpvysca"}, "src": {"name": "/org.woheller69.level_35_src.tar.gz", "sha256": "5c41bd449ee46fa6c2ecf63ae062ef740c4e6e7503c71997219b710307e92ba2", "size": 263006}, "manifest": {"versionName": "3.5", "versionCode": 35, "features": [{"name": "android.hardware.sensor.accelerometer"}], "usesSdk": {"minSdkVersion": 15, "targetSdkVersion": 35}, "signer": {"sha256": ["234ebfa74fee9820292966977748b6d95cd75b4fcb1eed381d8648b36e14f5ca"]}, "usesPermission": [{"name": "android.permission.WAKE_LOCK"}, {"name": "org.woheller69.level.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Add support for Android 4.0.3 - 4.0.4\n"}}}}, "page.cynosure.timer": {"metadata": {"added": 1786749285772, "categories": ["Timer"], "changelog": "https://github.com/Cynosure-North/Debate_Timer/releases", "issueTracker": "https://github.com/Cynosure-North/Debate_Timer/issues", "lastUpdated": 1786749285772, "license": "AGPL-3.0-or-later", "sourceCode": "https://github.com/Cynosure-North/Debate_Timer", "featureGraphic": {"en-US": {"name": "/page.cynosure.timer/en-US/featureGraphic_tzdWtYEGFQp_OBEa1k3EMyjIywsiI72oYpgXufJ1kKQ=.png", "sha256": "b73756b58106150a7f38111ad64dc43328c8cb0b2223bda8629817b9f27590a4", "size": 94820}}, "screenshots": {"phone": {"en-US": [{"name": "/page.cynosure.timer/en-US/phoneScreenshots/1.png", "sha256": "02ebec3144a3e4909e7afa63439d919b05d14d94101a1bbcc85076e555fe9ef5", "size": 54455}, {"name": "/page.cynosure.timer/en-US/phoneScreenshots/2.png", "sha256": "3c709f1c9b2aad73d538664ccfffb148162d7dd9762203452c210838a3ab3c33", "size": 71926}, {"name": "/page.cynosure.timer/en-US/phoneScreenshots/3.png", "sha256": "752fd69dcfe6d6b3671bdccec7127ddd3c6db91c5286538245ca617c8a917703", "size": 56320}, {"name": "/page.cynosure.timer/en-US/phoneScreenshots/4.png", "sha256": "f99e7ac9cb33abcd07500314f22c191692a31cc512d6287b2d8f1157c67eb167", "size": 22983}, {"name": "/page.cynosure.timer/en-US/phoneScreenshots/5.png", "sha256": "d6b792c5287e3125f082c35e01298da94a5117e0303524c988deb109be020983", "size": 57299}, {"name": "/page.cynosure.timer/en-US/phoneScreenshots/6.png", "sha256": "3d7a1b38e07a2804b939d0f8909d90a5c1d133045220cbb61dee9b6bfb4db498", "size": 59035}]}}, "authorEmail": "apps@cynosure.page", "authorName": "North", "authorWebSite": "https://cynosure.page", "name": {"en-US": "Debate Timer"}, "summary": {"en-US": "A minimalist timer, so you can focus on speaking."}, "description": {"en-US": "A simple timer designed for debaters specifically, so you can focus on speaking or judging.\n\nTap anywhere to start and stop the timer. Press and hold while paused to reset the timer.\nThe timing of bells can be customised: Ring a bell at the first and last minute, one minute before the end, or disable them entirely. Press and hold the top bar in to trigger a bell, and to test the volume.\nLandscape fullscreen mode makes the text extra large so it's easy to glance at while speaking.\nCount up or count down.\nProtected time is shown with a blue background, overtime is shown with a red background. There's a light and dark theme.\nYou can time speeches between 3 and 8 minutes, making this suitable for most formats, including British Parliamentary, Impromptu, and Asian Parliamentary."}, "icon": {"en-US": {"name": "/page.cynosure.timer/en-US/icon_Onnf2uULNGBw_nsjI9YdVtEnyQVPR9b1w-VS-6-9TLE=.png", "sha256": "3a79dfdae50b346070fe7b2323d61d56d127c9054f47d6f5c3e552fbafbd4cb1", "size": 25541}}, "preferredSigner": "989d5edfbdb5ee99c4a18b31b7f4bf374a6489ab5959267973809306251ef8e8"}, "versions": {"40f91ddcaedd36029222b44830c1bc2fb6bc35c9e49d328598051aba823ec1b0": {"added": 1786749285772, "file": {"name": "/page.cynosure.timer_5.apk", "sha256": "40f91ddcaedd36029222b44830c1bc2fb6bc35c9e49d328598051aba823ec1b0", "size": 1859689, "ipfsCIDv1": "bafybeiggxbyf4rdr4t2lpwka5kk6vyrvkb4dawwz57ujzn42jsl67ykoje"}, "src": {"name": "/page.cynosure.timer_5_src.tar.gz", "sha256": "d84d277219d5502993e057af2d64e6c991262492a04297278d25b0dbee0c7b8f", "size": 625543}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.5", "versionCode": 5, "usesSdk": {"minSdkVersion": 35, "targetSdkVersion": 36}, "signer": {"sha256": ["989d5edfbdb5ee99c4a18b31b7f4bf374a6489ab5959267973809306251ef8e8"]}, "usesPermission": [{"name": "page.cynosure.timer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "page.ooooo.geoshare": {"metadata": {"lastUpdated": 1786866775484, "featureGraphic": {"en-US": {"name": "/page.ooooo.geoshare/en-US/featureGraphic_WAUZw5HPe5tTgHYmtnNQT4Tm-Xk9LruvbZxCJOB05xY=.png", "sha256": "580519c391cf7b9b53807626b673504f84e6f9793d2ebbaf6d9c4224e074e716", "size": 2878}}, "screenshots": {"phone": {"en-US": [{"name": "/page.ooooo.geoshare/en-US/phoneScreenshots/1.png", "sha256": "cb7a1dedc65c015088e3a2eb000de49541779a6954673ea32e8d3aacffb26844", "size": 72735}, {"name": "/page.ooooo.geoshare/en-US/phoneScreenshots/2.png", "sha256": "a6727f3e214bf7d70e1f3e87be025a516fff83573bea1fc89da456f5d278c2b0", "size": 119362}, {"name": "/page.ooooo.geoshare/en-US/phoneScreenshots/3.png", "sha256": "573e837ab16f1172e744426228b26352b04744a36caa422f7d5c582d7d4d2a70", "size": 154308}, {"name": "/page.ooooo.geoshare/en-US/phoneScreenshots/4.png", "sha256": "e63991e556b47991be6635559cbd1263b252b1eb7059dd01ca625ae04ca9164f", "size": 79590}, {"name": "/page.ooooo.geoshare/en-US/phoneScreenshots/5.png", "sha256": "e0e604e368d7de29c24e4f5751b90539c96315e5bf2bf236d32aca8b09786b23", "size": 226976}]}, "sevenInch": {"en-US": [{"name": "/page.ooooo.geoshare/en-US/sevenInchScreenshots/1.png", "sha256": "971c74ef11c3cc5f6c96b48cf3643de0af168fbba2dad52cfd06819f6ed0da16", "size": 70637}, {"name": "/page.ooooo.geoshare/en-US/sevenInchScreenshots/2.png", "sha256": "87ce5760a86ebb4e8738af7f7e9eca21b74922a6ea979d87a92c11e06eca646d", "size": 90800}, {"name": "/page.ooooo.geoshare/en-US/sevenInchScreenshots/3.png", "sha256": "8a0f1841ad3c8fb473dd3b3cbc0e45eb7afb07ca3abac512a0e7a08d8abc5124", "size": 150523}, {"name": "/page.ooooo.geoshare/en-US/sevenInchScreenshots/4.png", "sha256": "9988ca452f0b1c68de7c379ac7e9d3821d91bca4db21da337d63cdac1fd47149", "size": 58873}, {"name": "/page.ooooo.geoshare/en-US/sevenInchScreenshots/5.png", "sha256": "9d89381a3e98aee3e47aaf8ea987531679c115769d2e51f832f951a0b92d1071", "size": 172819}]}, "tenInch": {"en-US": [{"name": "/page.ooooo.geoshare/en-US/tenInchScreenshots/1.png", "sha256": "8bee8148fe3248dc7ecaf9b8d93646e44d33acfbf320c4f66f2c2a0173c735a9", "size": 64636}, {"name": "/page.ooooo.geoshare/en-US/tenInchScreenshots/2.png", "sha256": "79a9f2daae38ba33243b8e70972f7c7ff4e26d3757bf2cd309fa4a49cd8595a8", "size": 102450}, {"name": "/page.ooooo.geoshare/en-US/tenInchScreenshots/3.png", "sha256": "41fd22a00c45b7258ac0b6cbc58ec074dfe6a9a40d69b5322cdc0fe99ecb19cf", "size": 203730}, {"name": "/page.ooooo.geoshare/en-US/tenInchScreenshots/4.png", "sha256": "e53220469d4b79a817e46c69693ba379be892cbe33eac27d3d505250fc398b87", "size": 66501}, {"name": "/page.ooooo.geoshare/en-US/tenInchScreenshots/5.png", "sha256": "d8e87213fdabae4bdeb5f53da00766bd4e2925896a8d82e4895c0eec3417d3fc", "size": 197229}]}}}, "versions": {"ec5152d1d2586b0cc66c26eb91aa20ad8a078b8929cb4ca4b90c53d1a92051df": null, "a71c57866dfdb73c938edfc7b6b209ac3003be4361e3fac7f3b278874b210825": {"added": 1786866775484, "file": {"name": "/page.ooooo.geoshare_46.apk", "sha256": "a71c57866dfdb73c938edfc7b6b209ac3003be4361e3fac7f3b278874b210825", "size": 4156302, "ipfsCIDv1": "bafybeib7liwvi3al63kwgyteenq7wvusehaqud6e4afnspnbkrgcw3or4u"}, "src": {"name": "/page.ooooo.geoshare_46_src.tar.gz", "sha256": "e713ac5a711a1a7b12ae395ccae1a9ebced9ac90b2445441990ad32f380e737c", "size": 8737058}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "6.6.0", "versionCode": 46, "usesSdk": {"minSdkVersion": 25, "targetSdkVersion": 37}, "signer": {"sha256": ["1b27b17a9df05321a93a47df31ed0d6645ebe55d0e89908157d71c1032d17c10"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "page.ooooo.geoshare.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "Connects to map servers (Google Maps, Apple Maps, etc.) to decode links."}}, "whatsNew": {"en-US": "- Added support for Mapy.com navigation links.\n- Added option to open or copy a Google Maps search link.\n- Added dynamic color preference.\n- Improved result screen by putting messaging apps in their own section.\n- Improved intro screen by mentioning Android private space.\n- Fixed support for links in text shared from CoMaps.\n- Fixed support for geo: URIs with name.\n"}}}}, "sh.haven.app": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"a64406ac165d04c1a4bee2fdedc4f3741f39ebe9c56827c10f3a3018e733eb38": null, "2ad3218117b72872dc86b18da3d411a3b066415bc24fd79052ce41b224b93216": null, "f2b8a3aef12c7b0075df3440582e9d0a70333810aeae6658721428bc933f1cf1": {"added": 1786866775484, "file": {"name": "/sh.haven.app_7851.apk", "sha256": "f2b8a3aef12c7b0075df3440582e9d0a70333810aeae6658721428bc933f1cf1", "size": 107561939, "ipfsCIDv1": "bafybeidpbohrfltxxfl344d2uv3mgpi5pbacuniwv6n7tuounfhstssg2m"}, "src": {"name": "/sh.haven.app_7851_src.tar.gz", "sha256": "cd88f14d31d7f1ff49aaa0701711121da387e4c3ca9678565fafef4990b664d2", "size": 137505718}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "5.87.22", "versionCode": 7851, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["ea05a89431961b8ac53c36725452673c2be1c2d7b6e48771617b974e6092b332"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.NFC"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.ACCESS_FINE_LOCATION", "maxSdkVersion": 30}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "sh.haven.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "moe.shizuku.manager.permission.API_V23"}]}, "whatsNew": {"en-US": "Hard links inside local Linux environments now survive and behave: link data lives in a store that outlives deleted directories, every name stays readable, and failures report their real error instead of \"Operation not permitted\" — ending years of intermittent dpkg errors. Nix flakes now work out of the box on a fresh install, no manual workaround.\n"}}, "f72b6ef01c70184a3cb19a60f9248583260a67d098f396b93ca2050b89f2fac0": {"added": 1786749285772, "file": {"name": "/sh.haven.app_7791.apk", "sha256": "f72b6ef01c70184a3cb19a60f9248583260a67d098f396b93ca2050b89f2fac0", "size": 107537363, "ipfsCIDv1": "bafybeih4qw3k66g4cdwug6ja7u4bcqssss5fdy3td7ozhz7p4wzutsedse"}, "src": {"name": "/sh.haven.app_7791_src.tar.gz", "sha256": "e4dad4483bcf9d25f48c4bfb1ddd2b13649902a7ced33ed6ad10789a349691af", "size": 137475243}, "manifest": {"nativecode": ["arm64-v8a"], "versionName": "5.87.16", "versionCode": 7791, "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 35}, "signer": {"sha256": ["ea05a89431961b8ac53c36725452673c2be1c2d7b6e48771617b974e6092b332"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_SPECIAL_USE"}, {"name": "android.permission.USE_BIOMETRIC"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.NFC"}, {"name": "android.permission.REQUEST_INSTALL_PACKAGES"}, {"name": "android.permission.CHANGE_WIFI_MULTICAST_STATE"}, {"name": "android.permission.READ_EXTERNAL_STORAGE", "maxSdkVersion": 32}, {"name": "android.permission.MANAGE_EXTERNAL_STORAGE"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.BLUETOOTH", "maxSdkVersion": 30}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_ADMIN", "maxSdkVersion": 30}, {"name": "android.permission.ACCESS_FINE_LOCATION", "maxSdkVersion": 30}, {"name": "android.permission.USE_FINGERPRINT"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "sh.haven.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}, {"name": "moe.shizuku.manager.permission.API_V23"}]}, "whatsNew": {"en-US": "- A USB device that stops responding — a flaky card reader, or one drawing more power than the phone's port can supply — no longer freezes Haven when you plug it in or unplug it. The stuck device is now handled off the UI thread, so the app stays responsive even while the device itself has wedged.\n- Physically unplugging an open USB drive now tears down its background VM and export on its own, instead of leaving them running until you close the drive by hand.\n"}}}}, "site.remlit.snowdrop": {"metadata": {"lastUpdated": 1786749285772, "icon": {"en-US": {"name": "/icons/site.remlit.snowdrop.6.png"}}}, "versions": {"62c3d045c25bd1926d5f6e8762ab87d7daf640a0d2f3a23e717f431b86dbd33b": {"added": 1786749285772, "file": {"name": "/site.remlit.snowdrop_6.apk", "sha256": "62c3d045c25bd1926d5f6e8762ab87d7daf640a0d2f3a23e717f431b86dbd33b", "size": 3997037, "ipfsCIDv1": "bafybeieeb4yqw77z63ygnlkoajy5glszmcd7oher3rebo3wnepg3bg3yvi"}, "src": {"name": "/site.remlit.snowdrop_6_src.tar.gz", "sha256": "3c6193df73316465f899ca6b58e25d5ada52c3ef32302eb2e5ca4f2d95874360", "size": 4301100}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.0.6-alpha", "versionCode": 6, "usesSdk": {"minSdkVersion": 24, "targetSdkVersion": 37}, "signer": {"sha256": ["0e1c8718e3b5fed7434ab99700e8b93efe999ae765cced144388a84e3c6a5848"]}, "usesPermission": [{"name": "android.permission.INTERNET"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.ACCESS_NETWORK_STATE"}, {"name": "site.remlit.snowdrop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}}}}, "tech.mmarca.openvitals": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"66b6ef8247a0a367bed34269f7b18f5f305f4c53c20912a8f1a8c6d35e3cf368": null, "88808ae4898de2c03a3a805e521c2c33b85b811af072e8c69ff886031aba5a61": null, "fff6233d5fa948f7c56343a1d4a184db00bf53d868366f90be5cbea52e799a9a": {"added": 1786866775484, "file": {"name": "/tech.mmarca.openvitals_1070304459.apk", "sha256": "fff6233d5fa948f7c56343a1d4a184db00bf53d868366f90be5cbea52e799a9a", "size": 17705226, "ipfsCIDv1": "bafybeib6lklkx655fpjblxxmjngzxsbufphgxmmkrhviibplpb2fqwmsqq"}, "src": {"name": "/tech.mmarca.openvitals_1070304459_src.tar.gz", "sha256": "573cae7a386fc3c4326ec02debaf28f1ec94f55aefea4204636c9f8c19941a93", "size": 8773919}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "2.6.4", "versionCode": 1070304459, "features": [{"name": "android.hardware.vulkan.version"}], "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["0416c0651543e951ef3b6c1ed9beb13833bff3a2be9ddacf492270712861e05d"]}, "usesPermission": [{"name": "android.permission.health.READ_STEPS"}, {"name": "android.permission.health.WRITE_STEPS"}, {"name": "android.permission.health.READ_DISTANCE"}, {"name": "android.permission.health.READ_EXERCISE"}, {"name": "android.permission.health.READ_SLEEP"}, {"name": "android.permission.health.WRITE_SLEEP"}, {"name": "android.permission.health.READ_EXERCISE_ROUTES"}, {"name": "android.permission.health.WRITE_EXERCISE"}, {"name": "android.permission.health.WRITE_EXERCISE_ROUTE"}, {"name": "android.permission.health.WRITE_DISTANCE"}, {"name": "android.permission.health.WRITE_ELEVATION_GAINED"}, {"name": "android.permission.health.WRITE_ACTIVE_CALORIES_BURNED"}, {"name": "android.permission.health.WRITE_TOTAL_CALORIES_BURNED"}, {"name": "android.permission.health.READ_HEART_RATE"}, {"name": "android.permission.health.WRITE_HEART_RATE"}, {"name": "android.permission.health.READ_RESTING_HEART_RATE"}, {"name": "android.permission.health.WRITE_RESTING_HEART_RATE"}, {"name": "android.permission.health.READ_HEART_RATE_VARIABILITY"}, {"name": "android.permission.health.WRITE_HEART_RATE_VARIABILITY"}, {"name": "android.permission.health.READ_WEIGHT"}, {"name": "android.permission.health.WRITE_WEIGHT"}, {"name": "android.permission.health.READ_HEIGHT"}, {"name": "android.permission.health.WRITE_HEIGHT"}, {"name": "android.permission.health.READ_BODY_FAT"}, {"name": "android.permission.health.WRITE_BODY_FAT"}, {"name": "android.permission.health.READ_LEAN_BODY_MASS"}, {"name": "android.permission.health.WRITE_LEAN_BODY_MASS"}, {"name": "android.permission.health.READ_BASAL_METABOLIC_RATE"}, {"name": "android.permission.health.WRITE_BASAL_METABOLIC_RATE"}, {"name": "android.permission.health.READ_BONE_MASS"}, {"name": "android.permission.health.WRITE_BONE_MASS"}, {"name": "android.permission.health.READ_BODY_WATER_MASS"}, {"name": "android.permission.health.WRITE_BODY_WATER_MASS"}, {"name": "android.permission.health.READ_FLOORS_CLIMBED"}, {"name": "android.permission.health.WRITE_FLOORS_CLIMBED"}, {"name": "android.permission.health.READ_ACTIVE_CALORIES_BURNED"}, {"name": "android.permission.health.READ_ELEVATION_GAINED"}, {"name": "android.permission.health.READ_WHEELCHAIR_PUSHES"}, {"name": "android.permission.health.WRITE_WHEELCHAIR_PUSHES"}, {"name": "android.permission.health.READ_TOTAL_CALORIES_BURNED"}, {"name": "android.permission.health.READ_SPEED"}, {"name": "android.permission.health.WRITE_SPEED"}, {"name": "android.permission.health.READ_POWER"}, {"name": "android.permission.health.WRITE_POWER"}, {"name": "android.permission.health.READ_STEPS_CADENCE"}, {"name": "android.permission.health.WRITE_STEPS_CADENCE"}, {"name": "android.permission.health.READ_CYCLING_PEDALING_CADENCE"}, {"name": "android.permission.health.WRITE_CYCLING_PEDALING_CADENCE"}, {"name": "android.permission.health.READ_PLANNED_EXERCISE"}, {"name": "android.permission.health.WRITE_PLANNED_EXERCISE"}, {"name": "android.permission.health.READ_HYDRATION"}, {"name": "android.permission.health.WRITE_HYDRATION"}, {"name": "android.permission.health.READ_NUTRITION"}, {"name": "android.permission.health.WRITE_NUTRITION"}, {"name": "android.permission.health.READ_MINDFULNESS"}, {"name": "android.permission.health.WRITE_MINDFULNESS"}, {"name": "android.permission.health.READ_BLOOD_PRESSURE"}, {"name": "android.permission.health.WRITE_BLOOD_PRESSURE"}, {"name": "android.permission.health.READ_OXYGEN_SATURATION"}, {"name": "android.permission.health.WRITE_OXYGEN_SATURATION"}, {"name": "android.permission.health.READ_RESPIRATORY_RATE"}, {"name": "android.permission.health.WRITE_RESPIRATORY_RATE"}, {"name": "android.permission.health.READ_BODY_TEMPERATURE"}, {"name": "android.permission.health.WRITE_BODY_TEMPERATURE"}, {"name": "android.permission.health.READ_VO2_MAX"}, {"name": "android.permission.health.WRITE_VO2_MAX"}, {"name": "android.permission.health.READ_BLOOD_GLUCOSE"}, {"name": "android.permission.health.WRITE_BLOOD_GLUCOSE"}, {"name": "android.permission.health.READ_SKIN_TEMPERATURE"}, {"name": "android.permission.health.READ_MENSTRUATION"}, {"name": "android.permission.health.WRITE_MENSTRUATION"}, {"name": "android.permission.health.READ_OVULATION_TEST"}, {"name": "android.permission.health.WRITE_OVULATION_TEST"}, {"name": "android.permission.health.READ_CERVICAL_MUCUS"}, {"name": "android.permission.health.WRITE_CERVICAL_MUCUS"}, {"name": "android.permission.health.READ_BASAL_BODY_TEMPERATURE"}, {"name": "android.permission.health.WRITE_BASAL_BODY_TEMPERATURE"}, {"name": "android.permission.health.READ_INTERMENSTRUAL_BLEEDING"}, {"name": "android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING"}, {"name": "android.permission.health.READ_SEXUAL_ACTIVITY"}, {"name": "android.permission.health.WRITE_SEXUAL_ACTIVITY"}, {"name": "android.permission.health.READ_HEALTH_DATA_HISTORY"}, {"name": "android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACTIVITY_RECOGNITION"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.BLUETOOTH_ADVERTISE"}, {"name": "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND"}, {"name": "android.permission.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_HEALTH"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.HIGH_SAMPLING_RATE_SENSORS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "app.comaps.permission.READ_NAVIGATION_DATA"}, {"name": "app.comaps.fdroid.permission.READ_NAVIGATION_DATA"}, {"name": "app.comaps.google.permission.READ_NAVIGATION_DATA"}, {"name": "app.comaps.huawei.permission.READ_NAVIGATION_DATA"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "tech.mmarca.openvitals.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "Koerperenergie unterscheidet jetzt eine gute von einer schlechten Nacht: die naechtliche Ladung beruecksichtigt Schlafeffizienz, wache Zeit und deinen Tief- und REM-Anteil, nicht nur die Zeit im Bett. Gewicht und die uebrigen Koerpermasse erscheinen als Trendlinie statt als Kalender farbiger Punkte. Ernaehrung fuehrt Zeitraeume mit dem Tagesdurchschnitt. Korrekturen: Garmin-Schrittzahlen fallen nicht mehr zu niedrig aus, die maximale Herzfrequenz wird nicht mehr geraten.\n", "en-US": "Body Energy now tells a good night from a bad one: overnight charge reflects sleep efficiency, time awake and your deep and REM share, not just how long you were in bed. Weight and the other body measures draw a trend line over week, month and year instead of a calendar of dots. Nutrition periods lead with a daily average. Fixes: Garmin step counts no longer come up short, entry lists stay expanded after a swipe delete, and max heart rate is no longer guessed.\n", "es-ES": "Energia corporal ya distingue una buena noche de una mala: la carga nocturna refleja la eficiencia del sueno, el tiempo despierto y tu proporcion de sueno profundo y REM, no solo cuanto estuviste en la cama. El peso y las demas medidas se dibujan como linea de tendencia en semana, mes y ano en vez de un calendario de puntos. Nutricion encabeza los periodos con la media diaria. Correcciones: los pasos de Garmin ya no se quedan cortos y la frecuencia maxima ya no se inventa.\n", "et": "Keha energia eristab nuud head ood halvast: oine laadimine arvestab une tohusust, arkveloldud aega ning suge- ja REM-une osakaalu, mitte ainult voodis oldud aega. Kaal ja teised kehamootmised joonistatakse trendijoonena varviliste tapikeste kalendri asemel. Toitumine alustab perioode paevakeskmisega. Parandused: Garmini sammud ei jaa enam alla tegeliku ja maksimaalset pulssi enam ei arvata.\n", "it-IT": "Energia corporea distingue ora una notte buona da una cattiva: la carica notturna considera efficienza del sonno, tempo sveglio e la tua quota di sonno profondo e REM, non solo quanto sei rimasto a letto. Peso e le altre misure corporee appaiono come linea di tendenza invece di un calendario di punti colorati. Nutrizione apre i periodi con la media giornaliera. Correzioni: i passi Garmin non risultano piu inferiori al vero e la frequenza massima non viene piu inventata.\n"}}, "9ab0d6713fda67f0e3215801d93c6a3f20ee4b90c65c5ed2375dabeb37f73d22": {"added": 1786749285772, "file": {"name": "/tech.mmarca.openvitals_1070304457.apk", "sha256": "9ab0d6713fda67f0e3215801d93c6a3f20ee4b90c65c5ed2375dabeb37f73d22", "size": 17700130, "ipfsCIDv1": "bafybeiesiyysbkvrblo2voagg4cyl45egjllp5ktg2doilc5k45txw2do4"}, "src": {"name": "/tech.mmarca.openvitals_1070304457_src.tar.gz", "sha256": "bc516aa68436d72fe0407a48eac3dd0d8cc1e2e3e63a238a34c7a3fc14a44c02", "size": 8662045}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a"], "versionName": "2.6.3", "versionCode": 1070304457, "features": [{"name": "android.hardware.vulkan.version"}], "usesSdk": {"minSdkVersion": 26, "targetSdkVersion": 36}, "signer": {"sha256": ["0416c0651543e951ef3b6c1ed9beb13833bff3a2be9ddacf492270712861e05d"]}, "usesPermission": [{"name": "android.permission.health.READ_STEPS"}, {"name": "android.permission.health.WRITE_STEPS"}, {"name": "android.permission.health.READ_DISTANCE"}, {"name": "android.permission.health.READ_EXERCISE"}, {"name": "android.permission.health.READ_SLEEP"}, {"name": "android.permission.health.WRITE_SLEEP"}, {"name": "android.permission.health.READ_EXERCISE_ROUTES"}, {"name": "android.permission.health.WRITE_EXERCISE"}, {"name": "android.permission.health.WRITE_EXERCISE_ROUTE"}, {"name": "android.permission.health.WRITE_DISTANCE"}, {"name": "android.permission.health.WRITE_ELEVATION_GAINED"}, {"name": "android.permission.health.WRITE_ACTIVE_CALORIES_BURNED"}, {"name": "android.permission.health.WRITE_TOTAL_CALORIES_BURNED"}, {"name": "android.permission.health.READ_HEART_RATE"}, {"name": "android.permission.health.WRITE_HEART_RATE"}, {"name": "android.permission.health.READ_RESTING_HEART_RATE"}, {"name": "android.permission.health.WRITE_RESTING_HEART_RATE"}, {"name": "android.permission.health.READ_HEART_RATE_VARIABILITY"}, {"name": "android.permission.health.WRITE_HEART_RATE_VARIABILITY"}, {"name": "android.permission.health.READ_WEIGHT"}, {"name": "android.permission.health.WRITE_WEIGHT"}, {"name": "android.permission.health.READ_HEIGHT"}, {"name": "android.permission.health.WRITE_HEIGHT"}, {"name": "android.permission.health.READ_BODY_FAT"}, {"name": "android.permission.health.WRITE_BODY_FAT"}, {"name": "android.permission.health.READ_LEAN_BODY_MASS"}, {"name": "android.permission.health.WRITE_LEAN_BODY_MASS"}, {"name": "android.permission.health.READ_BASAL_METABOLIC_RATE"}, {"name": "android.permission.health.WRITE_BASAL_METABOLIC_RATE"}, {"name": "android.permission.health.READ_BONE_MASS"}, {"name": "android.permission.health.WRITE_BONE_MASS"}, {"name": "android.permission.health.READ_BODY_WATER_MASS"}, {"name": "android.permission.health.WRITE_BODY_WATER_MASS"}, {"name": "android.permission.health.READ_FLOORS_CLIMBED"}, {"name": "android.permission.health.WRITE_FLOORS_CLIMBED"}, {"name": "android.permission.health.READ_ACTIVE_CALORIES_BURNED"}, {"name": "android.permission.health.READ_ELEVATION_GAINED"}, {"name": "android.permission.health.READ_WHEELCHAIR_PUSHES"}, {"name": "android.permission.health.WRITE_WHEELCHAIR_PUSHES"}, {"name": "android.permission.health.READ_TOTAL_CALORIES_BURNED"}, {"name": "android.permission.health.READ_SPEED"}, {"name": "android.permission.health.WRITE_SPEED"}, {"name": "android.permission.health.READ_POWER"}, {"name": "android.permission.health.WRITE_POWER"}, {"name": "android.permission.health.READ_STEPS_CADENCE"}, {"name": "android.permission.health.WRITE_STEPS_CADENCE"}, {"name": "android.permission.health.READ_CYCLING_PEDALING_CADENCE"}, {"name": "android.permission.health.WRITE_CYCLING_PEDALING_CADENCE"}, {"name": "android.permission.health.READ_PLANNED_EXERCISE"}, {"name": "android.permission.health.WRITE_PLANNED_EXERCISE"}, {"name": "android.permission.health.READ_HYDRATION"}, {"name": "android.permission.health.WRITE_HYDRATION"}, {"name": "android.permission.health.READ_NUTRITION"}, {"name": "android.permission.health.WRITE_NUTRITION"}, {"name": "android.permission.health.READ_MINDFULNESS"}, {"name": "android.permission.health.WRITE_MINDFULNESS"}, {"name": "android.permission.health.READ_BLOOD_PRESSURE"}, {"name": "android.permission.health.WRITE_BLOOD_PRESSURE"}, {"name": "android.permission.health.READ_OXYGEN_SATURATION"}, {"name": "android.permission.health.WRITE_OXYGEN_SATURATION"}, {"name": "android.permission.health.READ_RESPIRATORY_RATE"}, {"name": "android.permission.health.WRITE_RESPIRATORY_RATE"}, {"name": "android.permission.health.READ_BODY_TEMPERATURE"}, {"name": "android.permission.health.WRITE_BODY_TEMPERATURE"}, {"name": "android.permission.health.READ_VO2_MAX"}, {"name": "android.permission.health.WRITE_VO2_MAX"}, {"name": "android.permission.health.READ_BLOOD_GLUCOSE"}, {"name": "android.permission.health.WRITE_BLOOD_GLUCOSE"}, {"name": "android.permission.health.READ_SKIN_TEMPERATURE"}, {"name": "android.permission.health.READ_MENSTRUATION"}, {"name": "android.permission.health.WRITE_MENSTRUATION"}, {"name": "android.permission.health.READ_OVULATION_TEST"}, {"name": "android.permission.health.WRITE_OVULATION_TEST"}, {"name": "android.permission.health.READ_CERVICAL_MUCUS"}, {"name": "android.permission.health.WRITE_CERVICAL_MUCUS"}, {"name": "android.permission.health.READ_BASAL_BODY_TEMPERATURE"}, {"name": "android.permission.health.WRITE_BASAL_BODY_TEMPERATURE"}, {"name": "android.permission.health.READ_INTERMENSTRUAL_BLEEDING"}, {"name": "android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING"}, {"name": "android.permission.health.READ_SEXUAL_ACTIVITY"}, {"name": "android.permission.health.WRITE_SEXUAL_ACTIVITY"}, {"name": "android.permission.health.READ_HEALTH_DATA_HISTORY"}, {"name": "android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACTIVITY_RECOGNITION"}, {"name": "android.permission.BLUETOOTH_SCAN"}, {"name": "android.permission.BLUETOOTH_CONNECT"}, {"name": "android.permission.READ_CALENDAR"}, {"name": "android.permission.BLUETOOTH_ADVERTISE"}, {"name": "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND"}, {"name": "android.permission.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_DATA_SYNC"}, {"name": "android.permission.FOREGROUND_SERVICE_LOCATION"}, {"name": "android.permission.FOREGROUND_SERVICE_HEALTH"}, {"name": "android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"}, {"name": "android.permission.HIGH_SAMPLING_RATE_SENSORS"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.RECEIVE_BOOT_COMPLETED"}, {"name": "android.permission.VIBRATE"}, {"name": "app.comaps.permission.READ_NAVIGATION_DATA"}, {"name": "app.comaps.fdroid.permission.READ_NAVIGATION_DATA"}, {"name": "app.comaps.google.permission.READ_NAVIGATION_DATA"}, {"name": "app.comaps.huawei.permission.READ_NAVIGATION_DATA"}, {"name": "android.permission.WAKE_LOCK"}, {"name": "tech.mmarca.openvitals.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"de-DE": "Deine Garmin-Uhr kann jetzt verbunden bleiben: Live-Herzfrequenz und Schritte auf dem Dashboard, Wetter aus einer Wetter-App, dein Kalender am Handgelenk, Telefon-finden auch bei stumm und importierte GPS-Ephemeriden fuer Fixes in Sekunden. Eine Uhr-Kachel mit Sync-Knopf kommt aufs Dashboard, die Einrichtung erhaelt einen Alle-erteilen-Knopf und der Schlaf-Score wird auf wissenschaftlichen Saeulen neu aufgebaut. Dazu Korrekturen an Cardio-Last und Navigation.\n", "en-US": "Your Garmin watch can now stay connected: live heart rate and steps on the dashboard, weather from a phone weather app, your calendar on the wrist, find-my-phone that rings even on silent, and imported GPS ephemeris for second-long fixes. A watch tile with a sync button joins the dashboard, onboarding gains a Grant all button, and the sleep score is rebuilt on published sleep-science pillars. Plus fixes to cardio load accuracy and body tile navigation.\n", "es-ES": "Tu reloj Garmin puede permanecer conectado: frecuencia cardiaca y pasos en vivo en el panel, tiempo desde una app del telefono, tu calendario en la muneca, buscar el telefono aunque este silenciado y efemerides GPS importadas para fijaciones en segundos. Una tarjeta del reloj con boton de sincronizar llega al panel, la bienvenida gana un boton Conceder todo y la puntuacion de sueno se reconstruye sobre pilares cientificos. Ademas, correcciones de carga cardio y navegacion.\n", "et": "Sinu Garmini kell voib nuud jaeaeda uhendatuks: reaalajas pulss ja sammud armatuurlaual, ilm telefoni ilmarakendusest, kalender randmel, telefoni otsimine ka vaigistatuna ja imporditud GPS-efemeriid sekundikiireteks fiksideks. Armatuurlauale lisandub kella kaart sunkroonimisnupuga, seadistus saab nupu Anna koik ja unekoor ehitati umber uneteaduse alustele. Lisaks kardiokoormuse tapsuse ja navigeerimise parandused.\n", "it-IT": "Il tuo orologio Garmin puo restare connesso: frequenza cardiaca e passi dal vivo nella dashboard, meteo da un'app del telefono, il tuo calendario al polso, trova-telefono che squilla anche in silenzioso ed effemeridi GPS importate per fix in secondi. Una scheda orologio con pulsante di sincronizzazione arriva nella dashboard, la configurazione guadagna un pulsante Concedi tutto e il punteggio del sonno e ricostruito su pilastri scientifici. In piu correzioni al carico cardio e alla navigazione.\n"}}}}, "us.spotco.maps": {"metadata": {"lastUpdated": 1786749285772}, "versions": {"d3107aa1712dc6ae99d23d2108a0e4ee8141a071724b5db87ccd2ee118a941e7": null, "01ebece86d3358064902e8fb4dbc936f5c3894eecb186218d57c2b42468b83ec": {"added": 1786749285772, "file": {"name": "/us.spotco.maps_50.apk", "sha256": "01ebece86d3358064902e8fb4dbc936f5c3894eecb186218d57c2b42468b83ec", "size": 795305, "ipfsCIDv1": "bafybeibfxbtj42wghq76sobopnfacttt6zau5s4dkbvm7deivus44lkiha"}, "src": {"name": "/us.spotco.maps_50_src.tar.gz", "sha256": "c45cac40ed60b4ba34c11284f2fa56ba4d386eadb2126ec6795bfd7527d8e1b0", "size": 1430568}, "manifest": {"versionName": "5.0", "versionCode": 50, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 35}, "signer": {"sha256": ["9f7f366e7e5ca659a0ed56a0557f9e59bd3f50e972ad91e5fa6be1efaadadab7"]}, "usesPermission": [{"name": "android.permission.ACCESS_COARSE_LOCATION"}, {"name": "android.permission.ACCESS_FINE_LOCATION"}, {"name": "android.permission.INTERNET"}]}, "antiFeatures": {"NonFreeNet": {"en-US": "App depends on Google Maps website."}}, "whatsNew": {"en-US": "Bugfixes"}}}}, "xyz.metiq": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"1571d0571c16166ca6a0dcb5a3362ea3a3f41002824aba95d3122282aa3cb2f6": null, "bcab8a0008befe3f78b917b52dfcbedc212a3535e9c8b07f5eb8823984dd324a": {"added": 1786866775484, "file": {"name": "/xyz.metiq_34.apk", "sha256": "bcab8a0008befe3f78b917b52dfcbedc212a3535e9c8b07f5eb8823984dd324a", "size": 12922385, "ipfsCIDv1": "bafybeib22hpcphsgparqt27fk5raxiu6guiuantv42dck5gachlymyfxdm"}, "src": {"name": "/xyz.metiq_34_src.tar.gz", "sha256": "5737a5d1c08d4eef55f175fc6da1a67e08771f29a1d46479cc0b57bc91f910dc", "size": 62433563}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "0.19.0", "versionCode": 34, "usesSdk": {"minSdkVersion": 28, "targetSdkVersion": 36}, "signer": {"sha256": ["66b3797da88c1e2676b6d34056f6cea82d7ea59c000743b0f203f7eff88c0581"]}, "usesPermission": [{"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "xyz.metiq.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "• New ambient sounds: water stream and crickets\n• Sleep timer keeps running when you switch sounds\n• Sleep timer is more reliable and no longer lost if the app restarts\n", "es-ES": "• Nuevos sonidos ambientales: arroyo y grillos\n• El temporizador sigue funcionando al cambiar de sonido\n• Temporizador más fiable: ya no se pierde si la aplicación se reinicia\n", "fr-FR": "• Nouveaux sons d'ambiance: ruisseau et grillons\n• La minuterie continue lorsque vous changez de son\n• Minuterie plus fiable: elle n'est plus perdue si l'application redémarre\n", "it-IT": "• Nuovi suoni ambientali: ruscello e grilli\n• Il timer continua quando cambi suono\n• Timer più affidabile: non si perde più se l'app si riavvia\n", "pl-PL": "• Nowe dźwięki otoczenia: strumień i świerszcze\n• Minutnik działa dalej przy zmianie dźwięku\n• Minutnik jest bardziej niezawodny: nie znika po ponownym uruchomieniu aplikacji\n", "pt-BR": "• Novos sons ambientes: riacho e grilos\n• O temporizador continua ao trocar de som\n• Temporizador mais confiável: não se perde mais se o app reiniciar\n", "zh-CN": "• 新增环境音：溪流和蟋蟀\n• 切换声音时定时器继续运行\n• 定时器更可靠：应用重启后不再丢失\n"}}}}, "xyz.waozi.inbe": {"metadata": {"lastUpdated": 1786866775484}, "versions": {"b81bc19e74304c4f072c1235d2d93b698c56824d7ab7fcfa079325111086ca21": null, "96d65144368a6b92fa051d76bddc194db3f2ac9710112811bd8f5e46d98fa202": null, "185e27ed0f69819f7c9a51d0f417c7c67ca731690757c39861cce95b5676ad41": {"added": 1786866775484, "file": {"name": "/xyz.waozi.inbe_98.apk", "sha256": "185e27ed0f69819f7c9a51d0f417c7c67ca731690757c39861cce95b5676ad41", "size": 13081183, "ipfsCIDv1": "bafybeigoy6kzcogf5dcz2gj5ndqq5u2fjq4g2rgse7sgjq6rab3pqmfiry"}, "src": {"name": "/xyz.waozi.inbe_98_src.tar.gz", "sha256": "4e0700b1e3b67635370b66aae0b141f02ec26aacbd2be89c52d1bd6c0283f078", "size": 111833474}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.8.23", "versionCode": 98, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["47648dc7665db12a97c3077a4892ce29072c756bb31b5c331b8924493c888475"]}, "usesPermission": [{"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "xyz.waozi.inbe.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Fixed\n---\n- Properly fixed accented characters (ä ö ü ß é ñ č etc.) typed into text fields rendering in a different, broken font. The active UI font is now dynamic in kryon and renders every glyph its file contains in its own typeface, instead of the brittle per-locale codepoint set that missed any character not present in the current locale's file. (1.8.20 only regenerated the font subset; this is the root-cause fix in kryon.)\nChanged\n---\n- Bumped the vendored Kryon pointer, and excluded Kryon'"}}, "0fe955422524b4394c842203c65054bd90643000bc87fccfd94cdc4ce263ddf0": {"added": 1786749285772, "file": {"name": "/xyz.waozi.inbe_97.apk", "sha256": "0fe955422524b4394c842203c65054bd90643000bc87fccfd94cdc4ce263ddf0", "size": 13076596, "ipfsCIDv1": "bafybeigkhmcla6qvpgft5fd4terccnbv2vt3a65wpuaymtfxoumgz3qr4e"}, "src": {"name": "/xyz.waozi.inbe_97_src.tar.gz", "sha256": "fb4f2fee19fe9ea7c1fb3d07551b2cba8a8e14b5b1c0a004b723b4e550236104", "size": 110986848}, "manifest": {"nativecode": ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"], "versionName": "1.8.22", "versionCode": 97, "usesSdk": {"minSdkVersion": 21, "targetSdkVersion": 36}, "signer": {"sha256": ["47648dc7665db12a97c3077a4892ce29072c756bb31b5c331b8924493c888475"]}, "usesPermission": [{"name": "android.permission.WAKE_LOCK"}, {"name": "android.permission.INTERNET"}, {"name": "android.permission.POST_NOTIFICATIONS"}, {"name": "android.permission.FOREGROUND_SERVICE"}, {"name": "android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"}, {"name": "xyz.waozi.inbe.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"}]}, "whatsNew": {"en-US": "Fixed\n---\n- Fixed a ghost-click bug when closing the sidebar by swiping left on mobile: the pointer release bled through to the newly-shown screen, triggering a stray click on whatever nav item or button was under the release point (e.g. opening About). The release is now consumed before the screen switch.\n- Fixed sidebar navigation returning to the wrong screen: closing the sidebar now remembers and returns to the screen it was opened from, and the return-on-back flag is properly cleared on re-"}}}}}}