{ "repo": { "timestamp": 1676634233000, "version": 20002, "name": "My First F-Droid Repo Demo", "icon": "icon.png", "address": "https://MyFirstFDroidRepo.org/fdroid/repo", "description": "This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/fdroid.", "mirrors": [ "http://foobarfoobarfoobar.onion/fdroid/repo", "https://foo.bar/fdroid/repo" ] }, "requests": { "install": [ "org.adaway" ], "uninstall": [ "com.android.vending", "com.facebook.orca" ] }, "apps": [ { "categories": [ "Phone & SMS" ], "suggestedVersionName": "0.9", "suggestedVersionCode": "9", "description": "In order to keep away curious eyes, SMS-bypass filters incoming SMS messages\nbefore they reach your inbox. Based on bughunter2.smsfilter.\n\nFeatures:\n\n* Discrete fake app \"Battery level\": Long tap on Battery percentage will show SMS.\n* Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings\n* Add contact from contact list\n* Export messages to a text file", "donate": "http://rodolphe.souchaud.free.fr/donate", "flattrID": "cad90e036b975ed129a3ce80a0750466", "issueTracker": "https://gitlab.com/souch/SMSbypass/issues", "license": "GPL-3.0-only", "sourceCode": "https://gitlab.com/souch/SMSbypass/tree/HEAD", "summary": "Filter SMS and show them in a fake app", "webSite": "https://gitlab.com/souch/SMSbypass", "added": 1524700800000, "icon": "souch.smsbypass.9.png", "packageName": "souch.smsbypass", "lastUpdated": 1524700800000, "localized": { "en-US": { "name": "Battery level" } } }, { "categories": [ "Development" ], "suggestedVersionCode": "4", "license": "Unknown", "name": "Caffeine Tile", "summary": "Test app for extracting icons when an XML one is default", "added": 1539129600000, "packageName": "info.zwanenburg.caffeinetile", "lastUpdated": 1539129600000 }, { "categories": [ "tests" ], "suggestedVersionCode": "9999999", "license": "Unknown", "name": "Duplicate Permisssions", "summary": "Test app for all possible ", "added": 1513900800000, "icon": "duplicate.permisssions.9999999.png", "packageName": "duplicate.permisssions", "lastUpdated": 1513900800000 }, { "categories": [ "System" ], "suggestedVersionName": "0.2.1", "suggestedVersionCode": "2000", "description": "F-Droid can make use of system privileges or permissions to\ninstall, update and remove applications on its own. The only way to obtain those\nprivileges is to become a system app.\n\nThis is where the Privileged Extension comes in - being a separate app and much\nsmaller, it can be installed as a system app and communicate with the main app\nvia AIDL IPC.\n\nThis has several advantages:\n\n* Reduced disk usage in the system partition\n* System updates don't remove F-Droid\n* The process of installing into system via root is safer\n\nThis is packaged as an OTA (Over-The-Air) update ZIP file. It must be installed\nusing TWRP or other Android recovery that can flash updates to the system from\nthe /data/data/org.fdroid.fdroid folder on the /data partition. The standalone\nAPK is called F-Droid Privileged Extension.", "donate": "https://f-droid.org/about", "issueTracker": "https://gitlab.com/fdroid/privileged-extension/issues", "license": "Apache-2.0", "sourceCode": "https://gitlab.com/fdroid/privileged-extension", "summary": "Tests whether OTA ZIP files are being include", "webSite": "https://f-droid.org", "added": 1457568000000, "packageName": "fake.ota.update", "lastUpdated": 1457568000000, "localized": { "en-US": { "name": "fake.ota.update_1234" } } }, { "categories": [ "Development" ], "suggestedVersionCode": "987", "license": "Unknown", "name": "No minSdkVersion or targetSdkVersion", "summary": "An APK without any block in AndroidManifest.xml", "added": 1539129600000, "icon": "no.min.target.sdk.987.png", "packageName": "no.min.target.sdk", "lastUpdated": 1539129600000 }, { "bitcoin": "1Fi5xUHiAPRKxHvyUGVFGt9extBe8Srdbk", "categories": [ "Development" ], "suggestedVersionCode": "99999999", "liberapay": "12334", "license": "GPL-3.0-only", "sourceCode": "https://github.com/eighthave/urzip", "added": 1388448000000, "icon": "obb.main.oldversion.1444412523.png", "packageName": "obb.main.oldversion", "lastUpdated": 1388448000000, "localized": { "en-US": { "name": "OBB Main Old Version" } } }, { "bitcoin": "1Fi5xUHiAPRKxHvyUGVFGt9extBe8Srdbk", "categories": [ "Development" ], "suggestedVersionCode": "99999999", "license": "GPL-3.0-only", "sourceCode": "https://github.com/eighthave/urzip", "added": 1444608000000, "icon": "obb.main.twoversions.1101617.png", "packageName": "obb.main.twoversions", "lastUpdated": 1466380800000, "localized": { "en-US": { "name": "OBB Main Two Versions" } } }, { "bitcoin": "1Fi5xUHiAPRKxHvyUGVFGt9extBe8Srdbk", "categories": [ "Development" ], "suggestedVersionCode": "99999999", "license": "GPL-3.0-only", "sourceCode": "https://github.com/eighthave/urzip", "added": 1461369600000, "icon": "obb.mainpatch.current.1619.png", "packageName": "obb.mainpatch.current", "lastUpdated": 1496275200000, "localized": { "en-US": { "featureGraphic": "featureGraphic_ffhLaojxbGAfu9ROe1MJgK5ux8d0OVc6b65nmvOBaTk=.png", "icon": "icon_WI0pkO3LsklrsTAnRr-OQSxkkoMY41lYe2-fAvXLiLg=.png", "name": "OBB Main/Patch Current", "phoneScreenshots": [ "screenshot-main.png" ], "sevenInchScreenshots": [ "screenshot-tablet-main.png" ] } } }, { "antiFeatures": [ "NoSourceSince", "NonFreeNet" ], "categories": [ "Multimedia", "Security", "Time" ], "suggestedVersionName": "1.5", "suggestedVersionCode": "6", "description": "Activates silent mode during calendar events.", "issueTracker": "https://github.com/miguelvps/PoliteDroid/issues", "license": "GPL-3.0-only", "sourceCode": "https://github.com/miguelvps/PoliteDroid", "summary": "Calendar tool", "added": 1498176000000, "icon": "com.politedroid.6.png", "packageName": "com.politedroid", "lastUpdated": 1498176000000, "localized": { "en-US": { "name": "Polite Droid" } } }, { "authorWebSite": "https://guardianproject.info", "bitcoin": "1Fi5xUHiAPRKxHvyUGVFGt9extBe8Srdbk", "categories": [ "Development", "GuardianProject", "1", "2.0" ], "suggestedVersionCode": "2147483647", "description": "It\u2019s Urzip \u662f\u4e00\u4e2a\u83b7\u5f97\u5df2\u5b89\u88c5 APK \u76f8\u5173\u4fe1\u606f\u7684\u5b9e\u7528\u5de5\u5177\u3002\u5b83\u4ece\u60a8\u7684\u8bbe\u5907\u4e0a\u5df2\u5b89\u88c5\u7684\u6240\u6709\u5e94\u7528\u5f00\u59cb\uff0c\u4e00\u952e\u89e6\u6478\u5373\u53ef\u663e\u793a APK \u7684\u6307\u7eb9\uff0c\u5e76\u4e14\u63d0\u4f9b\u5230\u8fbe virustotal.com \u548c androidobservatory.org \u7684\u5feb\u6377\u94fe\u63a5\uff0c\u8ba9\u60a8\u65b9\u4fbf\u5730\u4e86\u89e3\u7279\u5b9a APK \u7684\u6863\u6848\u3002\u5b83\u8fd8\u53ef\u4ee5\u8ba9\u60a8\u5bfc\u51fa\u7b7e\u540d\u8bc1\u4e66\u548c\u751f\u6210 ApkSignaturePin Pin \u6587\u4ef6\u4f9b TrustedIntents \u5e93\u4f7f\u7528\u3002\n\n\u2605 Urzip \u652f\u6301\u4e0b\u5217\u8bed\u8a00\uff1a Deutsch, English, espa\u00f1ol, suomi, \u65e5\u672c\u8a9e, \ud55c\uad6d\uc5b4, Norsk, portugu\u00eas (Portugal), \u0420\u0443\u0441\u0441\u043a\u0438\u0439, Sloven\u0161\u010dina, T\u00fcrk\u00e7e\n\u6ca1\u770b\u5230\u60a8\u7684\u8bed\u8a00\uff1f\u5e2e\u5fd9\u7ffb\u8bd1\u672c\u5e94\u7528\u5427\uff1a\nhttps://www.transifex.com/projects/p/urzip\n\n\u2605 \u81f4\u7528\u6237\uff1a\u6211\u4eec\u8fd8\u7f3a\u5c11\u4f60\u559c\u6b22\u7684\u529f\u80fd\uff1f\u53d1\u73b0\u4e86\u4e00\u4e2a bug\uff1f\u8bf7\u544a\u8bc9\u6211\u4eec\uff01\u6211\u4eec\u4e50\u4e8e\u542c\u53d6\u60a8\u7684\u610f\u89c1\u3002\u8bf7\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\u81f3: support@guardianproject.info \u6216\u8005\u52a0\u5165\u6211\u4eec\u7684\u804a\u5929\u5ba4 https://guardianproject.info/contact\n", "issueTracker": "https://dev.guardianproject.info/projects/urzip/issues", "license": "GPL-3.0-only", "openCollective": "f-droid-just-testing", "sourceCode": "https://github.com/guardianproject/urzip", "summary": "\u4e00\u4e2a\u5b9e\u7528\u5de5\u5177\uff0c\u83b7\u53d6\u5df2\u5b89\u88c5\u5728\u60a8\u7684\u8bbe\u5907\u4e0a\u7684\u5e94\u7528\u7684\u6709\u5173\u4fe1\u606f", "webSite": "https://dev.guardianproject.info/projects/urzip", "added": 1466640000000, "icon": "info.guardianproject.urzip.100.png", "packageName": "info.guardianproject.urzip", "lastUpdated": 1466640000000, "localized": { "en-US": { "description": "full description\n", "featureGraphic": "featureGraphic_GFRT5BovZsENGpJq1HqPODGWBRPWQsx25B95Ol5w_wU=.png", "icon": "icon_NJXNzMcyf-v9i5a1ElJi0j9X1LvllibCa48xXYPlOqQ=.png", "name": "title", "summary": "short description", "video": "video", "whatsNew": "default" } } } ], "packages": { "com.politedroid": [ { "added": 1498176000000, "antiFeatures": [ "KnownVuln", "NonFreeAssets", "UpstreamNonFree" ], "apkName": "com.politedroid_6.apk", "hash": "70c2f776a2bac38a58a7d521f96ee0414c6f0fb1de973c3ca8b10862a009247d", "hashType": "sha256", "minSdkVersion": 14, "packageName": "com.politedroid", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 16578, "targetSdkVersion": 21, "uses-permission": [ [ "android.permission.READ_CALENDAR", null ], [ "android.permission.RECEIVE_BOOT_COMPLETED", null ] ], "versionCode": 6, "versionName": "1.5" }, { "added": 1498176000000, "apkName": "com.politedroid_5.apk", "hash": "5bdbfa071cca4b8d05ced41d6b28763595d6e8096cca5bbf0f9253c9a2622e5d", "hashType": "sha256", "minSdkVersion": 3, "packageName": "com.politedroid", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 18817, "targetSdkVersion": 10, "uses-permission": [ [ "android.permission.READ_CALENDAR", null ], [ "android.permission.RECEIVE_BOOT_COMPLETED", null ] ], "versionCode": 5, "versionName": "1.4" }, { "added": 1498176000000, "apkName": "com.politedroid_4.apk", "hash": "c809bdff83715fbf919f3840ee09869b038e209378b906e135ee40d3f0e1f075", "hashType": "sha256", "minSdkVersion": 3, "packageName": "com.politedroid", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 18489, "uses-permission": [ [ "android.permission.READ_CALENDAR", null ], [ "android.permission.RECEIVE_BOOT_COMPLETED", null ], [ "android.permission.WRITE_EXTERNAL_STORAGE", null ], [ "android.permission.READ_PHONE_STATE", null ], [ "android.permission.READ_EXTERNAL_STORAGE", null ] ], "versionCode": 4, "versionName": "1.3" }, { "added": 1498176000000, "antiFeatures": [ "KnownVuln", "NonFreeAssets", "UpstreamNonFree" ], "apkName": "com.politedroid_3.apk", "hash": "665d03d61ebc642289fda697f71a59305b0202b16cafc5ffdae91cbe91f0b25d", "hashType": "sha256", "minSdkVersion": 3, "packageName": "com.politedroid", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 17552, "uses-permission": [ [ "android.permission.READ_CALENDAR", null ], [ "android.permission.RECEIVE_BOOT_COMPLETED", null ], [ "android.permission.WRITE_EXTERNAL_STORAGE", null ], [ "android.permission.READ_PHONE_STATE", null ], [ "android.permission.READ_EXTERNAL_STORAGE", null ] ], "versionCode": 3, "versionName": "1.2" } ], "duplicate.permisssions": [ { "added": 1513900800000, "apkName": "duplicate.permisssions_9999999.apk", "hash": "8367857fe75f85321ce2c344b34804d0bc193707f6ba03710d025d9030803434", "hashType": "sha256", "minSdkVersion": 18, "packageName": "duplicate.permisssions", "sig": "056c9f1554c40ba59a2103009c82b420", "signer": "659e1fd284549f70d13fb02c620100e27eeea3420558cce62b0f5d4cf2b77d84", "size": 27446, "targetSdkVersion": 27, "uses-permission": [ [ "android.permission.INTERNET", null ], [ "android.permission.ACCESS_NETWORK_STATE", null ], [ "android.permission.ACCESS_WIFI_STATE", null ], [ "android.permission.CHANGE_WIFI_MULTICAST_STATE", null ], [ "android.permission.INTERNET", null ], [ "android.permission.WRITE_EXTERNAL_STORAGE", 18 ], [ "android.permission.READ_EXTERNAL_STORAGE", 18 ] ], "uses-permission-sdk-23": [ [ "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS", 27 ], [ "android.permission.REQUEST_INSTALL_PACKAGES", null ] ], "versionCode": 9999999 } ], "fake.ota.update": [ { "added": 1457568000000, "apkName": "fake.ota.update_1234.zip", "hash": "897a92a4ccff4f415f6ba275b2af16d4ecaee60a983b215bddcb9f8964e7a24c", "hashType": "sha256", "packageName": "fake.ota.update", "size": 233, "versionCode": 1234, "versionName": "897a92a" } ], "info.guardianproject.urzip": [ { "added": 1466640000000, "apkName": "urzip-; \u0420\u0430\u0445\u043c\u0430\u0301, [r\u0250x\u02c8man\u02b2\u026an\u0259f] \u0633\u064a\u0631\u062c\u064a_\u0631\u062e\u0645\u0627\u0646\u064a\u0646\u0648\u0641 \u8c22\u00b7.apk", "hash": "15c0ec72c74a3791f42cdb43c57df0fb11a4dbb656851bbb8cf05b26a8372789", "hashType": "sha256", "minSdkVersion": 4, "packageName": "info.guardianproject.urzip", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 11471, "targetSdkVersion": 18, "versionCode": 100, "versionName": "0.1" } ], "info.zwanenburg.caffeinetile": [ { "added": 1539129600000, "apkName": "info.zwanenburg.caffeinetile_4.apk", "hash": "dbbdd7deadb038862f426b71efe4a64df8c3edf25d669e935f349510e16f65db", "hashType": "sha256", "minSdkVersion": 24, "packageName": "info.zwanenburg.caffeinetile", "sig": "03f9b2f848d22fd1d8d1331e8b1b486d", "signer": "51cfa5c8a743833ad89acf81cb755936876a5c8b8eca54d1ffdcec0cdca25d0e", "size": 11740, "targetSdkVersion": 25, "uses-permission": [ [ "android.permission.WAKE_LOCK", null ] ], "versionCode": 4, "versionName": "1.3" } ], "no.min.target.sdk": [ { "added": 1539129600000, "apkName": "no.min.target.sdk_987.apk", "hash": "e2e1dc1d550df2b5bc383860139207258645b5540abeccd305ed8b2cb6459d2c", "hashType": "sha256", "minSdkVersion": 3, "packageName": "no.min.target.sdk", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 14102, "uses-permission": [ [ "android.permission.WRITE_EXTERNAL_STORAGE", null ], [ "android.permission.READ_PHONE_STATE", null ], [ "android.permission.READ_EXTERNAL_STORAGE", null ] ], "versionCode": 987, "versionName": "1.2-fake" } ], "obb.main.oldversion": [ { "added": 1388448000000, "apkName": "obb.main.oldversion_1444412523.apk", "hash": "c5f149e526f89c05c62923bdb7bb1e2be5673c46ec85143f41e514340631449c", "hashType": "sha256", "minSdkVersion": 4, "obbMainFile": "main.1434483388.obb.main.oldversion.obb", "obbMainFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "packageName": "obb.main.oldversion", "sig": "eb41d4d6082bb3e81c3d58dbf7fc7332", "signer": "818e469465f96b704e27be2fee4c63ab9f83ddf30e7a34c7371a4728d83b0bc1", "size": 14323, "targetSdkVersion": 18, "uses-permission": [ [ "android.permission.INTERNET", null ], [ "android.permission.ACCESS_NETWORK_STATE", 22 ], [ "android.permission.ACCESS_WIFI_STATE", null ], [ "android.permission.CHANGE_WIFI_MULTICAST_STATE", null ], [ "android.permission.CHANGE_NETWORK_STATE", null ], [ "android.permission.CHANGE_WIFI_STATE", null ], [ "android.permission.BLUETOOTH", null ], [ "android.permission.BLUETOOTH_ADMIN", 18 ], [ "android.permission.RECEIVE_BOOT_COMPLETED", null ], [ "android.permission.NFC", null ] ], "uses-permission-sdk-23": [ [ "android.permission.WRITE_EXTERNAL_STORAGE", null ], [ "android.permission.WRITE_SETTINGS", 25 ] ], "versionCode": 1444412523, "versionName": "0.1" } ], "obb.main.twoversions": [ { "added": 1466380800000, "apkName": "obb.main.twoversions_1101617.apk", "hash": "9bc74566f089ef030ac33e7fbd99d92f1a38f363fb499fed138d9e7b774e821c", "hashType": "sha256", "minSdkVersion": 4, "obbMainFile": "main.1101615.obb.main.twoversions.obb", "obbMainFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "packageName": "obb.main.twoversions", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 11481, "srcname": "obb.main.twoversions_1101617_src.tar.gz", "targetSdkVersion": 18, "versionCode": 1101617, "versionName": "0.1" }, { "added": 1451606400000, "apkName": "obb.main.twoversions_1101615.apk", "hash": "7b0b7b9ba248e15751a16e3a0e01e1e24cbb673686c38422030cb75d5c33f0bb", "hashType": "sha256", "minSdkVersion": 4, "obbMainFile": "main.1101615.obb.main.twoversions.obb", "obbMainFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "packageName": "obb.main.twoversions", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 11480, "targetSdkVersion": 18, "versionCode": 1101615, "versionName": "0.1" }, { "added": 1444608000000, "apkName": "obb.main.twoversions_1101613.apk", "hash": "cce97a52ff18d843185be7f22ecb1a557c36b7a9f8ba07a8be94e328e00b35dc", "hashType": "sha256", "minSdkVersion": 4, "obbMainFile": "main.1101613.obb.main.twoversions.obb", "obbMainFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "packageName": "obb.main.twoversions", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 11477, "targetSdkVersion": 18, "versionCode": 1101613, "versionName": "0.1" } ], "obb.mainpatch.current": [ { "added": 1461369600000, "apkName": "obb.mainpatch.current_1619.apk", "hash": "eda5fc3ecfdac3252717e36bdbc9820865baeef162264af9ba5db7364f0e7a0c", "hashType": "sha256", "minSdkVersion": 4, "obbMainFile": "main.1619.obb.mainpatch.current.obb", "obbMainFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "obbPatchFile": "patch.1619.obb.mainpatch.current.obb", "obbPatchFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "packageName": "obb.mainpatch.current", "sig": "b4964fd759edaa54e65bb476d0276880", "signer": "32a23624c201b949f085996ba5ed53d40f703aca4989476949cae891022e0ed6", "size": 11479, "targetSdkVersion": 18, "versionCode": 1619, "versionName": "0.1" }, { "added": 1496275200000, "apkName": "obb.mainpatch.current_1619_another-release-key.apk", "hash": "42e7d6d2f8254aaf9fe95ba6ecc233ee8c3cd543a3e4f3f9ebe1b638221122fa", "hashType": "sha256", "minSdkVersion": 4, "obbMainFile": "main.1619.obb.mainpatch.current.obb", "obbMainFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "obbPatchFile": "patch.1619.obb.mainpatch.current.obb", "obbPatchFileSha256": "d3eb539a556352f3f47881d71fb0e5777b2f3e9a4251d283c18c67ce996774b7", "packageName": "obb.mainpatch.current", "sig": "4cbb9827107da5ab4f34228fa997fbf8", "signer": "ce9e200667f02d96d49891a2e08a3c178870e91853d61bdd33ef5f0b54701aa5", "size": 10541, "targetSdkVersion": 18, "versionCode": 1619, "versionName": "0.1" } ], "souch.smsbypass": [ { "added": 1524700800000, "apkName": "souch.smsbypass_9.apk", "hash": "80b0ae68a1189baa3ee6717092e3dbf1a4210165f7f7e5f2f9616bd63a2ec01d", "hashType": "sha256", "minSdkVersion": 8, "packageName": "souch.smsbypass", "sig": "e50c99753cd45e2736d52cb49be07581", "signer": "d3aec784b1fd71549fc22c999789122e3639895db6bd585da5835fbe3db6985c", "size": 81295, "targetSdkVersion": 18, "uses-permission": [ [ "android.permission.RECEIVE_SMS", null ], [ "android.permission.SEND_SMS", null ], [ "android.permission.READ_CONTACTS", null ], [ "android.permission.WRITE_EXTERNAL_STORAGE", null ], [ "android.permission.VIBRATE", null ], [ "android.permission.READ_EXTERNAL_STORAGE", null ] ], "versionCode": 9, "versionName": "0.9" } ] } }