introduce <queries> in manifest to work with Android 11+ limited package visibility

This commit is contained in:
Philipp Crocoll
2021-11-12 10:57:04 +01:00
parent cb30d3a79e
commit 9d2d920fda
5 changed files with 115 additions and 10 deletions

View File

@@ -8,10 +8,11 @@
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

View File

@@ -8,10 +8,5 @@
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
</application>
</manifest>

View File

@@ -1,9 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="46" android:versionName="0.9.3-release-3" package="keepass2android.keepass2android_debug" android:installLocation="auto">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="30" />
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="178"
android:versionName="1.09b-pre0dbg"
package="keepass2android.keepass2android_debug"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
<queries>
<!-- Specific intents and packages we query for (required since Android 11) -->
<package android:name="keepass2android.plugin.keyboardswap2" />
<intent>
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="android.intent.action.GET_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="com.dropbox.android.AUTHENTICATE_V2" />
</intent>
<intent>
<action android:name="com.yubichallenge.NFCActivity.CHALLENGE" />
</intent>
<intent>
<action android:name="net.pp3345.ykdroid.intent.action.CHALLENGE_RESPONSE" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
</intent>
</queries>
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" />
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_notify_locked" android:label="KP2A entry search" android:name="keepass2android.keepass2android_debug.permission.KP2aInternalSearch" android:protectionLevel="signature" />
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android_debug.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
<application android:label="keepass2android"
<application
android:icon="@mipmap/ic_launcher_online"
android:roundIcon="@mipmap/ic_launcher_online_round"
android:networkSecurityConfig="@xml/network_security_config"
@@ -216,5 +254,6 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<!-- Samsung Pass permission -->
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<!-- READ_PHONE_STATE seems to come from some library or so, not clear where. We don't want to have it, remove it: -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
</manifest>

View File

@@ -6,6 +6,38 @@
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
<queries>
<!-- Specific intents and packages we query for (required since Android 11) -->
<package android:name="keepass2android.plugin.keyboardswap2" />
<intent>
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="android.intent.action.GET_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="com.dropbox.android.AUTHENTICATE_V2" />
</intent>
<intent>
<action android:name="com.yubichallenge.NFCActivity.CHALLENGE" />
</intent>
<intent>
<action android:name="net.pp3345.ykdroid.intent.action.CHALLENGE_RESPONSE" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
</intent>
</queries>
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" />
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_launcher" android:label="KP2A entry search" android:name="keepass2android.keepass2android.permission.KP2aInternalSearch" android:protectionLevel="signature" />
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
@@ -235,5 +267,6 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
<!-- Samsung Pass permission -->
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<!-- READ_PHONE_STATE seems to come from some library or so, not clear where. We don't want to have it, remove it: -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
</manifest>

View File

@@ -3,7 +3,41 @@
android:versionCode="93"
android:versionName="1.01-g"
package="keepass2android.keepass2android_nonet"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
<queries>
<!-- Specific intents and packages we query for (required since Android 11) -->
<package android:name="keepass2android.plugin.keyboardswap2" />
<intent>
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="android.intent.action.GET_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="com.dropbox.android.AUTHENTICATE_V2" />
</intent>
<intent>
<action android:name="com.yubichallenge.NFCActivity.CHALLENGE" />
</intent>
<intent>
<action android:name="net.pp3345.ykdroid.intent.action.CHALLENGE_RESPONSE" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
</intent>
</queries>
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="30" />
<permission android:description="@string/permission_desc2" android:icon="@drawable/ic_launcher" android:label="KP2A entry search" android:name="keepass2android.keepass2android_nonet.permission.KP2aInternalSearch" android:protectionLevel="signature" />
<permission android:description="@string/permission_desc3" android:icon="@drawable/ic_launcher" android:label="KP2A choose autofill dataset" android:name="keepass2android.keepass2android_nonet.permission.Kp2aChooseAutofill" android:protectionLevel="signature" />
@@ -211,4 +245,7 @@ The scheme=file is still there for old OS devices. It's also queried by apps lik
<uses-permission android:name="keepass2android.keepass2android.permission.KP2aInternalSearch" />
<!-- Samsung Pass permission -->
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<!-- READ_PHONE_STATE seems to come from some library or so, not clear where. We don't want to have it, remove it: -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
</manifest>