Я вижу некоторые упоминания о создании SD-карты в формате ext4, но не руководство. Этот тесно связанный вопрос предполагает, что нет никакого способа сделать это, но мой вопрос отличается тем, что мой телефон специально укоренен.
Я отформатировал свою карту как ext4 (таблица разделов GUID); мой телефон Cyanogenmod установил его на/mnt/fuse/sdcard1
. Я следовал инструкции здесь , чтобы установить карту в /storage/sdcard1
, создавая следующий сценарий в/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 &
Я перезапустил и попытался скопировать файл (используя ES File Explorer) и вставить его в родительский каталог, что не удалось:
/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).
Я могу нормально воспроизвести файл, поэтому я могу открыть его. FWIW, когда я пытаюсь скопировать из исходной точки монтирования ( /mnt/fuse/sdcard1
), я получаю немного другую ошибку:
Failed to copy the file bar.mp3
Я использую Samsung Galaxy S3 с CyanogenMod 10.2.0-i9300.
== EDIT ==
su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw 2014-03-04 22:08 sdcard1
Это все. В sdcard1_real
этом каталоге нет, так что я полагаю, что скрипт не работает?
== EDIT2 ==
Я попытался изменить скрипт для устранения неполадок. Сценарий начинается нормально, но затем завершается mkdir "$REALMNT"
с ошибкой/data/local/userinit.sh[6]: : not found
.
== EDIT3 ==
Я знаю, что скрипт не работает, поэтому исправление может решить мой вопрос, но я подумал, что следующее было интересно. Я отформатировал свою SD-карту в своем компьютере с Linux и перенес на нее некоторые файлы. Как ни странно, ошибки прав доступа возникают только в созданных мной подкаталогах. В корне раздела (через /storage/sdcard1
) у меня уже есть разрешение на запись.
ls -l /mnt/fuse/
иls -l /mnt/fuse/sdcard1_real
. Затем отредактируйте свой вопрос, чтобы включить результаты. Я предполагаю, что «неправильные права доступа к файлу» - либо для монтирования, либо дляfoo/
каталога на карте. Помните, ext4 поддерживает полные права доступа * nix, в т.ч. пользователь и группы.su
в терминале, чтобы получить root. Возможно, вам придется подтвердить предоставление разрешения по телефону, если вы делаете это в первый раз.echo Script executed > /mnt/fuse/sdcard1/test.log
, и проверить, работает ли он вообще. Если это так, введите последнюю строкуmount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.log
и проверьте сообщение об ошибке. Или выполнить скрипт вручную , чтобы увидеть:su /data/local/userinit.sh
.touch
показывает, что скрипт работает. Я попытался выполнить скрипт вручнуюsu /data/local/userinit.sh
, но это не удалось. Я также попробовалsu echo foo
, и получить подобную ошибку:Unknown id: echo
.echo
для вывода каждой команды перед ее выполнением и перенаправлять вывод ошибок с помощью2>>
,Ответы:
Предположительно это было исправлено несколько месяцев назад, но люди все еще сообщают о проблемах. Я могу читать предметы на карте, но у меня нет разрешения на запись. Чтобы исправить это, я объединил стратегии из нескольких источников .
Приглашения
$
и#
указывают, поэтому не вводите их.Это изменяет разрешения SD-карты. Владелец и группа меняются с
system
наmedia_rw
, и это также дает группе право на запись.источник
Не уверен, что это какая-то помощь, но, возможно, проблема в том, что вы пытаетесь смонтировать не в том месте? Это мой рабочий скрипт, который работает на S3 mini с CM11:
Местоположение REALMNT уже существовало, поэтому, конечно, mkdir никогда не вызывался. И media_rw / sdcard1 уже принадлежит media_rw
Мне также пришлось обновить /etc/permissions/platform.xml, чтобы включить:
<group id="media_rw"/>
в:<permission name="android.permission.WRITE_EXTERNAL_STORAGE">
источник
su
не удается смонтировать):
android.stackexchange.com/questions/82089/… `Я использую cm-11-20140804-SNAPSHOT-M9-mondrianwifi.zip.Adasdadasd опубликовал ответ, который я хотел принять, но с тех пор он был удален. Я воспроизведу его ниже и приму мой ответ, но если adasdadasd появится снова, пожалуйста, перепечатайте, и я удалю это и приму ваш.
источник
Здесь симпелин
А вот доступный для записи ext4 на внешний sd
Вы можете изменить «extSdCard» на «sdcard1», где смонтирована ваша внешняя sdcard
Я использовал Stockrom с Kingroot, но я попробую Supersu его проблемы с монтированием файловой системы
источник