diff options
| author | Arne Schwabe <arne@rfc2549.org> | 2021-02-19 17:17:47 +0100 | 
|---|---|---|
| committer | Arne Schwabe <arne@rfc2549.org> | 2021-02-19 17:17:47 +0100 | 
| commit | c754ff2e49f1d4486de23cf45f1456601c36b4f1 (patch) | |
| tree | 5d7f1c9eb8aecf1766a7e1fe26fe83326916e66d | |
| parent | d0ab42ab270fc1d0e27dbacd7722d48d70bfe456 (diff) | |
Add changes required for API 'S' (upcoming 31)
| -rw-r--r-- | build.gradle.kts | 2 | ||||
| -rw-r--r-- | main/src/main/AndroidManifest.xml | 17 | ||||
| -rw-r--r-- | main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java | 14 | ||||
| -rw-r--r-- | main/src/ui/AndroidManifest.xml | 6 | 
4 files changed, 26 insertions, 13 deletions
| diff --git a/build.gradle.kts b/build.gradle.kts index 0efb8815..8a42cedc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,7 +10,7 @@ buildscript {          jcenter()      }      dependencies { -        classpath("com.android.tools.build:gradle:4.1.1") +        classpath("com.android.tools.build:gradle:4.1.2")          classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72")      }  } diff --git a/main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml index e0f7154c..7ff33676 100644 --- a/main/src/main/AndroidManifest.xml +++ b/main/src/main/AndroidManifest.xml @@ -50,7 +50,9 @@          <service              android:name=".core.OpenVPNService" +            android:exported="true"              android:permission="android.permission.BIND_VPN_SERVICE" +            android:foregroundServiceType="connectedDevice"              android:process=":openvpn">              <intent-filter>                  <action android:name="android.net.VpnService" /> @@ -59,7 +61,8 @@          <service              android:name=".api.ExternalOpenVPNService"              android:process=":openvpn" -            tools:ignore="ExportedService"> +            android:exported="true" +                tools:ignore="ExportedService">              <intent-filter>                  <action android:name="de.blinkt.openvpn.api.IOpenVPNAPIService" />              </intent-filter> @@ -69,18 +72,21 @@              android:exported="false"              android:process=":openvpn" /> -        <activity android:name=".api.GrantPermissionsActivity"> +        <activity android:name=".api.GrantPermissionsActivity" +                android:exported="true">              <intent-filter>                  <action android:name="android.intent.action.MAIN" />              </intent-filter>          </activity> -        <activity android:name=".api.ConfirmDialog"> +        <activity android:name=".api.ConfirmDialog" +                android:exported="true">              <intent-filter>                  <action android:name="android.intent.action.MAIN" />              </intent-filter>          </activity> -        <receiver android:name=".OnBootReceiver"> +        <receiver android:name=".OnBootReceiver" +                android:exported="true">              <intent-filter android:priority="999">                  <action android:name="android.intent.action.BOOT_COMPLETED" />                  <action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> @@ -95,7 +101,8 @@              android:label="@string/vpn_launch_title"              android:taskAffinity=".LaunchVPN"              android:theme="@style/blinkt.dialog" -            tools:ignore="ExportedActivity"> +            android:exported="true"> +              <intent-filter>                  <action android:name="android.intent.action.MAIN" /> diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 8cbed0ac..23940760 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -273,7 +273,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac          nbuilder.setSmallIcon(icon);          if (status == LEVEL_WAITING_FOR_USER_INPUT) { -            PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); +            PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);              nbuilder.setContentIntent(pIntent);          } else {              nbuilder.setContentIntent(getGraphPendingIntent()); @@ -393,7 +393,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac      private void addVpnActionsToNotification(Notification.Builder nbuilder) {          Intent disconnectVPN = new Intent(this, DisconnectVPN.class);          disconnectVPN.setAction(DISCONNECT_VPN); -        PendingIntent disconnectPendingIntent = PendingIntent.getActivity(this, 0, disconnectVPN, 0); +        PendingIntent disconnectPendingIntent = PendingIntent.getActivity(this, 0, disconnectVPN, PendingIntent.FLAG_IMMUTABLE);          nbuilder.addAction(R.drawable.ic_menu_close_clear_cancel,                  getString(R.string.cancel_connection), disconnectPendingIntent); @@ -401,13 +401,13 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac          Intent pauseVPN = new Intent(this, OpenVPNService.class);          if (mDeviceStateReceiver == null || !mDeviceStateReceiver.isUserPaused()) {              pauseVPN.setAction(PAUSE_VPN); -            PendingIntent pauseVPNPending = PendingIntent.getService(this, 0, pauseVPN, 0); +            PendingIntent pauseVPNPending = PendingIntent.getService(this, 0, pauseVPN, PendingIntent.FLAG_IMMUTABLE);              nbuilder.addAction(R.drawable.ic_menu_pause,                      getString(R.string.pauseVPN), pauseVPNPending);          } else {              pauseVPN.setAction(RESUME_VPN); -            PendingIntent resumeVPNPending = PendingIntent.getService(this, 0, pauseVPN, 0); +            PendingIntent resumeVPNPending = PendingIntent.getService(this, 0, pauseVPN, PendingIntent.FLAG_IMMUTABLE);              nbuilder.addAction(R.drawable.ic_menu_play,                      getString(R.string.resumevpn), resumeVPNPending);          } @@ -419,7 +419,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac          intent.putExtra("need", needed);          Bundle b = new Bundle();          b.putString("need", needed); -        PendingIntent pIntent = PendingIntent.getActivity(this, 12, intent, 0); +        PendingIntent pIntent = PendingIntent.getActivity(this, 12, intent, PendingIntent.FLAG_IMMUTABLE);          return pIntent;      } @@ -432,7 +432,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac          intent.putExtra("PAGE", "graph");          intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); -        PendingIntent startLW = PendingIntent.getActivity(this, 0, intent, 0); +        PendingIntent startLW = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);          intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);          return startLW; @@ -1317,7 +1317,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac          // updateStateString trigger the notification of the VPN to be refreshed, save this intent          // to have that notification also this intent to be set -        PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); +        PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);          VpnStatus.updateStateString("USER_INPUT", "waiting for user input", reason, LEVEL_WAITING_FOR_USER_INPUT, intent);          nbuilder.setContentIntent(pIntent); diff --git a/main/src/ui/AndroidManifest.xml b/main/src/ui/AndroidManifest.xml index e2037b56..1fd0e5e5 100644 --- a/main/src/ui/AndroidManifest.xml +++ b/main/src/ui/AndroidManifest.xml @@ -18,6 +18,7 @@              android:banner="@mipmap/banner_tv"              tools:targetApi="lollipop">          <activity +                android:exported="true"                  android:name=".activities.MainActivity"                  tools:ignore="ExportedActivity">              <intent-filter> @@ -50,6 +51,7 @@          <activity android:name=".activities.FileSelect" />          <service +                android:exported="true"                  android:name=".OpenVPNTileService"                  android:icon="@drawable/ic_quick"                  android:label="@string/qs_title" @@ -65,6 +67,7 @@          </service>          <activity                  android:name=".activities.ConfigConverter" +                android:exported="true"                  android:excludeFromRecents="true"                  android:label="Convert Config File"                  android:taskAffinity=".ConfigConverter" @@ -109,6 +112,7 @@              </intent-filter>          </activity> <!-- https://commonsware.com/blog/2019/03/27/death-external-storage-stay-away-files.html -->          <activity-alias +                android:exported="true"                  android:name=".activities.ConfigConverterFile"                  android:enabled="@bool/supportFileScheme"                  android:targetActivity=".activities.ConfigConverter"> @@ -130,6 +134,7 @@          </activity-alias>          <activity +                android:exported="true"                  android:name=".activities.CreateShortcuts"                  android:excludeFromRecents="true"                  android:label="@string/vpn_shortcut" @@ -143,6 +148,7 @@          </activity>          <activity +                android:exported="false"                  android:name=".activities.OpenSSLSpeed"                  android:label="@string/title_activity_open_sslspeed"                  android:parentActivityName=".activities.MainActivity"> | 
