Je vois ici quelques mentions de la création d'une carte SD au format ext4, mais pas de guide. Cette question étroitement liée suggère qu'il n'y a aucun moyen de le faire, mais ma question diffère en ce que mon téléphone est spécifiquement enraciné.
J'ai formaté ma carte en ext4 (table de partition GUID); mon téléphone CyanogenMod l'a monté à/mnt/fuse/sdcard1
. J'ai suivi les instructions ici pour monter la carte à /storage/sdcard1
, en créant le script suivant à/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 &
J'ai redémarré et tenté de copier un fichier (à l'aide de ES File Explorer) et de le coller dans son répertoire parent, ce qui a échoué:
/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).
Je peux effectivement lire le fichier correctement, donc je peux l' ouvrir. FWIW, lorsque j'essaie de copier à partir du point de montage d'origine ( /mnt/fuse/sdcard1
), j'obtiens une erreur légèrement différente:
Failed to copy the file bar.mp3
J'utilise un Samsung Galaxy S3 avec Cyanogenmod 10.2.0-i9300.
== EDIT ==
su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw 2014-03-04 22:08 sdcard1
C'était tout. Il n'y sdcard1_real
en a pas dans ce répertoire, donc je suppose que le script échoue?
== EDIT2 ==
J'ai essayé de modifier le script pour dépanner. Le script commence bien, mais échoue ensuite mkdir "$REALMNT"
avec l'erreur/data/local/userinit.sh[6]: : not found
.
== EDIT3 ==
Je sais que le script ne fonctionne pas, donc le corriger pourrait résoudre ma question, mais je pensais que ce qui suit était intéressant. J'ai formaté ma carte SD dans mon ordinateur Linux et y ai transféré certains fichiers. Curieusement, les erreurs d'autorisation ne se produisent que dans les sous-répertoires que j'ai créés. À la racine de la partition (via /storage/sdcard1
), j'ai déjà une autorisation d'écriture.
ls -l /mnt/fuse/
etls -l /mnt/fuse/sdcard1_real
. Modifiez ensuite votre question pour inclure les résultats. Ma supposition est "de mauvaises autorisations de fichier" - soit pour le montage, soit pour lefoo/
répertoire sur la carte. N'oubliez pas, ext4 prend en charge les autorisations de fichier nix * complètes, y compris. utilisateur et groupes.su
terminal pour obtenir root. Vous devrez peut-être confirmer l'octroi de l'autorisation par téléphone, si vous le faites pour la première fois.echo Script executed > /mnt/fuse/sdcard1/test.log
, et vérifier si elle est en cours d'exécution. Si c'est le cas, effectuez l'avant-dernière lignemount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.log
et vérifiez le message d'erreur. Ou exécuter manuellement le script pour voir:su /data/local/userinit.sh
.touch
montre que le script est en cours d'exécution. J'ai essayé d'exécuter le script manuellement avecsu /data/local/userinit.sh
, mais cela a échoué. J'ai aussi essayésu echo foo
, et obtenir une erreur semblable:Unknown id: echo
.echo
pour sortir chaque commande avant son exécution et rediriger la sortie d'erreur avec2>>
.Réponses:
Ce problème aurait été résolu il y a plusieurs mois, mais les gens signalent toujours des problèmes. Je peux lire les éléments sur la carte, mais je n'ai pas la permission d'écrire. Pour y remédier, j'ai combiné des stratégies à partir de quelques sources .
Les invites
$
et#
indiquent, alors ne les saisissez pas.Cela modifie les autorisations de la carte SD. Le propriétaire et le groupe passent de
system
àmedia_rw
, et cela donne également au groupe un accès en écriture.la source
Vous ne savez pas s'il s'agit d'une aide, mais le problème est peut-être que vous essayez de monter au mauvais endroit? Voici mon script de travail qui fonctionne sur un mini S3 avec CM11:
L'emplacement REALMNT existait déjà, donc bien sûr le mkdir n'a jamais été appelé. Et media_rw / sdcard1 appartient déjà à media_rw
J'ai également dû mettre à jour /etc/permissions/platform.xml pour inclure:
<group id="media_rw"/>
dans:<permission name="android.permission.WRITE_EXTERNAL_STORAGE">
la source
su
ne parvient pas à monter):
android.stackexchange.com/questions/82089/… `J'utilise cm-11-20140804-SNAPSHOT-M9-mondrianwifi.zip.Il y avait une réponse postée par adasdadasd que je voulais accepter, mais a depuis été supprimée. Je vais le reproduire ci-dessous et accepter ma réponse, mais si adasdadasd refait surface, veuillez le republier et je le supprimerai et accepterai le vôtre.
la source