Die aktuelle Android Permission System causes the following issue:verändern Programmatically Manifest - Android benutzerdefinierte Berechtigungen
App A definiert die benutzerdefinierte Berechtigung von:
com.package.permission.READ_APP_DATA
Wenn App B die benutzerdefinierte Berechtigung installiert wird erklärt, es gewährt wird.
Wenn jedoch App A nach App B installiert ist, dann ist die Genehmigung ist nicht B. App gewährt
Während dies kein gemeinsames Auftreten sein können, aufgrund App B oft ein Plugin zu sein von App A kann es natürlich vorkommen und tut es für meine Bewerbung.
Mit SuperUser-Anwendungen, die zustimmen, die globale benutzerdefinierte Berechtigung von android.permission.ACCESS_SUPERUSER
einzuführen, kann dies ein großes Problem sein, sollte sich ein Benutzer entscheiden, die SuperUser-App zu wechseln.
Um das Problem zu umgehen, beabsichtige ich den folgenden Code in meiner Anwendung für die benutzerdefinierte Erlaubnis verwenden ich bin erklärt zu starten:
checkPermissions(this, getCallingActivity().getPackageName()); // get the package name from the sender first
private boolean checkPermissions(Context context, String callingPackage) {
final List<PackageInfo> apps = context.getPackageManager().getInstalledPackages(PackageManager.GET_PERMISSIONS);
for (PackageInfo pi : apps) {
if (pi.packageName.equals(callingPackage)) {
String[] permissions = pi.requestedPermissions;
if (permissions != null) {
for (String permission : permissions) {
if (permission.equals("com.package.permission.READ_APP_DATA")) {
return true;
}
}
}
}
}
return false;
Gemäß dem Titel dieser Frage: Ist diese Methode 'sicher'? Oder ist es eine Möglichkeit,/root-Hack, der eine Anwendung manifestiert geändert werden könnte, nachdem es installiert ist und die Erlaubnis programmatisch ‚hinzugefügt‘ zu App B?
"Wenn App A jedoch nach App B installiert wird, wird App B nicht die Berechtigung erteilt." - in beiden Apps das gleiche '' Element haben, insbesondere wenn es sich um eine Berechtigung auf Signaturebene handelt. –
CommonsWare
@CommonsWare - Danke. Könnten Sie das vielleicht bitte erläutern? Ich glaube, das ist bereits, was ich mache, aber App B-Berechtigungen werden immer noch nicht erkannt/gewährt. Mir ist aufgefallen, dass der verlinkte Fehlerbericht endlich als defekt gemeldet wurde. – brandall
"Ich glaube, das ist bereits, was ich tue" - Ihre Frage zeigt an, dass nur App A ein "" Element hat und dass App B nur ein '' Element hat. Ich sage, dass das '' Element auch zu App B hinzugefügt werden soll, so dass die Installationsreihenfolge keine Rolle mehr spielt. –
CommonsWare