Montar um cartão SD manualmente a partir adb shell no android

? Merc @ | Original: StackOverFlow
---

Eu tenho um telefone android 4.1 ( Lenovo 820 ) . Depois de algumas alterações que visam compartimentar o carneiro SD interno (o que mudou, o telefone não vai mais montar o cartão SD externo. Sou bom -ish no Linux, mas eu nunca vi o shell Android antes de hoje .

Eu gostaria de saber os passos para :

Get the list of available devices representing SD cards Manually mount the SD card -- the mount command won't work as it says can't read /etc/fstab -- how do you mount things? Get the SDcard to mount at boot time

Meu /etc/system/vold.fstab tem :

dev_mount sdcard /storage/sdcard0 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /storage/sdcard1 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

Mount is now:

rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt/secure type tmpfs (rw,relatime,mode=700)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
/emmc@android on /system type ext4 (ro,relatime,nobarrier,noauto_da_alloc,commit=1)
/emmc@usrdata on /data type ext4 (rw,nosuid,nodev,noatime,nodiratime,discard,nobarrier,noauto_da_alloc)
/emmc@cache on /cache type ext4 (rw,nosuid,nodev,noatime,nodiratime,discard,nobarrier,noauto_da_alloc)
/emmc@protect_f on /protect_f type ext4 (rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered)
/emmc@protect_s on /protect_s type ext4 (rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered)
---

Top 5 Responder

1Jarmez @

Eu não posso acreditar que ninguém tenha respondido a você em 2 meses? Wow ... como folga !

Se você achar que você não pode executar um kernel do inseguro não é o fim do mundo, apenas requer um pouco mais de trabalho para conseguir o que você quer, que eu vou elaborar com exemplos em um momento.

Vejamos alguns exemplos agora vamos - digamos que você tenha acesso root porque você usou um ataque em seu dispositivo, mas ter assegurado do kernel ainda, note : kernel garantiu = ro.debugable=0 dentro de seu arquivo default.prop sistema ( gerado no momento da inicialização e não encontrado e localizada no interior a maioria dos pacotes de firmware) . Se você quiser permitir que adb para ter acesso root você vai precisar alterar o arquivo e, em especial, a linha que eu mencionei acima . Também pode haver outros requisitos para que você deve olhar para o que o seu dispositivo precisa eg O Galaxy Tab estou reparando no momento é mais velho tão usa armazenamento em massa em vez de protocolo de transferência de mídia, então eu preciso dizer adb para manter a conexão aberta e sólida ( não o tempo limite e desligar ) quando envolvidos com o dispositivo ; este passa a ser feita através do arquivo default.prop também. A dificuldade surge quando você quer mudar esse arquivo ; a maioria das pessoas descompilar o kernel eo ramdisk e editá-lo diretamente e recompilar e depois reflash -lo para o dispositivo, principalmente porque adb, obviamente, não tem acesso root no momento. Você pode puxar o arquivo do sistema da seguinte forma:

adb pull default.prop default.prop

( Isso é, se você tiver ADB no seu caminho de ambiente distro PC)

Isso fará com que a linha reta você, apenas o problema é quando você deseja colocá-lo de volta depois de mudar isso pode ser bastante difícil. Várias soluções são cerca, eu ouço um monte de empurrando-o para /emmc/storage/sdcard0/default.prop SDcard ou /tmp/default.prop e, em seguida, exigindo-lhe como " superusuário " no dispositivo usando algo como o emulador de terminal, gerente de roteiro ou explorador raiz para colocar o arquivo de volta no lugar e dar-lhe as permissões corretas .

digitando remount adb em um dispositivo com o kernel seguro permitirá que você remontar todo o sistema como leitura-gravação e você pode fazer o que quiser . Se inseguro que você pode acabar fazendo algo parecido

adb root
remount

ou você pode acabar descobrindo que todo o seu console não tem direitos de superusuário que assim sempre, para que você seria obrigado a shell adb shell no dispositivo (onde ou você tem direitos de superusuário ) e, em seguida, executar os comandos que você quer tentar .

adb shell
su
mount -o rw /system
remount /system

Eu descobri recentemente que você pode obter o mesmo nível de acesso através de uma única linha no console adb e chave de retorno única forma:

adb shell su -c mount -o rw,remount /system

Este passa os argumentos a única seqüência adb shell -> acesso de superusuário -> passar comando -> montar como leitura e escrita -> comando remount - > para a partição do sistema .

Você poderia se você gosta de usar o comando acima para obter os direitos de superusuário a partir do console e cordas eco no arquivo default.prop sem a necessidade de decompiling o kernel.

No meu caso eu só repetiu os mesmos comandos algumas vezes e substituiu o default.prop com o mesmo conteúdo apenas ajustando variáveis ​​específicas para o meu gosto assim: Observe a primeira linha utiliza apenas 1> de modo que este limpa efetivamente ou sobrescreve o arquivo default.prop, daí o resto das linhas preciso também seguir . Eu uso 2> como >> porque isso acrescenta para a seguinte linha do arquivo.

adb shell su -c echo ro.secure=1>default.prop
adb shell su -c echo ro.allow.mock.location=0>>default.prop
adb shell su -c echo ro.debuggable=1>>default.prop
adb shell su -c echo persist.sys.usb.config=mass_storage,adb>>default.prop
adb shell su -c echo persist.service.adb.enable=0>>default.prop

Isto é bastante rápido e eficaz para 4 ou 5 linhas de código, mas isso não é prático quando você está reescrevendo um arquivo grande, com muitas linhas de teste. Você pode querer olhar para as coisas como grep com funções looping em um script para filtrar linhas específicas de grande arquivo de texto / script / config, no entanto, para este exemplo e, provavelmente, para o seu arquivo de vold sistema este deve ser suficiente.

Eu acho que isso deve ser suficiente para ( desculpe o trocadilho ) armá-lo com informação suficiente para ser perigoso :) Na mesma nota, por favor, certifique-se de que você tem um backup do seu dispositivo, antes de ir brincar com o sistema . Eles são muito semelhantes ao linux, mas eles também são muito diferentes também! Preste atenção a este aviso, certifique-se fazer backup de seus EFS PARTITION imediatamente !! Efs contém o número IMEI do dispositivo e isso é algo que você realmente não quer corrompidos ou perdidos. Eu tenho visto em primeira mão o que pode acontecer ; você nem precisa chamar a partição EFS por acidente de quebrá-lo .... você só precisa fazer um erro chamando um caminho explícito para a partição incorreta e pode destruir seu IMEI !