precisar
Permissão de tempo de execução A permissão de tempo de execução foi introduzida apenas no Android 6.0. Os aplicativos que executam o Android 5 e versões anteriores no SDK 6.0 e superior
não oferecem suporte à permissão de tempo de execução, mas obterão a permissão por padrão.
Como a autenticação de acesso à rede CTA exige que os aplicativos abaixo do Android 6 também tenham gerenciamento de permissão, o código-fonte do SDK precisa ser modificado.
Versões diferentes têm representações diferentes, leia outro artigo:
Desempenho de permissão de tempo de execução de versões do Android
concluir
O primeiro passo é desativar a função de obtenção de permissões por padrão ao instalar aplicativos abaixo do Android 6
diff --git a/base/services/core/java/com/android/server/pm/PackageInstallerService.java b/base/services/core/java/com/android/server/pm/PackageInstallerService.java
index 1fa37b91..3a3433c9 100644
--- a/base/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/base/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -436,6 +436,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
params.installFlags |= PackageManager.INSTALL_FROM_ADB;
} else {
+ mAppOps = mContext.getSystemService(AppOpsManager.class);
mAppOps.checkPackage(callingUid, installerPackageName);
params.installFlags &= ~PackageManager.INSTALL_FROM_ADB;
@@ -705,6 +706,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
@Override
public ParceledListSlice<SessionInfo> getMySessions(String installerPackageName, int userId) {
mPm.enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "getMySessions");
+ mAppOps = mContext.getSystemService(AppOpsManager.class);
mAppOps.checkPackage(Binder.getCallingUid(), installerPackageName);
final List<SessionInfo> result = new ArrayList<>();
diff --git a/base/services/core/java/com/android/server/pm/PackageManagerService.java b/base/services/core/java/com/android/server/pm/PackageManagerService.java
index aa43008b..5f0f66a4 100644
--- a/base/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/base/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -2279,8 +2279,9 @@ public class P