diff options
Diffstat (limited to 'APG/AndroidManifest.xml')
-rw-r--r-- | APG/AndroidManifest.xml | 379 |
1 files changed, 379 insertions, 0 deletions
diff --git a/APG/AndroidManifest.xml b/APG/AndroidManifest.xml new file mode 100644 index 000000000..1361d3318 --- /dev/null +++ b/APG/AndroidManifest.xml @@ -0,0 +1,379 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2012 Dominik Schürmann <dominik@dominikschuermann.de> + Copyright (C) 2010 Thialfihar <thi@thialfihar.org> + + 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. +--> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.thialfihar.android.apg" + android:installLocation="auto" + android:versionCode="20000" + android:versionName="2.0" > + + <!-- + General remarks + =============== + - Last APG 1 version was 10900 (1.0.9 beta 00) + - APG 2 starting with versionCode 20000! + + + Association of file types to APG + ================================= + 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. + --> + + <uses-sdk + android:minSdkVersion="8" + android:targetSdkVersion="14" /> + + <uses-permission android:name="android.permission.INTERNET" /> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> + <uses-permission android:name="com.fsck.k9.permission.READ_ATTACHMENT" /> + + <permission-group + android:name="org.thialfihar.android.apg.permission-group.APG" + android:description="@string/permission_group_description" + android:icon="@drawable/icon" + android:label="@string/permission_group_label" /> + + <permission + android:name="org.thialfihar.android.apg.permission.READ_KEY_DATABASE" + android:description="@string/permission_read_key_database_description" + android:label="@string/permission_read_key_database_label" + android:permissionGroup="org.thialfihar.android.apg.permission-group.APG" + android:protectionLevel="dangerous" /> + <permission + android:name="org.thialfihar.android.apg.permission.ACCESS_API" + android:description="@string/permission_access_api_description" + android:label="@string/permission_access_api_label" + android:permissionGroup="org.thialfihar.android.apg.permission-group.APG" + android:protectionLevel="dangerous" /> + + <application + android:name=".ApgApplication" + android:hardwareAccelerated="true" + android:icon="@drawable/icon" + android:label="@string/app_name" + android:theme="@style/Theme.Sherlock.Light.ForceOverflow" > + <activity + android:name=".ui.MainActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + <activity + android:name=".ui.KeyListPublicActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_managePublicKeys" + android:launchMode="singleTop" + android:uiOptions="splitActionBarWhenNarrow" > + <intent-filter> + <action android:name="android.intent.action.SEARCH" /> + </intent-filter> + <!-- APG's own Actions --> + <intent-filter android:label="@string/intent_import_key" > + <action android:name="org.thialfihar.android.apg.intent.IMPORT" /> + + <category android:name="android.intent.category.DEFAULT" /> + + <data android:mimeType="*/*" /> + </intent-filter> + <!-- Linking "Import key" to file types --> + <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=".*\\.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" /> + </intent-filter> + + <meta-data + android:name="android.app.searchable" + android:resource="@xml/searchable_public_keys" /> + </activity> + <activity + android:name=".ui.KeyListSecretActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_manageSecretKeys" + android:launchMode="singleTop" + android:uiOptions="splitActionBarWhenNarrow" > + <intent-filter> + <action android:name="android.intent.action.SEARCH" /> + </intent-filter> + + <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" + android:label="@string/title_editKey" + android:uiOptions="splitActionBarWhenNarrow" + android:windowSoftInputMode="stateHidden" > + <intent-filter> + <action android:name="org.thialfihar.android.apg.intent.CREATE_KEY" /> + <action android:name="org.thialfihar.android.apg.intent.EDIT_KEY" /> + + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + </activity> + <activity + android:name=".ui.SelectPublicKeyActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_selectRecipients" + android:launchMode="singleTop" + android:uiOptions="splitActionBarWhenNarrow" > + <intent-filter> + <action android:name="org.thialfihar.android.apg.intent.SELECT_PUBLIC_KEYS" /> + + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + <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 + android:name=".ui.SelectSecretKeyActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_selectSignature" + android:launchMode="singleTop" > + <intent-filter> + <action android:name="org.thialfihar.android.apg.intent.SELECT_SECRET_KEY" /> + + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.SEARCH" /> + </intent-filter> + + <meta-data + android:name="android.app.searchable" + android:resource="@xml/searchable_secret_keys" /> + </activity> + <activity + android:name=".ui.EncryptActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_encrypt" + android:uiOptions="splitActionBarWhenNarrow" + android:windowSoftInputMode="stateHidden" > + + <!-- APG's own Actions --> + <intent-filter> + <action android:name="org.thialfihar.android.apg.intent.ENCRYPT" /> + <action android:name="org.thialfihar.android.apg.intent.ENCRYPT_FILE" /> + <action android:name="org.thialfihar.android.apg.intent.ENCRYPT_AND_RETURN" /> + <action android:name="org.thialfihar.android.apg.intent.GENERATE_SIGNATURE" /> + + <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" /> + + <data android:mimeType="*/*" /> + </intent-filter> + </activity> + <activity + android:name=".ui.DecryptActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_decrypt" + android:uiOptions="splitActionBarWhenNarrow" + android:windowSoftInputMode="stateHidden" > + + <!-- APG's own Actions --> + <intent-filter> + <action android:name="org.thialfihar.android.apg.intent.DECRYPT" /> + <action android:name="org.thialfihar.android.apg.intent.DECRYPT_FILE" /> + <action android:name="org.thialfihar.android.apg.intent.DECRYPT_AND_RETURN" /> + + <category android:name="android.intent.category.DEFAULT" /> + + <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" /> + + <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_decrypt_file" > + <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" /> + </intent-filter> + </activity> + <activity + android:name=".ui.KeyServerQueryActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_keyServerQuery" /> + <activity + android:name=".ui.KeyServerUploadActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_sendKey" /> + <activity + android:name=".ui.PreferencesActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + 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" + android:label="@string/title_signKey" /> + <activity + android:name=".ui.ImportFromQRCodeActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_importFromQRCode" /> + <activity + android:name=".ui.HelpActivity" + android:label="@string/title_help" /> + + <service android:name=".service.PassphraseCacheService" /> + <service android:name=".service.ApgIntentService" /> + <service + android:name=".service.ApgService" + android:enabled="true" + android:exported="true" + android:permission="org.thialfihar.android.apg.permission.ACCESS_API" + android:process=":remote" > + <intent-filter> + <action android:name="org.thialfihar.android.apg.service.IApgService" /> + </intent-filter> + + <meta-data + android:name="api_version" + android:value="3" /> + </service> + + <provider + android:name=".provider.ApgProviderInternal" + android:authorities="org.thialfihar.android.apg.internal" + android:exported="false" /> + <provider + android:name=".provider.ApgProviderExternal" + android:authorities="org.thialfihar.android.apg" + android:readPermission="org.thialfihar.android.apg.permission.READ_KEY_DATABASE" /> + + <!-- TODO: authority! --> + <provider + android:name=".provider.ApgServiceBlobProvider" + android:authorities="org.thialfihar.android.apg.provider.apgserviceblobprovider" + android:permission="org.thialfihar.android.apg.permission.ACCESS_API" /> + </application> + +</manifest>
\ No newline at end of file |