Ich habe bereits im Internet eine Antwort auf mein Problem gesucht, aber leider habe ich keine gefunden Lösung für mein Problem. Ich habe sogar in diesem Fall auf die official forum geschrieben, leider konnten die Moderatoren dieses Problem nicht bewältigen. Im Folgenden beschreibe ich das Problem, in der Hoffnung, dass jemand ein ähnliches Problem hat und die Lösung kennt.RecoverySystem.InstallPackage -/Cache/Wiederherstellung/Befehl: Öffnen fehlgeschlagen: EACCESS (Berechtigung verweigert) - fehlende Berechtigung nach Update Android 4.3+
Ich habe eine Anwendung, die gut funktioniert auf Android 4.1, weshalb ich die Probleme mit dem Mangel an "etwas" abgelehnt. Vorerst scheint es, dass ein Fehler in neueren Versionen von Android ist, weil nach der Android Aktualisierung 4.3+ (API 18+) meine App zeigt die Meldung:
/cache/recovery/command: open failed: EACCESS (permission denied)
Meine Anwendung ist eine Systemanwendung, so dass die Datei *.apk
/system/app/
zusammen mit einer geeigneten Dateizugriffsberechtigungen (chmod) im Verzeichnis gesetzt wurde, so dass die context.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM
gleich 1.
Da die Anwendung die Methode RecoverySystem.installPackage(...)
verwendet habe ich Berechtigungen:
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" /> <uses-permission android:name="android.permission.REBOOT" /> <uses-permission android:name="android.permission.DELETE_CACHE_FILES" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Mehr als das erforderliche Minimum, weil unter anderem meine Anwendung der Methode RecoverySystem.verifyPackage(...)
Auch verwendet dieses Verfahren hatte Probleme nach dem Android 4.3+ Aktualisierung, aber diese Probleme wurden nach einem der Zugabe gelöst (oder alle) Berechtigungen:
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
HINWEIS: zum Testen ich habe alle Datei auch die möglichen Berechtigungen zu manifestieren, die verfügbar sind, aber das löst nicht das Problem.
Noch einmal möchte ich betonen, dass die Anwendung bis zu einem Update auf Android 4.3+ richtig funktioniert. Nach dem Update gibt es einen Fehler mit der Meldung:
/cache/recovery/command: open failed: EACCESS (permission denied)
Dieser Fehler tritt auf, wenn RecoverySystem.installPackage(...)
die Methode aufrufen. (FileWriter command = new FileWriter(COMMAND_FILE);
wo COMMAND_FILE
== /cache/recovery/command
)
Ich bin nicht sicher, aber ich glaube, dass einer der möglichen Gründe Fehler können in der ‚bootfähige/Recovery/recovery.c‘, aber ich kann keine Bestätigung finden .
Wenn jemand helfen kann, wäre ich dankbar.
P.S. Um Unordnung im Internet zu vermeiden, poste nicht mit Texten wie "benutze Google", "schon war es - ich habe es irgendwo gesehen - aber kann mich nicht erinnern wo", "Ich habe das gleiche Problem/auch nicht für mich" und andere Beiträge, die nicht helfen, das Problem zu lösen.
@ shiri-HRW Danke für Ihre Antwort.
nach dem Hinzufügen android: sharedUserId = "com.google.uid.shared" zu meinem apps manifest (AndroidManifest.xml) ist ein Fehler aufgetreten:
Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE Please check logcat output for more details. Launch canceled!
LogCat
Package com.example.test has no signatures that match those in shared user com.google.uid.shared; ignoring!
und/oder
Package com.example.test has no signatures that match those in shared user android.uid.system; ignoring!
Sie schrieb:
...as your app isn't signed with google signatures...
aber nach der Zeichenanwendung mit den Dateien * .pk8 und * .x509.pem, die unter build/target/product/security im pulbic sdk zu finden sind.
java -jar SignApk.jar platform.x509.pem platform.pk8 Application.apk Application_signed.apk
und/oder
java -jar SignApk.jar shared.x509.pem shared.pk8 Application.apk Application_signed.apk
der Fehler immer noch auftritt.
Wenn ich meine App auf System/App (und Neustart) drücken, ist die Anwendung in Apps nicht sichtbar.
Ich gab Antworten, meine Frage redigierend. Haben Sie eine Idee, wie Sie das lösen können? –
überprüfen Ich habe meine Antwort geändert –