Widzę tu kilka wzmianek o tworzeniu karty SD w formacie ext4, ale bez przewodnika. To ściśle powiązane pytanie sugeruje, że nie ma sposobu, aby to zrobić, ale moje pytanie różni się tym, że mój telefon jest specjalnie zrootowany.
Sformatowałem kartę jako ext4 (tablica partycji GUID); mój telefon Cyanogenmod zamontował go na /mnt/fuse/sdcard1
. Postępowałem zgodnie z instrukcjami , aby zamontować kartę w /storage/sdcard1
, tworząc następujący skrypt o/data/local/userinit.sh
#!/system/bin/sh
REALMNT=/mnt/fuse/sdcard1_real
if ! [ -d "$REALMNT" ]; then
mkdir "$REALMNT" || exit 1
fi
mount -t ext4 /dev/block/mmcblk1p1 "$REALMNT"
sdcard "$REALMNT" /storage/sdcard1 1023 1023 &
Uruchomiłem ponownie i próbuję skopiować plik (przy użyciu Eksploratora plików ES) i wkleić go do katalogu nadrzędnego, co nie powiodło się:
/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).
Mogę właściwie odtworzyć plik, więc mogę go otworzyć. FWIW, gdy próbuję skopiować z oryginalnego punktu montowania ( /mnt/fuse/sdcard1
), pojawia się nieco inny błąd:
Failed to copy the file bar.mp3
Używam Samsunga Galaxy S3 z Cyanogenmod 10.2.0-i9300.
== EDYCJA ==
su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw 2014-03-04 22:08 sdcard1
To było wszystko. W sdcard1_real
tym katalogu nie ma , więc przypuszczam, że skrypt nie działa?
== EDIT2 ==
Próbowałem zmodyfikować skrypt, aby rozwiązać problem. Skrypt zaczyna się dobrze, ale potem kończy się niepowodzeniem mkdir "$REALMNT"
z błędem /data/local/userinit.sh[6]: : not found
.
== EDIT3 ==
Wiem, że skrypt nie działa, więc naprawienie go może rozwiązać moje pytanie, ale pomyślałem, że następujące było interesujące. Sformatowałem kartę SD w komputerze z systemem Linux i przesłałem do niej niektóre pliki. Co dziwne, błędy uprawnień występują tylko w podkatalogach, które utworzyłem. W katalogu głównym partycji (przez /storage/sdcard1
) mam już uprawnienia do zapisu.
ls -l /mnt/fuse/
ils -l /mnt/fuse/sdcard1_real
. Następnie edytuj swoje pytanie, aby uwzględnić wyniki. Moje przypuszczenie jest „błędne uprawnienia do pliku” - albo na Górze lub dofoo/
katalogu na karcie. Pamiętaj, że ext4 obsługuje pełne uprawnienia do plików * nix, w tym. użytkownik i grupy.su
terminal, aby uzyskać root. Może być konieczne potwierdzenie udzielenia zezwolenia przez telefon, jeśli robisz to po raz pierwszy.echo Script executed > /mnt/fuse/sdcard1/test.log
I sprawdzić, czy w ogóle działa. Jeśli tak, zrób od ostatniego do ostatniego wierszamount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.log
i sprawdź komunikat o błędzie. Lub wykonać skrypt ręcznie zobaczyć:su /data/local/userinit.sh
.touch
pokazuje, że skrypt jest uruchomiony. Próbowałem wykonać skrypt ręczniesu /data/local/userinit.sh
, ale nie powiodło się. Próbowałem równieżsu echo foo
, i uzyskać podobny błąd:Unknown id: echo
.echo
do wypisania każdego polecenia przed jego wykonaniem i przekierowanie wyjścia błędu za pomocą2>>
.Odpowiedzi:
Zostało to prawdopodobnie naprawione kilka miesięcy temu, ale ludzie wciąż zgłaszają problemy. Mogę czytać elementy na karcie, ale nie mam uprawnień do zapisu. Aby to naprawić, połączyłem strategie z kilku źródeł .
$
I#
wskazać monitami, więc nie wpisać je.To zmienia uprawnienia karty SD. Właściciel i grupa zmieniają się z
system
namedia_rw
, a także daje grupie prawo do zapisu.źródło
Nie jesteś pewien, czy to jest jakaś pomoc, ale być może problem polega na tym, że próbujesz zamontować w niewłaściwym miejscu? Oto mój działający skrypt, który działa na S3 mini z CM11:
Lokalizacja REALMNT już istniała, więc oczywiście mkdir nigdy nie został wywołany. A media_rw / sdcard1 jest już własnością media_rw
Musiałem także zaktualizować /etc/permissions/platform.xml, aby uwzględnić:
<group id="media_rw"/>
w:<permission name="android.permission.WRITE_EXTERNAL_STORAGE">
źródło
su
nie można zamontować):
android.stackexchange.com/questions/82089/… `Używam cm-11-20140804-SNAPSHOT-M9-mondrianwifi.zip.Adasdadasd opublikował odpowiedź , którą chciałem zaakceptować, ale od tego czasu została usunięta. Powielę to poniżej i zaakceptuję moją odpowiedź, ale jeśli adasdadasd pojawi się ponownie, proszę opublikuj ponownie, a ja ją usunę i zaakceptuję twoją.
źródło
Oto linia równoległa
A tutaj zapisywalny ext4 na zewnętrznym SD
Możesz zmienić „extSdCard”, tak jak „sdcard1”, w którym zamontowano zewnętrzną kartę SD
Używam stockrom z Kingroot, ale próbuję Supersu z problemami z zamontowaniem systemu plików
źródło