Vejo algumas menções aqui sobre a criação de um cartão SD no formato ext4, mas nenhum guia. Esta questão intimamente relacionada sugere que não há como fazê-lo, mas minha pergunta difere no fato de meu telefone estar especificamente enraizado.
Formatei meu cartão como ext4 (tabela de partição GUID); meu telefone Cyanogenmod o instalou em /mnt/fuse/sdcard1
. Segui as instruções aqui para montar o cartão em /storage/sdcard1
, criando o seguinte script em/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 &
Reiniciei e tentei copiar um arquivo (usando o ES File Explorer) e colá-lo no diretório pai, que falhou:
/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).
Na verdade, eu posso reproduzir bem o arquivo, para poder abri-lo. FWIW, quando tento copiar do ponto de montagem original ( /mnt/fuse/sdcard1
), recebo um erro ligeiramente diferente:
Failed to copy the file bar.mp3
Estou usando um Samsung Galaxy S3 com Cyanogenmod 10.2.0-i9300.
== EDIT ==
su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw 2014-03-04 22:08 sdcard1
Isso foi tudo. Não há sdcard1_real
neste diretório, então suponho que o script esteja falhando?
== EDIT2 ==
Tentei modificar o script para solucionar problemas. O roteiro começa bem, mas, em seguida, falha em mkdir "$REALMNT"
com o erro /data/local/userinit.sh[6]: : not found
.
== EDIT3 ==
Sei que o script não funciona, portanto, corrigi-lo pode resolver minha pergunta, mas achei o seguinte interessante. Formatei meu cartão SD no meu computador Linux e transferi alguns arquivos para ele. Curiosamente, os erros de permissão ocorrem apenas nos subdiretórios que eu criei. Na raiz da partição (via /storage/sdcard1
), já tem permissão de escrita.
ls -l /mnt/fuse/
els -l /mnt/fuse/sdcard1_real
. Em seguida, edite sua pergunta para incluir os resultados. Meu palpite é "permissões de arquivo incorretas" - para a montagem ou para ofoo/
diretório no cartão. Lembre-se, o ext4 suporta permissões de arquivo * nix completas, incl. usuário e grupos.su
terminal para obter root. Pode ser necessário confirmar a concessão da permissão no telefone, se você estiver fazendo isso pela primeira vez.echo Script executed > /mnt/fuse/sdcard1/test.log
, e verificar se está em execução. Nesse caso, faça a linha anterior para a últimamount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.log
e verifique a mensagem de erro. Ou executar o script manualmente para ver:su /data/local/userinit.sh
.touch
mostra que o script está sendo executado. Tentei executar o script manualmente comsu /data/local/userinit.sh
, mas isso falhou. Eu também tenteisu echo foo
, e obter um erro semelhante:Unknown id: echo
.echo
para emitir cada comando antes de ser executado e redirecionar a saída de erro com2>>
.Respostas:
Este foi supostamente fixo há vários meses, mas as pessoas ainda estão relatando problemas. Consigo ler itens no cartão, mas não tenho permissão de gravação. Para corrigi-lo, eu combinei estratégias de algumas fontes .
Os avisos
$
e#
indicam, portanto, não os digite.Isso altera as permissões do cartão SD. O proprietário e o grupo mudam de
system
paramedia_rw
e também fornecem acesso de gravação ao grupo.fonte
Não tem certeza se é de alguma ajuda, mas possivelmente o problema é que você está tentando montar no lugar errado? Este é o meu script de trabalho que funciona em um mini S3 com o CM11:
A localização do REALMNT já existia, portanto, é claro que o mkdir nunca foi chamado. E o media_rw / sdcard1 já pertence ao media_rw
Também tive que atualizar o /etc/permissions/platform.xml para incluir:
<group id="media_rw"/>
em:<permission name="android.permission.WRITE_EXTERNAL_STORAGE">
fonte
su
não montar):
android.stackexchange.com/questions/82089/... `Eu uso cm-11-20140804-SNAPSHOT-M9-mondrianwifi.zip.Houve uma resposta postada por adasdadasd que eu queria aceitar, mas que já foi excluída. Vou reproduzi-lo abaixo e aceitar minha resposta, mas se adasdadasd ressurgir, repita e eu a excluirei e aceito a sua.
fonte