web-dev-qa-db-fra.com

Comment remonter mon Android/système en lecture-écriture dans un script bash avec adb?

Pour info 

adb remount 

renvoie "remount failed: Operation not permitted"

adb Shell 'su -c  mount -o rw,remount /system'

renvoie unknown option -- o

Mon appareil est enraciné.

21
Andrew

La cause probable de l'échec de remount est que vous n'exécutez pas adb en tant que root.

Shell Script devrait être comme suit.

# Script to mount Android Device as read/write.
# List the Devices.
adb devices;

# Run adb as root (Needs root access).
adb root;

# Since you're running as root su is not required
adb Shell mount -o rw,remount /;

Si cela échoue, vous pouvez essayer ce qui suit:

# List the Devices.
adb devices;

# Run adb as root
adb root;

adb remount;
adb Shell su -c "mount -o rw,remount /";

Pour trouver quelle user vous êtes: 

$ adb Shell whoami
32
Saurabh Meshram

Je ne pouvais pas faire fonctionner la commande mount sans spécifier le bloc dev à monter en tant que/system 

#cat /proc/mounts retourne (uniquement la ligne système ici)
/dev/stl12 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8 0 0 

donc ma commande de travail est
mount -o rw,remount -t rfs /dev/stl12 /system 

13
LostNomad311

Sinon ... si

getenforce

résultats

Enforcing

Alors peut-être que tu devrais appeler

setenforce 0 
mount -o rw,remount /system 
setenforce 1
10
Albert

Les éléments suivants peuvent aider (étudiez d’abord les impacts de disable-verity): 

adb root
adb disable-verity
adb reboot
4
Tosha

J'ai eu le même problème et ne pouvais pas monter le système en lecture/écriture. Il reviendrait 

Utilisation: mount [-r] [-w] [options -o] [-t type] répertoire de l'appareil

Ou 

opération non autorisée. Accès refusé

Maintenant, cela fonctionne sur tous les appareils enracinés.

FAIRE CE QUI SUIT IN TERMINAL EMULATOR OR IN ADB Shell

$ su
#mount - o rw,remount -t yaffs2 /system

Yaffs2 est le type de partition système. Remplacez-le par le type de votre partition système tel qu'obtenu en exécutant ce qui suit 

#cat /proc/mounts

Puis vérifiez où /system apparaît dans le long résultat 

Extrait de mon était comme

mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0/dev/block/platform/msm_sdcc.3/by-num/p10 /system ext4 ro,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.3/by-num/p11 /cache ext4 rw,nosuid,nodev,relatime,data=ordered 0 0

Donc, mon système est ext4. Et ma commande était

$ su
#mount  -o  rw,remount  -t  ext4  /system 

Terminé. 

0
Misguided Zeal

En plus de toutes les autres réponses que vous avez reçues, je veux expliquer l'erreur unknown option -- o: Votre commande était

$ adb Shell 'su -c  mount -o rw,remount /system'

qui appelle su à travers adb. Vous avez correctement cité la commande entière afin de la passer sous forme d'argument one à adb Shell. Cependant, su -c <cmd> a également besoin de citer la commande avec les arguments à passer à l'option -c du shell. (YMMV selon les variantes su.) Par conséquent, vous voudrez peut-être essayer

$ adb Shell 'su -c "mount -o rw,remount /system"'

(et éventuellement ajouter le périphérique réel répertorié dans la sortie de mount | grep system avant le /system arg - voir les autres réponses.)

0
hans_meine

Obtenez "adbd insecure" sur Google Play Store, il aide à donner un accès en écriture aux roms personnalisées qui le sécurisent.

0
joey c