web-dev-qa-db-ja.com

すべてのコマンドに対してadbシェルの「操作は許可されていません」

最近、Android電話を出荷時設定にリセットしました。リセット前は、adb installを介してアプリケーションをインストールできました。電話はルート化されていませんでした。

工場出荷時の状態にリセットした後、adbシェルのほぼすべてのコマンド(存在しないコマンドを含む)で「操作は許可されていません」というメッセージが表示されます。

$ install
install: permission denied
$ Push
push: permission denied
$ remount
remount: permission denied
$ su
su: permission denied
$ kmmsaldfmaldskfmlasdf
kmmsaldfmaldskfmlasdf: permission denied
$

ほとんどのPATHは私には読めません(/ system/binと/ system/xbinを除く):

$ echo $PATH
/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
$ ls /sbin
opendir failed, Permission denied
$ ls /vendor/bin
/vendor/bin: No such file or directory
$ ls /system/sbin/
/system/sbin/: No such file or directory

adb rootを実行した場合:

$ adb root
adbd cannot run as root in production builds

私の検索(すでに必要以上に時間がかかっている)から、いくつかのポインタはdefault.propにあります:

$ cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.service.adb.enable=1
$

しかし、default.propへの書き込みアクセス権はありません。

$ ls -l default.prop 
-rw-r--r-- root     root          118 1969-12-31 19:00 default.prop
$

また、再マウントできないようです。私はroot化されていないデバイスでadbを正常に使用することができましたが、なぜ今そんなに悲しんでいるのですか?誰かがこの問題に遭遇しましたか?私自身の電話は私には事実上使用できません、そしてもちろん私はどんな開発もすることができません。

Rwとして再マウントしようとしています:

$ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
/dev/stl9 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=cp437 0 0
/dev/stl10 /cache rfs rw,nosuid,nodev,relatime,vfat,llw,gid/uid/rwx,iocharset=cp437 0 0
/dev/stl6 /mnt/.lfs j4fs rw,relatime 0 0
/dev/stl11 /data rfs rw,nosuid,nodev,relatime,vfat,llw,check=no,gid/uid/rwx,iocharset=cp437 0 0
$ mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /
mount: Operation not permitted

私の電話はSamsungGalaxyYです。

6
ealfonso

PCコマンドラインからinstallのようなコマンドを発行する必要があります。

C:\> adb install ...

adbシェル内からではなく。それが機能しない場合は、実行する必要があるかもしれません

adb remount

および/または電話を再起動するか、電話ドライバを再インストールします。詳細については、 このスレッド を参照してください。

Adb Shellセッションのパスには、存在しないあらゆる種類のディレクトリが含まれている可能性があることがわかりました。それがなぜなのかはわかりませんが、通常は何も台無しになりません。

4
Ted Hopp

新しいバージョンのAndroidを携帯電話にインストールしなかったとすると、携帯電話は開発者モードではなくなったと思います。

設定に移動。システムの見出しが表示されるまで下にスクロールします。その下に、いくつかのオプションが表示されます。開発者がその1人でない場合は、[電話について]をクリックし、[ビルド番号]まで下にスクロールします。ビルド番号を7回クリックします。これで開発者モードに戻るはずです。

1
Joe Malin

リカバリからこれらのコマンドを実行してみてください。最新のリカバリはdebuggable = 1ですが、カーネルを逆コンパイルしてro.debuggable = 0を1に変更すると、adbで再マウントし、adbをrootとして実行できるようになります。

0

ユーザー機能がどこかで剥奪されています。/proc // statusを見て、機能マスクを確認します。

0
skoperst

私はギャラクシーS3でこの問題を際限なく抱えていましたAndroidキッチンを構築したとき、私はこれを回避する方法を見つけました

  1. 高度な権限が必要な場合は、デバイスをルート化します
  2. Default.propでデバイスのカーネルをアンパックビルドし、これらの値を対応する値に変更します

ro.secure=0 ro.debuggable=1

  1. コンパイル/再パックおよびフラッシュ
  2. USBデバッグを有効にする
0

SuperS アプリをGooglePlayからインストールする必要があります。これは、私のデバイス(Galaxy S4)でルート機能を正しく有効にした唯一のスーパーユーザーアプリです。

その後、adb Shellおよびsu/ dataディレクトリからファイルをプルする場合は、そのファイルのアクセス許可を変更する必要があります(chmodを使用)。その後、それは動作するはずです!

0
IgorGanapolsky

私はあなたのための解決策を見つけたかもしれません

最近、(root化)LGP500をFroyo(Android 2.2.1)からGingerbeard(Android 2.3.3)に更新しました。その後、私はあなたと非常によく似た状況にいることに気づきました(正直言って同じです)。 SUの資格情報を失い、その問題の解決策を必死に見つけようとしました。私はとても必死でした-私は有名なものを試しました Android 4.2メソッド 開発者設定を有効にし、かなり長い間狂人のように私の貧弱なデバイスをタップしました。だから...私はまったく同じ問題を抱えていました。 Webサーフィンをしていると、問題が実際にはGingerbeardビルドにあることがわかり、いくつかの興味深い解決策に出くわしました。そして、すべての努力の後、どちらの方法が最適かを判断するのにかなりの時間がかかりました-私(最終的に)は私の2.3.3デバイスを持っていました根付いた。

私はこれらのことを教育目的でのみ共有していることに注意してください。誤ってデバイスをブリックしても、問題は発生しません。


続行する前に、次のことを確認してください:

  • ADBドライバが正しくインストールされています(そうでない場合は、「オンラインデバイスが見つかりませんでした。USBデバッグを有効にしてください!」というエラーが表示されます。解決策-ADBドライバをインストールまたは再インストールします。ドライバをインストールする必要があることに注意してください。デバイスは接続されていますが、「USBデバッグ」は無効になっています。
  • 「USBデバッグ」と「モックロケーションを許可する」がチェックされています。

    データの損失を防ぐために、バックアップを作成することを強くお勧めします。 (少なくとも連絡先を.vcfファイルにエクスポートします)

すべてがOKの場合:

  1. UnlockRootをインストールして(Unlock_Root_2.3.0.exe ここ を見つけることができます)、それを実行します。
  2. 「root」を実行します(実際には「root」ボタン以外はすべて無視できます)。ポップアップメニューでデバイスを選択します。
  3. デバイスを再起動します(SUバイナリのインストールを完了するために-再起動する場合はアプリでプロンプトが表示されますが、adb Shellを使用して自分で自由に実行できます)そして出来上がり!デバイスは、そのようにルート化されています。
0
faustvault