SSHelper: permissão do cartão SD negada

10

Não consigo gravar no meu sdcard usando o SSHelper:

u0_a264@MSM8974:/storage/sdcard1 $ df /storage/sdcard1                                                               
Filesystem               Size     Used     Free   Blksize
/storage/sdcard1       119.1G   625.3M   118.4G   32768

u0_a264@MSM8974:/storage/sdcard1 $ mkdir Test

mkdir failed for Test, Permission denied

No sdcard "interno" não há problema:

u0_a264@MSM8974:/data/data/com.arachnoid.sshelper/home $ mkdir Test
u0_a264@MSM8974:/data/data/com.arachnoid.sshelper/home $ rmdir Test

Informações do aplicativo para Android 5.1.1 Permissões mostra:

  • modificar ou excluir o conteúdo do seu sdcard. leia o conteúdo do seu cartão SD

O que está faltando para poder scp arquivos no meu cartão micro SD usando o SSHelper?

heroedeleyenda
fonte
Em um android 4.2.2 ele funciona bem em ambos / dados e / storage / sdcard1
heroedeleyenda
É uma loucura o quão difícil é usar permissões no vfat, que não foi projetado para isso. Não entendo por que o Android não usa o ext2.
Heroedeleyenda 30/05

Respostas:

4

Veja as várias maneiras de contornar esse problema, conforme explicado nos documentos oficiais .

Aqui estão alguns trechos:

Uma solução, nada fácil, é retirar o dispositivo de armazenamento externo do dispositivo Android, gravá-lo em outro lugar e colocá-lo de volta. Essa é uma grande dor, e funciona apenas se você tiver acesso ao dispositivo e for um pouco técnico.

Existe uma solução mais difícil que concede acesso permanente de gravação, o que explicarei aqui. Mas esteja avisado - essa não é uma atividade normal para usuários finais e, sem ter cuidado, você pode bloquear o dispositivo.

A última solução requer acesso root e modificação /system/etc/permissions/platform.xmlpara incluir <group gid="media_rw" />permissão nas seções relevantes, como mostrado abaixo:

<permission name="android.permission.READ_EXTERNAL_STORAGE" >
    <group gid="sdcard_r" />
    <group gid="media_rw" />
</permission>

<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
    <group gid="sdcard_r" />
    <group gid="sdcard_rw" />
    <group gid="media_rw"/>
</permission>

<permission name="android.permission.ACCESS_ALL_EXTERNAL_STORAGE" >
    <group gid="sdcard_r" />
    <group gid="sdcard_rw" />
    <group gid="sdcard_all" />
    <group gid="media_rw" />
</permission>

Observe também que suas alterações no arquivo acima provavelmente serão perdidas quando você fizer uma atualização OTA (Over-The-Air).

Mansour
fonte