diff --git a/renderdoc/android/android.cpp b/renderdoc/android/android.cpp index f86ad88da..544d23b42 100644 --- a/renderdoc/android/android.cpp +++ b/renderdoc/android/android.cpp @@ -1220,6 +1220,17 @@ struct AndroidController : public IDeviceProtocolHandler for(Android::ABI abi : abis) Android::adbExecCommand(deviceID, "shell am force-stop " + GetRenderDocPackageForABI(abi)); + // Attempt to prevent the user needing to click through on permissions + rdcstr auto_grant_permissions = + Android::adbExecCommand(deviceID, "shell getprop debug.renderdoc.autograntpermissions") + .strStdout.trimmed(); + if(apiVersion >= 30 && atoi(auto_grant_permissions.c_str()) == 1) + { + for(Android::ABI abi : abis) + Android::adbExecCommand(deviceID, "shell pm grant " + GetRenderDocPackageForABI(abi) + + " android.permission.MANAGE_EXTERNAL_STORAGE"); + } + Android::adbForwardPorts(dev.portbase, deviceID, 0, 0, false); Android::ResetCaptureSettings(deviceID);