|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package com.jens.automation2;
|
|
|
|
|
|
|
|
|
|
import android.Manifest;
|
|
|
|
|
import android.app.Activity;
|
|
|
|
|
import android.app.NotificationManager;
|
|
|
|
|
import android.content.ComponentName;
|
|
|
|
@ -47,17 +48,10 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
TextView tvPermissionsExplanation, tvPermissionsExplanationSystemSettings, tvPermissionsExplanationLong;
|
|
|
|
|
static ActivityPermissions instance = null;
|
|
|
|
|
|
|
|
|
|
public static final String writeSystemSettingsPermissionName = "android.permission.WRITE_SETTINGS";
|
|
|
|
|
public static final String writeExternalStoragePermissionName = "android.permission.WRITE_EXTERNAL_STORAGE";
|
|
|
|
|
public static final String accessNotificationPolicyPermissionName = "android.permission.ACCESS_NOTIFICATION_POLICY";
|
|
|
|
|
public static final String permissionNameLocationFine = "android.permission.ACCESS_FINE_LOCATION";
|
|
|
|
|
public static final String permissionNameLocationCoarse = "android.permission.ACCESS_COARSE_LOCATION";
|
|
|
|
|
public static final String permissionNameLocationBackground = "android.permission.ACCESS_BACKGROUND_LOCATION";
|
|
|
|
|
public static final String permissionNameCall = "android.permission.PROCESS_OUTGOING_CALLS";
|
|
|
|
|
public static final String permissionNameStartService = "android.permission.FOREGROUND_SERVICE";
|
|
|
|
|
public static final String permissionNameReadNotifications = "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE";
|
|
|
|
|
public static final String permissionNameWireguard = "com.wireguard.android.permission.CONTROL_TUNNELS";
|
|
|
|
|
|
|
|
|
|
public final static String permissionNameWireguard = "com.wireguard.android.permission.CONTROL_TUNNELS";
|
|
|
|
|
public final static String permissionNameGoogleActivityDetection = "com.google.android.gms.permission.ACTIVITY_RECOGNITION";
|
|
|
|
|
public final static String permissionNameSuperuser = "android.permission.ACCESS_SUPERUSER";
|
|
|
|
|
|
|
|
|
|
public static ActivityPermissions getInstance()
|
|
|
|
|
{
|
|
|
|
|
if(instance == null)
|
|
|
|
@ -168,7 +162,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
/*
|
|
|
|
|
Filter location permission and only name it once
|
|
|
|
|
*/
|
|
|
|
|
if(s.equals(permissionNameLocationCoarse) | s.equals(permissionNameLocationFine))
|
|
|
|
|
if(s.equals(Manifest.permission.ACCESS_COARSE_LOCATION) | s.equals(Manifest.permission.ACCESS_FINE_LOCATION))
|
|
|
|
|
{
|
|
|
|
|
if(!locationPermissionExplained)
|
|
|
|
|
{
|
|
|
|
@ -176,11 +170,11 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
|
|
|
|
|
"<br />" +
|
|
|
|
|
"<u>" +
|
|
|
|
|
getResources().getString(R.string.readLocation)
|
|
|
|
|
getResources().getString(R.string.readLocation)
|
|
|
|
|
+ "</u>"
|
|
|
|
|
|
|
|
|
|
+ "<br />"
|
|
|
|
|
);
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
for (String reason : getReasonForPermission(s))
|
|
|
|
|
explanation.append(reason + "<br />");
|
|
|
|
@ -213,7 +207,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
|
|
|
|
|
for(String s : requiredPerms)
|
|
|
|
|
{
|
|
|
|
|
if (s.equalsIgnoreCase(writeSystemSettingsPermissionName))
|
|
|
|
|
if (s.equalsIgnoreCase(Manifest.permission.WRITE_SETTINGS))
|
|
|
|
|
{
|
|
|
|
|
if (requiredPerms.length == 1)
|
|
|
|
|
tvPermissionsExplanationSystemSettings.setText(getResources().getString(R.string.systemSettingsNote1));
|
|
|
|
@ -249,26 +243,26 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for (String s : getRequiredPermissions(false))
|
|
|
|
|
{
|
|
|
|
|
if(
|
|
|
|
|
s.equalsIgnoreCase(permissionNameLocationBackground)
|
|
|
|
|
||
|
|
|
|
|
s.equalsIgnoreCase(permissionNameLocationFine)
|
|
|
|
|
||
|
|
|
|
|
s.equalsIgnoreCase(permissionNameLocationCoarse)
|
|
|
|
|
s.equalsIgnoreCase(Manifest.permission.ACCESS_BACKGROUND_LOCATION)
|
|
|
|
|
||
|
|
|
|
|
s.equalsIgnoreCase(Manifest.permission.ACCESS_FINE_LOCATION)
|
|
|
|
|
||
|
|
|
|
|
s.equalsIgnoreCase(Manifest.permission.ACCESS_COARSE_LOCATION)
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!Miscellaneous.googleToBlameForLocation(true))
|
|
|
|
|
if (!havePermission(s, context))
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else if(s.equalsIgnoreCase("android.permission.ACTIVITY_RECOGNITION") || s.equalsIgnoreCase("com.google.android.gms.permission.ACTIVITY_RECOGNITION"))
|
|
|
|
|
else if(s.equalsIgnoreCase(Manifest.permission.ACTIVITY_RECOGNITION) || s.equalsIgnoreCase(permissionNameGoogleActivityDetection))
|
|
|
|
|
{
|
|
|
|
|
if(!BuildConfig.FLAVOR.equalsIgnoreCase("fdroidFlavor"))
|
|
|
|
|
if (!havePermission(s, context))
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
if (!havePermission(s, context))
|
|
|
|
|
return true;
|
|
|
|
|
if (!havePermission(s, context))
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -279,9 +273,9 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
{
|
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
|
|
|
|
{
|
|
|
|
|
if(s.equals(writeSystemSettingsPermissionName))
|
|
|
|
|
if(s.equals(Manifest.permission.WRITE_SETTINGS))
|
|
|
|
|
return android.provider.Settings.System.canWrite(context);
|
|
|
|
|
else if (s.equals(accessNotificationPolicyPermissionName))
|
|
|
|
|
else if (s.equals(Manifest.permission.ACCESS_NOTIFICATION_POLICY))
|
|
|
|
|
{
|
|
|
|
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
|
|
|
|
{
|
|
|
|
@ -291,7 +285,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
else
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else if (s.equals(permissionNameReadNotifications))
|
|
|
|
|
else if (s.equals(Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE))
|
|
|
|
|
{
|
|
|
|
|
return verifyNotificationPermission();
|
|
|
|
|
}
|
|
|
|
@ -324,13 +318,13 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
// if (!havePermission(ActivityPermissions.writeExternalStoragePermissionName, workingContext))
|
|
|
|
|
// addToArrayListUnique(ActivityPermissions.writeExternalStoragePermissionName, requiredPermissions);
|
|
|
|
|
|
|
|
|
|
if(!havePermission(writeSystemSettingsPermissionName, workingContext))
|
|
|
|
|
if(!havePermission(Manifest.permission.WRITE_SETTINGS, workingContext))
|
|
|
|
|
{
|
|
|
|
|
for (Profile profile : Profile.getProfileCollection())
|
|
|
|
|
{
|
|
|
|
|
if (profile.changeIncomingCallsRingtone)
|
|
|
|
|
{
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -344,17 +338,17 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
{
|
|
|
|
|
if(
|
|
|
|
|
|
|
|
|
|
singlePermission.equalsIgnoreCase(permissionNameLocationBackground)
|
|
|
|
|
||
|
|
|
|
|
singlePermission.equalsIgnoreCase(permissionNameLocationFine)
|
|
|
|
|
||
|
|
|
|
|
singlePermission.equalsIgnoreCase(permissionNameLocationCoarse)
|
|
|
|
|
singlePermission.equalsIgnoreCase(Manifest.permission.ACCESS_BACKGROUND_LOCATION)
|
|
|
|
|
||
|
|
|
|
|
singlePermission.equalsIgnoreCase(Manifest.permission.ACCESS_FINE_LOCATION)
|
|
|
|
|
||
|
|
|
|
|
singlePermission.equalsIgnoreCase(Manifest.permission.ACCESS_COARSE_LOCATION)
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!Miscellaneous.googleToBlameForLocation(true))
|
|
|
|
|
addToArrayListUnique(singlePermission, requiredPermissions);
|
|
|
|
|
}
|
|
|
|
|
else if(singlePermission.equalsIgnoreCase("android.permission.ACTIVITY_RECOGNITION") || singlePermission.equalsIgnoreCase("com.google.android.gms.permission.ACTIVITY_RECOGNITION"))
|
|
|
|
|
else if(singlePermission.equalsIgnoreCase(Manifest.permission.ACTIVITY_RECOGNITION) || singlePermission.equalsIgnoreCase(permissionNameGoogleActivityDetection))
|
|
|
|
|
{
|
|
|
|
|
if(!BuildConfig.FLAVOR.equalsIgnoreCase("fdroidFlavor"))
|
|
|
|
|
addToArrayListUnique(singlePermission, requiredPermissions);
|
|
|
|
@ -412,80 +406,80 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
switch (trigger.getTriggerType())
|
|
|
|
|
{
|
|
|
|
|
case activityDetection:
|
|
|
|
|
addToArrayListUnique("com.google.android.gms.permission.ACTIVITY_RECOGNITION", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACTIVITY_RECOGNITION", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameGoogleActivityDetection, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACTIVITY_RECOGNITION, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case airplaneMode:
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case batteryLevel:
|
|
|
|
|
// addToArrayListUnique("android.permission.READ_PHONE_STATE", requiredPermissions);
|
|
|
|
|
// addToArrayListUnique("android.permission.BATTERY_STATS", requiredPermissions);
|
|
|
|
|
// addToArrayListUnique(Manifest.permission.READ_PHONE_STATE, requiredPermissions);
|
|
|
|
|
// addToArrayListUnique(Manifest.permission.BATTERY_STATS, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case bluetoothConnection:
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH_ADMIN", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH_ADMIN, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case charging:
|
|
|
|
|
addToArrayListUnique("android.permission.READ_PHONE_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.READ_PHONE_STATE, requiredPermissions);
|
|
|
|
|
// addToArrayListUnique("android.permission.BATTERY_STATS", requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case headsetPlugged:
|
|
|
|
|
addToArrayListUnique("android.permission.READ_PHONE_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.READ_PHONE_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case nfcTag:
|
|
|
|
|
addToArrayListUnique("android.permission.NFC", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.NFC, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case noiseLevel:
|
|
|
|
|
addToArrayListUnique("android.permission.RECORD_AUDIO", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.RECORD_AUDIO, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case phoneCall:
|
|
|
|
|
addToArrayListUnique("android.permission.READ_PHONE_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameCall, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.READ_PHONE_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.PROCESS_OUTGOING_CALLS, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case pointOfInterest:
|
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
|
|
|
|
|
{
|
|
|
|
|
addToArrayListUnique(permissionNameLocationBackground, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameLocationFine, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameLocationCoarse, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_BACKGROUND_LOCATION, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_FINE_LOCATION, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_COARSE_LOCATION, requiredPermissions);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
addToArrayListUnique(permissionNameLocationFine, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameLocationCoarse, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_FINE_LOCATION, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_COARSE_LOCATION, requiredPermissions);
|
|
|
|
|
}
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.INTERNET", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_WIFI_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.INTERNET, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_WIFI_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case process_started_stopped:
|
|
|
|
|
addToArrayListUnique("android.permission.GET_TASKS", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.GET_TASKS, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case roaming:
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case speed:
|
|
|
|
|
addToArrayListUnique(permissionNameLocationFine, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameLocationCoarse, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_FINE_LOCATION, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_COARSE_LOCATION, requiredPermissions);
|
|
|
|
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
|
|
|
|
|
addToArrayListUnique(permissionNameLocationBackground, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.INTERNET", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_BACKGROUND_LOCATION, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.INTERNET, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case timeFrame:
|
|
|
|
|
break;
|
|
|
|
|
case usb_host_connection:
|
|
|
|
|
addToArrayListUnique("android.permission.READ_PHONE_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.READ_PHONE_STATE, requiredPermissions);
|
|
|
|
|
// addToArrayListUnique("android.permission.BATTERY_STATS", requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case wifiConnection:
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_WIFI_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_WIFI_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case notification:
|
|
|
|
|
addToArrayListUnique(permissionNameReadNotifications, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
@ -497,56 +491,56 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
switch (action.getAction())
|
|
|
|
|
{
|
|
|
|
|
case changeSoundProfile:
|
|
|
|
|
addToArrayListUnique("android.permission.MODIFY_AUDIO_SETTINGS", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.MODIFY_AUDIO_SETTINGS, requiredPermissions);
|
|
|
|
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
|
|
|
|
addToArrayListUnique(accessNotificationPolicyPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NOTIFICATION_POLICY, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case disableScreenRotation:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case enableScreenRotation:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case playMusic:
|
|
|
|
|
break;
|
|
|
|
|
case sendTextMessage:
|
|
|
|
|
addToArrayListUnique("android.permission.SEND_SMS", requiredPermissions);
|
|
|
|
|
checkPermissionsInVariableUse(action.getParameter2(), requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.SEND_SMS, requiredPermissions);
|
|
|
|
|
checkPermissionsInVariableUse(action.getParameter2(), requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case setAirplaneMode:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_SUPERUSER", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameSuperuser, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case setBluetooth:
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH_ADMIN", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH_ADMIN, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case setDataConnection:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_SUPERUSER", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(permissionNameSuperuser, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case setDisplayRotation:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case setUsbTethering:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case setWifi:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case setWifiTethering:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
https://stackoverflow.com/questions/46284914/how-to-enable-android-o-wifi-hotspot-programmatically
|
|
|
|
@ -561,11 +555,11 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
case startOtherActivity:
|
|
|
|
|
if(
|
|
|
|
|
action.getParameter2().contains(Actions.wireguard_tunnel_up)
|
|
|
|
|
||
|
|
|
|
|
action.getParameter2().contains(Actions.wireguard_tunnel_down)
|
|
|
|
|
||
|
|
|
|
|
action.getParameter2().contains(Actions.wireguard_tunnel_refresh)
|
|
|
|
|
)
|
|
|
|
|
||
|
|
|
|
|
action.getParameter2().contains(Actions.wireguard_tunnel_down)
|
|
|
|
|
||
|
|
|
|
|
action.getParameter2().contains(Actions.wireguard_tunnel_refresh)
|
|
|
|
|
)
|
|
|
|
|
addToArrayListUnique(ActivityPermissions.permissionNameWireguard, requiredPermissions);
|
|
|
|
|
// if(
|
|
|
|
|
// action.getParameter2().contains("eu.faircode.netguard.START_PORT_FORWARD")
|
|
|
|
@ -575,53 +569,53 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
// addToArrayListUnique("net.kollnig.missioncontrol.permission.ADMIN", requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case triggerUrl:
|
|
|
|
|
addToArrayListUnique("android.permission.INTERNET", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.INTERNET, requiredPermissions);
|
|
|
|
|
checkPermissionsInVariableUse(action.getParameter2(), requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnBluetoothOff:
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH_ADMIN", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH_ADMIN, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnBluetoothOn:
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH_ADMIN", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.BLUETOOTH", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH_ADMIN, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BLUETOOTH, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnUsbTetheringOff:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnUsbTetheringOn:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnWifiOff:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnWifiOn:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnWifiTetheringOff:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case turnWifiTetheringOn:
|
|
|
|
|
addToArrayListUnique(writeSystemSettingsPermissionName, requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.CHANGE_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
case waitBeforeNextAction:
|
|
|
|
|
break;
|
|
|
|
|
case wakeupDevice:
|
|
|
|
|
addToArrayListUnique("android.permission.WAKE_LOCK", requiredPermissions);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.WAKE_LOCK, requiredPermissions);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
@ -635,7 +629,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
protected ArrayList<String> getRulesUsing(Trigger.Trigger_Enum triggerType)
|
|
|
|
|
{
|
|
|
|
|
ArrayList<String> returnList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Rule rule : Rule.getRuleCollection())
|
|
|
|
|
{
|
|
|
|
|
if (rule.isRuleActive())
|
|
|
|
@ -647,7 +641,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return returnList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -669,38 +663,38 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
|
|
|
|
|
return returnList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ArrayList<String> getReasonForPermission(String permission)
|
|
|
|
|
{
|
|
|
|
|
ArrayList<String> usingElements = new ArrayList<String>();
|
|
|
|
|
|
|
|
|
|
switch(permission)
|
|
|
|
|
{
|
|
|
|
|
case "android.permission.RECEIVE_BOOT_COMPLETED":
|
|
|
|
|
case Manifest.permission.RECEIVE_BOOT_COMPLETED:
|
|
|
|
|
usingElements.add(getResources().getString(R.string.startAtSystemBoot));
|
|
|
|
|
break;
|
|
|
|
|
case accessNotificationPolicyPermissionName:
|
|
|
|
|
case Manifest.permission.ACCESS_NOTIFICATION_POLICY:
|
|
|
|
|
usingElements.add(getResources().getString(R.string.actionChangeSoundProfile));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.WRITE_EXTERNAL_STORAGE":
|
|
|
|
|
case Manifest.permission.WRITE_EXTERNAL_STORAGE:
|
|
|
|
|
usingElements.add(getResources().getString(R.string.storeSettings));
|
|
|
|
|
break;
|
|
|
|
|
case permissionNameReadNotifications:
|
|
|
|
|
case Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.notification))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case "com.google.android.gms.permission.ACTIVITY_RECOGNITION":
|
|
|
|
|
case permissionNameGoogleActivityDetection:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.activityDetection))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.ACTIVITY_RECOGNITION":
|
|
|
|
|
case Manifest.permission.ACTIVITY_RECOGNITION:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.activityDetection))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case permissionNameLocationCoarse:
|
|
|
|
|
case Manifest.permission.ACCESS_COARSE_LOCATION:
|
|
|
|
|
// usingElements.add(getResources().getString(R.string.android_permission_ACCESS_COARSE_LOCATION));
|
|
|
|
|
usingElements.add(getResources().getString(R.string.manageLocations));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.pointOfInterest))
|
|
|
|
@ -708,21 +702,21 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.speed))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case permissionNameLocationFine:
|
|
|
|
|
case Manifest.permission.ACCESS_FINE_LOCATION:
|
|
|
|
|
usingElements.add(getResources().getString(R.string.manageLocations));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.pointOfInterest))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.speed))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case permissionNameLocationBackground:
|
|
|
|
|
case Manifest.permission.ACCESS_BACKGROUND_LOCATION:
|
|
|
|
|
usingElements.add(getResources().getString(R.string.googleLocationChicanery));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.pointOfInterest))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.speed))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.ACCESS_NETWORK_STATE":
|
|
|
|
|
case Manifest.permission.ACCESS_NETWORK_STATE:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.airplaneMode))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.bluetoothConnection))
|
|
|
|
@ -758,7 +752,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for(String ruleName : getRulesUsing(Action.Action_Enum.turnWifiTetheringOn))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.ACCESS_WIFI_STATE":
|
|
|
|
|
case Manifest.permission.ACCESS_WIFI_STATE:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.pointOfInterest))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.wifiConnection))
|
|
|
|
@ -772,7 +766,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.usb_host_connection))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;*/
|
|
|
|
|
case "android.permission.BLUETOOTH_ADMIN":
|
|
|
|
|
case Manifest.permission.BLUETOOTH_ADMIN:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.bluetoothConnection))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Action.Action_Enum.setBluetooth))
|
|
|
|
@ -782,7 +776,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for(String ruleName : getRulesUsing(Action.Action_Enum.turnBluetoothOn))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.BLUETOOTH":
|
|
|
|
|
case Manifest.permission.BLUETOOTH:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.bluetoothConnection))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Action.Action_Enum.setBluetooth))
|
|
|
|
@ -792,11 +786,11 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for(String ruleName : getRulesUsing(Action.Action_Enum.turnBluetoothOn))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.GET_TASKS":
|
|
|
|
|
case Manifest.permission.GET_TASKS:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.process_started_stopped))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.INTERNET":
|
|
|
|
|
case Manifest.permission.INTERNET:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.pointOfInterest))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.speed))
|
|
|
|
@ -804,15 +798,15 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for(String ruleName : getRulesUsing(Action.Action_Enum.triggerUrl))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.NFC":
|
|
|
|
|
case Manifest.permission.NFC:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.nfcTag))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case permissionNameCall:
|
|
|
|
|
case Manifest.permission.PROCESS_OUTGOING_CALLS:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.phoneCall))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.READ_PHONE_STATE":
|
|
|
|
|
case Manifest.permission.READ_PHONE_STATE:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.batteryLevel))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.charging))
|
|
|
|
@ -824,15 +818,15 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.usb_host_connection))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.RECORD_AUDIO":
|
|
|
|
|
case Manifest.permission.RECORD_AUDIO:
|
|
|
|
|
for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.noiseLevel))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.SEND_SMS":
|
|
|
|
|
case Manifest.permission.SEND_SMS:
|
|
|
|
|
for(String ruleName : getRulesUsing(Action.Action_Enum.sendTextMessage))
|
|
|
|
|
usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName));
|
|
|
|
|
break;
|
|
|
|
|
case "android.permission.FOREGROUND_SERVICE":
|
|
|
|
|
case Manifest.permission.FOREGROUND_SERVICE:
|
|
|
|
|
usingElements.add(getResources().getString(R.string.startAutomationAsService));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -874,7 +868,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (requestCode == requestCodeForPermissionsNotifications)
|
|
|
|
|
if(havePermission(permissionNameReadNotifications, ActivityPermissions.this))
|
|
|
|
|
if(havePermission(Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE, ActivityPermissions.this))
|
|
|
|
|
requestPermissions(cachedPermissionsToRequest, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -884,16 +878,16 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
ArrayList<String> permissionList = new ArrayList<String>();
|
|
|
|
|
for(String permission : permissionNames)
|
|
|
|
|
{
|
|
|
|
|
if(permissionNames.equals(permissionNameCall))
|
|
|
|
|
if(permissionNames.equals(Manifest.permission.PROCESS_OUTGOING_CALLS))
|
|
|
|
|
{
|
|
|
|
|
if(ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), permissionNameCall) && !Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()))
|
|
|
|
|
{
|
|
|
|
|
permissionList.add(permission);
|
|
|
|
|
}
|
|
|
|
|
if(ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.PROCESS_OUTGOING_CALLS) && !Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()))
|
|
|
|
|
{
|
|
|
|
|
permissionList.add(permission);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(permissionNames.equals("android.permission.SEND_SMS"))
|
|
|
|
|
else if(permissionNames.equals(Manifest.permission.SEND_SMS))
|
|
|
|
|
{
|
|
|
|
|
if(ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), "android.permission.SEND_SMS") && !Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()))
|
|
|
|
|
if(ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS) && !Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext()))
|
|
|
|
|
{
|
|
|
|
|
permissionList.add(permission);
|
|
|
|
|
}
|
|
|
|
@ -917,7 +911,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
{
|
|
|
|
|
for (String s : requiredPermissions)
|
|
|
|
|
{
|
|
|
|
|
if (s.equalsIgnoreCase(writeSystemSettingsPermissionName))
|
|
|
|
|
if (s.equalsIgnoreCase(Manifest.permission.WRITE_SETTINGS))
|
|
|
|
|
{
|
|
|
|
|
requiredPermissions.remove(s);
|
|
|
|
|
cachedPermissionsToRequest = requiredPermissions;
|
|
|
|
@ -926,7 +920,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
startActivityForResult(intent, requestCodeForPermissionsWriteSettings);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if (s.equalsIgnoreCase(accessNotificationPolicyPermissionName))
|
|
|
|
|
else if (s.equalsIgnoreCase(Manifest.permission.ACCESS_NOTIFICATION_POLICY))
|
|
|
|
|
{
|
|
|
|
|
requiredPermissions.remove(s);
|
|
|
|
|
cachedPermissionsToRequest = requiredPermissions;
|
|
|
|
@ -935,7 +929,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
startActivityForResult(intent, requestCodeForPermissionsNotificationPolicy);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if (s.equalsIgnoreCase(permissionNameReadNotifications))
|
|
|
|
|
else if (s.equalsIgnoreCase(Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE))
|
|
|
|
|
{
|
|
|
|
|
requiredPermissions.remove(s);
|
|
|
|
|
cachedPermissionsToRequest = requiredPermissions;
|
|
|
|
@ -957,25 +951,25 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
|
|
|
|
|
if(requiredPermissions.size() > 0)
|
|
|
|
|
{
|
|
|
|
|
if(requiredPermissions.contains(permissionNameCall))
|
|
|
|
|
if(requiredPermissions.contains(Manifest.permission.PROCESS_OUTGOING_CALLS))
|
|
|
|
|
{
|
|
|
|
|
if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), "android.permission.SEND_SMS")
|
|
|
|
|
&&
|
|
|
|
|
Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext())
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
requiredPermissions.remove(permissionNameCall);
|
|
|
|
|
Miscellaneous.messageBox("Problem", getResources().getString(R.string.googleSarcasm), ActivityPermissions.this).show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(requiredPermissions.contains("android.permission.SEND_SMS"))
|
|
|
|
|
{
|
|
|
|
|
if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), "android.permission.SEND_SMS")
|
|
|
|
|
if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS)
|
|
|
|
|
&&
|
|
|
|
|
Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext())
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
requiredPermissions.remove("android.permission.SEND_SMS");
|
|
|
|
|
requiredPermissions.remove(Manifest.permission.PROCESS_OUTGOING_CALLS);
|
|
|
|
|
Miscellaneous.messageBox("Problem", getResources().getString(R.string.googleSarcasm), ActivityPermissions.this).show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(requiredPermissions.contains(Manifest.permission.SEND_SMS))
|
|
|
|
|
{
|
|
|
|
|
if(!ActivityPermissions.isPermissionDeclaratedInManifest(Miscellaneous.getAnyContext(), Manifest.permission.SEND_SMS)
|
|
|
|
|
&&
|
|
|
|
|
Miscellaneous.isGooglePlayInstalled(Miscellaneous.getAnyContext())
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
requiredPermissions.remove(Manifest.permission.SEND_SMS);
|
|
|
|
|
Miscellaneous.messageBox("Problem", getResources().getString(R.string.googleSarcasm), ActivityPermissions.this).show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1021,7 +1015,7 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
|
|
|
|
|
for (int i=0; i < grantResults.length; i++)
|
|
|
|
|
{
|
|
|
|
|
if(permissions[i].equalsIgnoreCase(writeExternalStoragePermissionName) && grantResults[i] == PackageManager.PERMISSION_GRANTED)
|
|
|
|
|
if(permissions[i].equalsIgnoreCase(Manifest.permission.WRITE_EXTERNAL_STORAGE) && grantResults[i] == PackageManager.PERMISSION_GRANTED)
|
|
|
|
|
{
|
|
|
|
|
// We just got permission to read the config file. Read again.
|
|
|
|
|
try
|
|
|
|
@ -1056,9 +1050,9 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* In theory we now have 3 arrays that hold the features which can't function.
|
|
|
|
|
*/
|
|
|
|
|
/*
|
|
|
|
|
* In theory we now have 3 arrays that hold the features which can't function.
|
|
|
|
|
*/
|
|
|
|
|
/*StringBuilder message = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
for (String s : affectedGeneralList)
|
|
|
|
@ -1129,27 +1123,27 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
{
|
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
|
|
|
|
|
{
|
|
|
|
|
addToArrayListUnique(permissionNameLocationBackground, permsList);
|
|
|
|
|
addToArrayListUnique(permissionNameLocationFine, permsList);
|
|
|
|
|
addToArrayListUnique(permissionNameLocationCoarse, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_BACKGROUND_LOCATION, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_FINE_LOCATION, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_COARSE_LOCATION, permsList);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
addToArrayListUnique(permissionNameLocationFine, permsList);
|
|
|
|
|
addToArrayListUnique(permissionNameLocationCoarse, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_FINE_LOCATION, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_COARSE_LOCATION, permsList);
|
|
|
|
|
}
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_NETWORK_STATE", permsList);
|
|
|
|
|
addToArrayListUnique("android.permission.INTERNET", permsList);
|
|
|
|
|
addToArrayListUnique("android.permission.ACCESS_WIFI_STATE", permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_NETWORK_STATE, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.INTERNET, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.ACCESS_WIFI_STATE, permsList);
|
|
|
|
|
}
|
|
|
|
|
else if(text.contains("[phonenr]"))
|
|
|
|
|
{
|
|
|
|
|
addToArrayListUnique("android.permission.READ_PHONE_STATE", permsList);
|
|
|
|
|
addToArrayListUnique(permissionNameCall, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.READ_PHONE_STATE, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.PROCESS_OUTGOING_CALLS, permsList);
|
|
|
|
|
}
|
|
|
|
|
else if(text.contains("[notificationTitle]") || text.contains("[notificationTitle]"))
|
|
|
|
|
{
|
|
|
|
|
addToArrayListUnique(permissionNameReadNotifications, permsList);
|
|
|
|
|
addToArrayListUnique(Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE, permsList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return permsList;
|
|
|
|
@ -1230,104 +1224,104 @@ public class ActivityPermissions extends Activity
|
|
|
|
|
protected static void fillPermissionMaps()
|
|
|
|
|
{
|
|
|
|
|
mapGeneralPermissions = new HashMap<String, String>();
|
|
|
|
|
mapGeneralPermissions.put("general", "android.permission.RECEIVE_BOOT_COMPLETED");
|
|
|
|
|
mapGeneralPermissions.put("general", "android.permission.WRITE_EXTERNAL_STORAGE");
|
|
|
|
|
mapGeneralPermissions.put("general", Manifest.permission.RECEIVE_BOOT_COMPLETED);
|
|
|
|
|
mapGeneralPermissions.put("general", Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
|
|
|
|
|
|
|
|
|
mapTriggerPermissions = new HashMap<String, String>();
|
|
|
|
|
mapTriggerPermissions.put("activityDetection", "com.google.android.gms.permission.ACTIVITY_RECOGNITION");
|
|
|
|
|
mapTriggerPermissions.put("activityDetection", "android.permission.ACTIVITY_RECOGNITION");
|
|
|
|
|
mapTriggerPermissions.put("airplaneMode", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapTriggerPermissions.put("batteryLevel", "android.permission.READ_PHONE_STATE");
|
|
|
|
|
mapTriggerPermissions.put("batteryLevel", "android.permission.BATTERY_STATS");
|
|
|
|
|
mapTriggerPermissions.put("bluetoothConnection", "android.permission.BLUETOOTH_ADMIN");
|
|
|
|
|
mapTriggerPermissions.put("bluetoothConnection", "android.permission.BLUETOOTH");
|
|
|
|
|
mapTriggerPermissions.put("bluetoothConnection", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapTriggerPermissions.put("charging", "android.permission.READ_PHONE_STATE");
|
|
|
|
|
mapTriggerPermissions.put("charging", "android.permission.BATTERY_STATS");
|
|
|
|
|
mapTriggerPermissions.put("headsetPlugged", "android.permission.READ_PHONE_STATE");
|
|
|
|
|
mapTriggerPermissions.put("nfcTag", "android.permission.NFC");
|
|
|
|
|
mapTriggerPermissions.put("noiseLevel", "android.permission.RECORD_AUDIO");
|
|
|
|
|
mapTriggerPermissions.put("phoneCall", "android.permission.READ_PHONE_STATE");
|
|
|
|
|
mapTriggerPermissions.put("phoneCall", permissionNameCall);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", permissionNameLocationFine);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", permissionNameLocationCoarse);
|
|
|
|
|
mapTriggerPermissions.put("activityDetection", permissionNameGoogleActivityDetection);
|
|
|
|
|
mapTriggerPermissions.put("activityDetection", Manifest.permission.ACTIVITY_RECOGNITION);
|
|
|
|
|
mapTriggerPermissions.put("airplaneMode", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapTriggerPermissions.put("batteryLevel", Manifest.permission.READ_PHONE_STATE);
|
|
|
|
|
mapTriggerPermissions.put("batteryLevel", Manifest.permission.BATTERY_STATS);
|
|
|
|
|
mapTriggerPermissions.put("bluetoothConnection", Manifest.permission.BLUETOOTH_ADMIN);
|
|
|
|
|
mapTriggerPermissions.put("bluetoothConnection", Manifest.permission.BLUETOOTH);
|
|
|
|
|
mapTriggerPermissions.put("bluetoothConnection", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapTriggerPermissions.put("charging", Manifest.permission.READ_PHONE_STATE);
|
|
|
|
|
mapTriggerPermissions.put("charging", Manifest.permission.BATTERY_STATS);
|
|
|
|
|
mapTriggerPermissions.put("headsetPlugged", Manifest.permission.READ_PHONE_STATE);
|
|
|
|
|
mapTriggerPermissions.put("nfcTag", Manifest.permission.NFC);
|
|
|
|
|
mapTriggerPermissions.put("noiseLevel", Manifest.permission.RECORD_AUDIO);
|
|
|
|
|
mapTriggerPermissions.put("phoneCall", Manifest.permission.READ_PHONE_STATE);
|
|
|
|
|
mapTriggerPermissions.put("phoneCall", Manifest.permission.PROCESS_OUTGOING_CALLS);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", Manifest.permission.ACCESS_FINE_LOCATION);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", Manifest.permission.ACCESS_COARSE_LOCATION);
|
|
|
|
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", permissionNameLocationBackground);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", "android.permission.INTERNET");
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", "android.permission.ACCESS_WIFI_STATE");
|
|
|
|
|
mapTriggerPermissions.put("process_started_stopped", "android.permission.GET_TASKS");
|
|
|
|
|
mapTriggerPermissions.put("roaming", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapTriggerPermissions.put("speed", permissionNameLocationFine);
|
|
|
|
|
mapTriggerPermissions.put("speed", permissionNameLocationCoarse);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", Manifest.permission.ACCESS_BACKGROUND_LOCATION);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", Manifest.permission.INTERNET);
|
|
|
|
|
mapTriggerPermissions.put("pointOfInterest", Manifest.permission.ACCESS_WIFI_STATE);
|
|
|
|
|
mapTriggerPermissions.put("process_started_stopped", Manifest.permission.GET_TASKS);
|
|
|
|
|
mapTriggerPermissions.put("roaming", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapTriggerPermissions.put("speed", Manifest.permission.ACCESS_FINE_LOCATION);
|
|
|
|
|
mapTriggerPermissions.put("speed", Manifest.permission.ACCESS_COARSE_LOCATION);
|
|
|
|
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
|
|
|
|
|
mapTriggerPermissions.put("speed", permissionNameLocationBackground);
|
|
|
|
|
mapTriggerPermissions.put("speed", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapTriggerPermissions.put("speed", "android.permission.INTERNET");
|
|
|
|
|
mapTriggerPermissions.put("speed", Manifest.permission.ACCESS_BACKGROUND_LOCATION);
|
|
|
|
|
mapTriggerPermissions.put("speed", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapTriggerPermissions.put("speed", Manifest.permission.INTERNET);
|
|
|
|
|
// map.put("timeFrame", "");
|
|
|
|
|
mapTriggerPermissions.put("usb_host_connection", "android.permission.READ_PHONE_STATE");
|
|
|
|
|
mapTriggerPermissions.put("usb_host_connection", "android.permission.BATTERY_STATS");
|
|
|
|
|
mapTriggerPermissions.put("wifiConnection", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapTriggerPermissions.put("wifiConnection", "android.permission.ACCESS_WIFI_STATE");
|
|
|
|
|
mapTriggerPermissions.put("usb_host_connection", Manifest.permission.READ_PHONE_STATE);
|
|
|
|
|
mapTriggerPermissions.put("usb_host_connection", Manifest.permission.BATTERY_STATS);
|
|
|
|
|
mapTriggerPermissions.put("wifiConnection", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapTriggerPermissions.put("wifiConnection", Manifest.permission.ACCESS_WIFI_STATE);
|
|
|
|
|
|
|
|
|
|
mapActionPermissions = new HashMap<String, String>();
|
|
|
|
|
mapActionPermissions.put("changeSoundProfile", "android.permission.MODIFY_AUDIO_SETTINGS");
|
|
|
|
|
mapActionPermissions.put("changeSoundProfile", accessNotificationPolicyPermissionName);
|
|
|
|
|
mapActionPermissions.put("disableScreenRotation", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("enableScreenRotation", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("changeSoundProfile", Manifest.permission.MODIFY_AUDIO_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("changeSoundProfile", Manifest.permission.ACCESS_NOTIFICATION_POLICY);
|
|
|
|
|
mapActionPermissions.put("disableScreenRotation", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("enableScreenRotation", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
// mapActionPermissions.put("playMusic", "");
|
|
|
|
|
mapActionPermissions.put("sendTextMessage", "android.permission.SEND_SMS");
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", "android.permission.ACCESS_SUPERUSER");
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setBluetooth", "android.permission.BLUETOOTH_ADMIN");
|
|
|
|
|
mapActionPermissions.put("setBluetooth", "android.permission.BLUETOOTH");
|
|
|
|
|
mapActionPermissions.put("setBluetooth", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setBluetooth", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("setDataConnection", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("setDataConnection", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setDataConnection", "android.permission.ACCESS_SUPERUSER");
|
|
|
|
|
mapActionPermissions.put("setDataConnection", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setDisplayRotation", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("setUsbTethering", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("setUsbTethering", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setWifi", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("setWifi", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setWifi", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setWifiTethering", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("setWifiTethering", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("setWifiTethering", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
// mapActionPermissions.put("speakText", accessNotificationPolicyPermissionName);
|
|
|
|
|
mapActionPermissions.put("sendTextMessage", Manifest.permission.SEND_SMS);
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", permissionNameSuperuser);
|
|
|
|
|
mapActionPermissions.put("setAirplaneMode", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setBluetooth", Manifest.permission.BLUETOOTH_ADMIN);
|
|
|
|
|
mapActionPermissions.put("setBluetooth", Manifest.permission.BLUETOOTH);
|
|
|
|
|
mapActionPermissions.put("setBluetooth", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setBluetooth", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("setDataConnection", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("setDataConnection", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setDataConnection", permissionNameSuperuser);
|
|
|
|
|
mapActionPermissions.put("setDataConnection", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setDisplayRotation", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("setUsbTethering", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("setUsbTethering", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setWifi", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("setWifi", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setWifi", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setWifiTethering", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("setWifiTethering", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("setWifiTethering", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
// mapActionPermissions.put("speakText", Manifest.permission.ACCESS_NOTIFICATION_POLICY);
|
|
|
|
|
// mapActionPermissions.put("startOtherActivity", "");
|
|
|
|
|
mapActionPermissions.put("triggerUrl", "android.permission.INTERNET");
|
|
|
|
|
mapActionPermissions.put("triggerUrl", Manifest.permission.INTERNET);
|
|
|
|
|
// Hier müßte ein Hinweis kommen, daß nur die Variablen verwendet werden können, für die es Rechte gibt.
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", "android.permission.BLUETOOTH_ADMIN");
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", "android.permission.BLUETOOTH");
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", "android.permission.BLUETOOTH_ADMIN");
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", "android.permission.BLUETOOTH");
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOff", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOff", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOn", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOn", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiOff", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnWifiOff", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiOff", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiOn", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnWifiOn", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiOn", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOff", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOff", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOff", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOn", writeSystemSettingsPermissionName);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOn", "android.permission.CHANGE_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOn", "android.permission.ACCESS_NETWORK_STATE");
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.BLUETOOTH_ADMIN);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.BLUETOOTH);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOff", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", Manifest.permission.BLUETOOTH_ADMIN);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", Manifest.permission.BLUETOOTH);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnBluetoothOn", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOff", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOff", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOn", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnUsbTetheringOn", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiOff", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnWifiOff", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiOff", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiOn", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnWifiOn", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiOn", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOff", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOff", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOff", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOn", Manifest.permission.WRITE_SETTINGS);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOn", Manifest.permission.CHANGE_NETWORK_STATE);
|
|
|
|
|
mapActionPermissions.put("turnWifiTetheringOn", Manifest.permission.ACCESS_NETWORK_STATE);
|
|
|
|
|
// mapActionPermissions.put("waitBeforeNextAction", "");
|
|
|
|
|
mapActionPermissions.put("wakeupDevice", "android.permission.WAKE_LOCK");
|
|
|
|
|
mapActionPermissions.put("wakeupDevice", Manifest.permission.WAKE_LOCK);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|