open-keychain/OpenPGP-Keychain/AndroidManifest.xml

439 lines
20 KiB
XML
Raw Normal View History

2010-04-06 15:54:51 -04:00
<?xml version="1.0" encoding="utf-8"?>
2012-06-09 11:04:18 -04:00
<!--
Copyright (C) 2012 Dominik Schürmann <dominik@dominikschuermann.de>
2012-06-09 11:04:18 -04:00
Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
2010-04-06 15:54:51 -04:00
2012-06-09 11:04:18 -04:00
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
2012-03-09 06:13:28 -05:00
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2013-01-16 08:31:16 -05:00
package="org.sufficientlysecure.keychain"
2012-04-11 13:29:27 -04:00
android:installLocation="auto"
android:versionCode="20000"
2012-04-14 10:18:06 -04:00
android:versionName="2.0" >
2012-03-09 06:13:28 -05:00
<!--
General remarks
===============
- Last APG 1 version was 10900 (1.0.9 beta 00)
- APG 2 starting with versionCode 20000!
2012-09-12 14:09:38 -04:00
Association of file types to APG
=================================
2013-03-19 20:14:19 -04:00
General remarks about file ending conventions:
- *.gpg for binary files
- *.asc for ascii armored files
The actual content can be anything.
The file ending only shows if it is binary or ascii encoded.
Remarks about the ugly android:pathPattern:
We are matching all files with a specific file ending.
This is done in an ugly way because of Android limitations.
Read http://stackoverflow.com/questions/1733195/android-intent-filter-for-a-particular-file-extension
and http://stackoverflow.com/questions/3400072/pathpattern-to-match-file-extension-does-not-work-if-a-period-exists-elsewhere-i/8599921
for more information.
-->
2012-03-22 15:38:50 -04:00
2012-03-09 06:13:28 -05:00
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
2012-03-09 06:13:28 -05:00
<uses-feature
android:name="android.hardware.wifi"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:name="android.hardware.microphone"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
2012-03-10 15:24:53 -05:00
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.NFC" />
2012-03-10 15:24:53 -05:00
<uses-permission android:name="com.fsck.k9.permission.READ_ATTACHMENT" />
2013-05-28 09:10:36 -04:00
<!-- android:allowBackup="false": Don't allow backup over adb backup or other apps! -->
<application
2013-01-16 08:31:16 -05:00
android:name=".KeychainApplication"
2013-01-16 19:48:57 -05:00
android:allowBackup="false"
android:hardwareAccelerated="true"
android:icon="@drawable/icon"
2012-03-11 12:33:40 -04:00
android:label="@string/app_name"
2012-12-12 13:14:09 -05:00
android:theme="@style/Theme.Sherlock.Light" >
<activity
android:name=".ui.MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/app_name" >
2010-04-06 15:54:51 -04:00
<intent-filter>
<action android:name="android.intent.action.MAIN" />
2012-03-09 06:13:28 -05:00
2010-04-06 15:54:51 -04:00
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
2012-10-28 18:51:03 -04:00
android:name=".ui.KeyListPublicActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_managePublicKeys"
2012-03-11 19:12:19 -04:00
android:launchMode="singleTop"
android:uiOptions="splitActionBarWhenNarrow" >
2013-09-09 08:03:58 -04:00
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.SEARCH" /> -->
<!-- </intent-filter> -->
<!-- <meta-data -->
<!-- android:name="android.app.searchable" -->
<!-- android:resource="@xml/searchable_public_keys" /> -->
</activity>
<activity
2012-10-28 18:51:03 -04:00
android:name=".ui.KeyListSecretActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_manageSecretKeys"
2012-03-11 19:12:19 -04:00
android:launchMode="singleTop"
android:uiOptions="splitActionBarWhenNarrow" >
2013-09-09 08:03:58 -04:00
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.SEARCH" /> -->
<!-- </intent-filter> -->
2013-09-06 08:32:12 -04:00
2013-09-09 08:03:58 -04:00
<!-- <meta-data -->
<!-- android:name="android.app.searchable" -->
<!-- android:resource="@xml/searchable_secret_keys" /> -->
</activity>
<activity
android:name=".ui.EditKeyActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-11 20:58:24 -04:00
android:label="@string/title_editKey"
2012-04-12 13:44:00 -04:00
android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="stateHidden" >
2012-04-12 09:23:00 -04:00
</activity>
<activity
2012-11-01 13:50:41 -04:00
android:name=".ui.SelectPublicKeyActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_selectRecipients"
2012-04-11 13:29:27 -04:00
android:launchMode="singleTop"
android:uiOptions="splitActionBarWhenNarrow" >
2010-05-31 23:20:13 -04:00
2013-09-09 08:03:58 -04:00
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.SEARCH" /> -->
<!-- </intent-filter> -->
2013-09-09 08:03:58 -04:00
<!-- <meta-data -->
<!-- android:name="android.app.searchable" -->
<!-- android:resource="@xml/searchable_public_keys" /> -->
2010-05-31 23:20:13 -04:00
</activity>
<activity
2012-11-01 17:16:41 -04:00
android:name=".ui.SelectSecretKeyActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_selectSignature"
android:launchMode="singleTop" >
2010-05-31 23:20:13 -04:00
2013-09-09 08:03:58 -04:00
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.SEARCH" /> -->
<!-- </intent-filter> -->
2013-09-09 08:03:58 -04:00
<!-- <meta-data -->
<!-- android:name="android.app.searchable" -->
<!-- android:resource="@xml/searchable_secret_keys" /> -->
2010-05-31 23:20:13 -04:00
</activity>
<activity
android:name=".ui.EncryptActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-11 19:12:19 -04:00
android:label="@string/title_encrypt"
2012-04-12 20:34:46 -04:00
android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="stateHidden" >
2013-09-09 08:03:58 -04:00
<!-- Keychain's own Actions -->
2010-04-06 15:54:51 -04:00
<intent-filter>
2013-01-16 08:31:16 -05:00
<action android:name="org.sufficientlysecure.keychain.action.ENCRYPT" />
<action android:name="org.sufficientlysecure.keychain.action.ENCRYPT_FILE" />
2013-01-16 19:48:57 -05:00
2012-03-09 06:13:28 -05:00
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<!-- Android's Send Action -->
<intent-filter android:label="@string/intent_send_encrypt" >
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
2012-03-09 06:13:28 -05:00
<data android:mimeType="*/*" />
</intent-filter>
</activity>
<activity
android:name=".ui.DecryptActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-11 19:12:19 -04:00
android:label="@string/title_decrypt"
2012-04-12 20:34:46 -04:00
android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="stateHidden" >
2013-09-09 08:03:58 -04:00
<!-- Keychain's own Actions -->
2010-04-06 15:54:51 -04:00
<intent-filter>
2013-01-16 08:31:16 -05:00
<action android:name="org.sufficientlysecure.keychain.action.DECRYPT" />
<action android:name="org.sufficientlysecure.keychain.action.DECRYPT_FILE" />
2013-01-16 19:48:57 -05:00
2012-03-09 06:13:28 -05:00
<category android:name="android.intent.category.DEFAULT" />
2012-03-09 06:13:28 -05:00
<data android:mimeType="*/*" />
</intent-filter>
<!-- Android's Send Action -->
<intent-filter android:label="@string/intent_send_decrypt" >
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<!-- Linking "Decrypt" to file types -->
<intent-filter android:label="@string/intent_decrypt_file" >
<action android:name="android.intent.action.VIEW" />
2012-03-09 06:13:28 -05:00
<category android:name="android.intent.category.DEFAULT" />
2012-09-12 07:51:38 -04:00
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="*" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="*/*" />
2013-09-04 14:12:58 -04:00
<!-- Workaround to match files in pathes with dots in them, like /cdcard/my.folder/test.gpg -->
2012-09-12 07:51:38 -04:00
<data android:pathPattern=".*\\.gpg" />
<data android:pathPattern=".*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
2012-03-09 06:13:28 -05:00
</intent-filter>
<intent-filter android:label="@string/intent_decrypt_file" >
<action android:name="android.intent.action.VIEW" />
2012-03-09 06:13:28 -05:00
<category android:name="android.intent.category.DEFAULT" />
2012-09-12 07:51:38 -04:00
<category android:name="android.intent.category.BROWSABLE" />
2012-09-12 07:51:38 -04:00
<data android:host="*" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.asc" />
<data android:pathPattern=".*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
2012-03-09 06:13:28 -05:00
</intent-filter>
</activity>
<activity
android:name=".ui.KeyServerQueryActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_keyServerQuery" />
<activity
2012-09-10 09:02:52 -04:00
android:name=".ui.KeyServerUploadActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_sendKey" />
<activity
android:name=".ui.PreferencesActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_preferences" />
<activity
android:name=".ui.PreferencesKeyServerActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:label="@string/title_keyServerPreference"
android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="stateHidden" />
<activity
android:name=".ui.SignKeyActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
2012-03-09 06:13:28 -05:00
android:label="@string/title_signKey" />
<activity
2013-01-16 08:31:16 -05:00
android:name=".ui.ImportKeysActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:label="@string/title_importKeys"
android:uiOptions="splitActionBarWhenNarrow" >
2013-09-09 08:03:58 -04:00
<!-- Keychain's own Actions -->
<intent-filter android:label="@string/intent_import_key" >
2013-09-09 08:03:58 -04:00
<action android:name="org.sufficientlysecure.keychain.action.KEY_IMPORT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<!-- IMPORT again without mimeType to also allow data only without filename -->
<intent-filter android:label="@string/intent_import_key" >
2013-09-09 08:03:58 -04:00
<action android:name="org.sufficientlysecure.keychain.action.KEY_IMPORT" />
<action android:name="org.sufficientlysecure.keychain.action.KEY_IMPORT_FROM_QR_CODE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- Linking "Import key" to file types -->
<intent-filter android:label="@string/intent_import_key" >
<action android:name="android.intent.action.VIEW" />
2012-12-14 13:16:10 -05:00
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="*" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.gpg" />
<data android:pathPattern=".*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.gpg" />
</intent-filter>
<intent-filter android:label="@string/intent_import_key" >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="*" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.asc" />
<data android:pathPattern=".*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.asc" />
2012-12-14 13:16:10 -05:00
</intent-filter>
</activity>
<activity
2013-01-16 08:31:16 -05:00
android:name=".ui.ShareNfcBeamActivity"
android:label="@string/title_shareByNfc"
android:launchMode="singleTop"
android:uiOptions="splitActionBarWhenNarrow" >
<!-- Handle NFC tags detected from outside our application -->
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<!-- mime type as defined in http://tools.ietf.org/html/rfc3156, section 7 -->
<data android:mimeType="application/pgp-keys" />
</intent-filter>
</activity>
2013-01-16 08:31:16 -05:00
<activity android:name=".ui.ShareActivity" >
</activity>
2012-03-12 10:10:26 -04:00
<activity
android:name=".ui.HelpActivity"
2012-03-12 10:10:26 -04:00
android:label="@string/title_help" />
<service
android:name=".service.PassphraseCacheService"
android:exported="false"
android:process=":passphrase_cache" />
2013-01-16 08:31:16 -05:00
<service android:name="org.sufficientlysecure.keychain.service.KeychainIntentService" />
2013-09-09 08:03:58 -04:00
<!-- TODO: Make this extended API -->
2013-09-06 05:24:28 -04:00
<!-- <meta-data -->
<!-- android:name="api_version" -->
<!-- android:value="3" /> -->
<!-- </service> -->
<!-- <service -->
<!-- android:name="org.sufficientlysecure.keychain.service.KeychainKeyService" -->
<!-- android:enabled="true" -->
<!-- android:exported="true" -->
<!-- android:permission="org.sufficientlysecure.keychain.permission.ACCESS_KEYS" -->
<!-- android:process=":remotekeys" > -->
<!-- <intent-filter> -->
<!-- <action android:name="org.sufficientlysecure.keychain.service.IKeychainKeyService" /> -->
<!-- </intent-filter> -->
<!-- <meta-data -->
<!-- android:name="api_version" -->
<!-- android:value="3" /> -->
<!-- </service> -->
2012-04-25 12:59:51 -04:00
2012-10-25 08:52:13 -04:00
<provider
2013-09-09 08:03:58 -04:00
android:name="org.sufficientlysecure.keychain.provider.KeychainProvider"
android:authorities="org.sufficientlysecure.keychain.provider"
2012-11-15 20:34:21 -05:00
android:exported="false" />
2013-09-09 08:03:58 -04:00
<!-- TODO: authority! Make this API with content provider uris -->
2013-09-06 05:24:28 -04:00
<!-- <provider -->
<!-- android:name="org.sufficientlysecure.keychain.provider.KeychainServiceBlobProvider" -->
<!-- android:authorities="org.sufficientlysecure.keychain.provider.apgserviceblobprovider" -->
<!-- android:permission="org.sufficientlysecure.keychain.permission.ACCESS_API" /> -->
2013-05-28 09:10:36 -04:00
2013-07-01 17:23:53 -04:00
<!-- Remote API internal intents -->
2013-05-28 09:10:36 -04:00
<activity
2013-09-06 05:55:08 -04:00
android:name="org.sufficientlysecure.keychain.remote_api.CryptoServiceActivity"
android:exported="false"
2013-09-06 03:44:56 -04:00
android:label="@string/app_name"
2013-09-09 08:03:58 -04:00
android:launchMode="singleTop"
android:process=":crypto" >
2013-05-28 09:10:36 -04:00
<!-- Don't publish intents, they are only used internally! -->
2013-05-28 09:10:36 -04:00
</activity>
2013-07-01 17:23:53 -04:00
<activity
2013-09-04 14:12:58 -04:00
android:name="org.sufficientlysecure.keychain.remote_api.RegisteredAppsListActivity"
2013-07-01 17:23:53 -04:00
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:exported="false"
2013-09-09 08:25:08 -04:00
android:label="@string/title_api_registered_apps" />
<activity
android:name="org.sufficientlysecure.keychain.remote_api.AppSettingsActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:exported="false" />
2013-05-28 09:10:36 -04:00
2013-07-01 17:23:53 -04:00
<!-- Remote API -->
2013-05-28 09:10:36 -04:00
<service
2013-07-01 17:23:53 -04:00
android:name="org.sufficientlysecure.keychain.remote_api.CryptoService"
2013-05-28 09:10:36 -04:00
android:enabled="true"
android:exported="true"
android:process=":crypto" >
<intent-filter>
2013-05-29 09:58:50 -04:00
<action android:name="org.openintents.crypto.ICryptoService" />
2013-09-06 05:24:28 -04:00
</intent-filter>
2013-05-28 09:10:36 -04:00
<meta-data
android:name="api_version"
android:value="1" />
</service>
2010-04-06 15:54:51 -04:00
</application>
2012-03-09 06:13:28 -05:00
</manifest>