Ich habe ein Moto G (2. Generation) mit Android 5.02 drauf. Die interne SD-Karte hat etwa 8 GB und ich habe eine externe SD-Karte mit 16 GB freiem Speicherplatz.
Wenn Sie die Anwendung aus dem Menü der Anwendung auf SDCARD verschieben, wird sie auf sdcard0 verschoben, die die interne SD-Karte ist.
Adb-Shell-Befehl:
pm get-install-location
gibt mir:
0[auto]
Ich habe versucht, den Installationsort festzulegen über:
pm set-install-location 2
Aber ich bekomme diesen Fehler:
Error: java.lang.SecurityException: Package android does not belong to 2000
Das heißt, ich beschwere mich über Root-Berechtigungen.
Und weil es sich um einen Produktions-Build-Versuch handelt:
adb root
gibt mir:
adbd cannot run as root in production builds
Gibt es eine Möglichkeit, die Anwendungen so einzustellen, dass sie ihre Daten auf einer externen SD-Karte installieren?
PS: Ich möchte kein benutzerdefiniertes Rom installieren oder Software von Drittanbietern installieren, um das Telefon zu rooten.
Bearbeiten: Mir ist aufgefallen, dass Anwendungsdaten im Ordner gespeichert wurden /storage/sdcard0/Android
, also dachte ich daran, diesen Ordner zu verschieben /storage/sdcard1/
und stattdessen einen Symlink auf diese Weise zu erstellen:
ln -s /storage/sdcard1/Android /storage/sdcard0/Android
wird dies die Arbeit tun?
Danke dir.
Grundsätzlich gilt: Das geht nicht. Zumindest nicht ohne rooten .
Die Hauptgründe, warum Android Ihnen nicht erlaubt, eine Anwendung auf Ihrer externen SD-Karte zu installieren, sind:
Sicherheit : Dies ist der Hauptgrund für diese Einschränkung. Grundlegende Dateisysteme wie NTFS oder FAT (jede Version davon) erlauben keine Unix-ähnliche Berechtigungsverwaltung.
Das bedeutet: Jede Anwendung könnte in jede Datei auf diesem Speicher schreiben.
Wenn sie an bösartige Apps denken, wären sie in der Lage, richtige Apps durch gefälschte/infizierte zu ersetzen, Ihr Telefon zu mauern und es unbrauchbar zu machen.
Flüchtiger Speicher : Ihre externe SD-Karte kann nicht immer in Ihr Gerät eingelegt werden. Sie können sie jederzeit auswerfen, was Ihre SD-Karte zu keinem guten Kandidaten für eine dauerhafte Speicherung macht. Betrachten Sie Apps, die von Ihrer SD-Karte ausgeführt werden, und werfen Sie sie aus. Diese Apps stürzen einfach ab und alle anderen Apps, die auf Ihrer SD-Karte gespeichert sind, sind ebenfalls weg. Sie können sie zu diesem Zeitpunkt nicht verwenden und die Daten dieser App sind ebenfalls von Grund Nr. 1 betroffen.
Grundsätzlich darfst du! ;)
Nach dem Neustart wird JEDE App, die Sie installieren, automatisch auf die SD-Karte verschoben.
Wenn Sie nicht wissen, wie Sie eine Partitionssuche für eine Anleitung in Google erstellen, gibt es viele davon
Das war eine ziemliche Reise auf der Suche nach einer Antwort, die kein Rooten beinhaltete, aber am Ende kam ich zu folgendem:
Booten auf TWRP ohne es zu installieren:
fastboot boot recovery.img
Installation von Chainfires SuperSU mit TWRP.
Vom Terminal-Emulator oder der Shell von adb :
su
pm set-install-location 2
Aus dem Menü einer Anwendung bewegt es sich durch einfaches Settings > Applications
Drücken * - seine Daten und obb - auf die externe SDCARD.Move to SDCARD
SuperSU entfernen......
Nein ... das habe ich nicht getan! 3:)
Gehen Sie zu dieser Adresse http://developer.android.com/tools/help/shell.html#shellcommands
Android 5 und höher unterstützt dies nichtpm get-install-location
Versuchen Sie, Ihre apk zu sichern und folgen Sie den unten stehenden Schritten
adb shell pm install -r -s <path of your apk>
Beispiel
adb shell pm install -r -s /storage/sdcard1/base.apk
-r bedeutet APK mit vorhandenen Daten neu installieren und -s bedeutet SD-Karte
-s
dient zur Angabe, auf welchem Gerät adb ausgeführt werden soll (" -s <serialNumber>
").Installieren Sie zuerst Adbd unsicher ( apk-Download von xda-developers ).
Sobald es auf Ihrem Gerät installiert ist, öffnen Sie es und markieren Sie das Kästchen: „Enable insecure adbd“.
Jetzt können Sie den Speicherort ändern, um Ihre Apps zu installieren.
pr.nizar
GiantTree
/sdcard/sdcard0/Android
. Anwendungen werden in einem versteckten Ordner namens gespeichert, auf den.android_secure
nicht einmalroot
Zugriff besteht (ich habe es auf meinem Gerät getestet, Sie können nicht einmalcd
auf diesen Ordner zugreifen).pr.nizar
GiantTree
sdcard_rw
zurroot
Gruppe gehören oder den Benutzersdcard_rw
überhaupt enthalten. Aber mit ein paar Berechtigungsänderungen sollten Sie das in Ordnung bringen können.pr.nizar
ls -l /storage/sdcard0
hat mir das gegebenlrwxrwxrwx root root 2015-04-20 15:59 sdcard0 -> /storage/emulated/legacy
und Laufenls -l /storage/sdcard0/
hat mir das gegebendrwxrwx--x root sdcard_r 2014-12-20 18:16 Android
.. Ist das eine gute oder schlechte Nachricht? Da ich kein Root bin, kann ich glaube ich keine Berechtigungen setzen.GiantTree
/data/media
, wostorage/emulated/legacy
auf zeigt. Das andere Ergebnis ist eine "einfache Lösung": Zuerst müssen Sie den ursprünglichenAndroid
Ordner an einen anderen Ort verschieben oder umbenennen, um Platz für den Symlink zu schaffen. Verlinken Sie dann/storage/sdcard1/Android
auf/storage/sdcard0/Android
und benennen Sie den LinkAndroid
. Endlich alle Berechtigungen reparieren (777). Dies ist nur theoretisch, aber ich stelle mir vor, dass es so funktionieren sollte.pr.nizar
cp -R /storage/sdcard0/Android /storage/sdcard1/
(zu wackelig über dasmv
lol) dannrm -r /storage/sdcard0/Android
dannln -s /storage/sdcard1/Android /storage/sdcard0/Android
. Wenn dies funktioniert, geht die Gutschrift an Sie, sodass Sie Ihre Antwort aktualisieren können. Ich lasse es dich wissen! ;-)GiantTree
Android
, werden alle laufenden Apps (oder zumindest die meisten von ihnen) beschädigt. Es ist nur ein theoretischer Ansatz aus meinem Kopf; nichts genau zu folgen. Wenn Sie schnell genug sind, können Sie möglicherweise Apps nach einem Absturz wiederherstellen, aber denken Sie daran, dass alle Aktionen nach dem nächsten Neustart rückgängig gemacht werden.pr.nizar
ln: /storage/sdcard0/Android: Operation not permitted
. Die nächste Frage ist also, wie man einen Symlink erstellt. (Ich habe meine Änderungen rückgängig gemacht und alles ist in Ordnung. Zumindest denke ich das jetzt! lol)GiantTree
Android
Ordner fehlt, erstellt es ihn einen Moment später neu. Aus diesem Grund verknüpfen Anwendungen wie Link2SD auch die Ordner einzelner Apps und nicht den gesamtenAndroid
Ordner. Sie können das versuchen, aber ich kann keinen Erfolg versprechen.pr.nizar
GiantTree
pr.nizar
Operation not permitted
). Ich glaube, es liegt einfach daran, dass meinesdcard1
Fat32-formatiert ist. Wie soll ich es formatieren (ich meine seine Hauptpartition)?GiantTree
fuse
Sie möglicherweise keinen Symlink zu Ihrer externen SD-Karte erstellen können). Versuchen Sie nach Möglichkeit, Ihre SD-Karteext4
so zu formatieren, dass Berechtigungen angewendet werden können, ohnefuse
einen zwischengeschalteten Berechtigungsmanager zu verwenden, der die meisten Lese- und Schreibversuche ohne ordnungsgemäße Paketberechtigung blockiert.pr.nizar
GiantTree
root
Symlinks erstellen. Merk dir das.