web-dev-qa-db-ja.com

adbを使用して、bashスクリプトでAndroid /システムを読み書き可能に再マウントするにはどうすればよいですか?

情報について

adb remount 

返却値 "remount failed: Operation not permitted"

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

返却値 unknown option -- o

私のデバイスはルート化されています。

24
Andrew

remountが失敗する原因として、adbrootとして実行していないことが考えられます。

シェルスクリプトは次のようになります。

# 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 /;

これが失敗した場合、以下を試すことができます:

# List the Devices.
adb devices;

# Run adb as root
adb root;

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

あなたがどのuserであるかを見つけるには:

$ adb Shell whoami
34
Saurabh Meshram

/ systemとしてマウントするdevブロックを指定しないと、mountコマンドが機能しませんでした

#cat /proc/mountsは戻ります(ここではシステム行のみ)
/dev/stl12 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8 0 0

だから私の作業コマンドは
mount -o rw,remount -t rfs /dev/stl12 /system

13
LostNomad311

そうでなければ...

getenforce

返却値

Enforcing

それから多分あなたは電話する必要があります

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

以下が役立つ場合があります(disable-verity 最初):

adb root
adb disable-verity
adb reboot
4
Tosha

Google Playストアから「adbd insecure」を取得すると、メーカーを保護したカスタムROMへの書き込みアクセスが許可されます。

1
joey c

同じ問題が発生し、システムを読み取り/書き込みとしてマウントできませんでした。戻るだろう

使用法:マウント[-r] [-w] [-oオプション] [-tタイプ]デバイスディレクトリ

または

操作は許可されていません。アクセスが拒否されました

これは、ルート化されたすべてのデバイスで機能します。

次の操作を行いますTERMINAL EMULATOR OR IN ADB Shell

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

Yaffs2はシステムパーティションのタイプです。以下を実行して取得したシステムパーティションのタイプに置き換えます。

#cat /proc/mounts

次に、/systemは長い結果から表示されます

私の抽出物は

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

だから私のシステムはext4。そして、私の命令は

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

できた.

0
Misguided Zeal

あなたが受け取った他のすべての回答に加えて、unknown option -- oエラーについて説明したいと思います。あなたのコマンドは

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

adbを介してsuを呼び出します。 suコマンド全体を適切に引用して、one引数としてadb Shellに渡します。ただし、su -c <cmd>では、コマンドをシェルの-cオプションに渡す引数で引用する必要もあります。 (YMMVはsuバリアントに依存します。)したがって、試してみてください。

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

(そして潜在的にmount | grep systemの出力にリストされている実際のデバイスを/system argの前に追加します。他の回答を参照してください。)

0
hans_meine