ロック解除したGalaxy S3(SGH-T999)を根付かせました
さて、adb root
をWindowsのコマンドプロンプトから実行しようとしていますが、adbd cannot run as root in production builds
エラーが発生しています。それで、私が最初にチェックしたのは私の電話が本当に根付いているかどうかでしたか?
そこで私は以下を試しました:
コマンドプロンプトを開く
$adb devices // lists my device
$adb Shell //goes to Shell
$su // opens a 'SuperSu' Prompt on my phone and I 'Grant' permission
# // Before following the rooting instructions, I was getting 'no su command found' in the previous step. So, I believe my phone is ROOTED. **Correct me if I'm wrong.**
しかし、adb root
を実行すると、adbd cannot run as root in production builds
エラーが発生します。それで、私は私が上でしたことを超えていくつかの追加のことをしなければならないかもしれないと思いました。私は以下のSO質問ですべての解決策を試しました。
上記のどれも私のために働きませんでした。彼らがすることはShellの中のROOTアクセスを与えることです。シェルに入らずにさまざまなadbコマンドを実行できるように、adb root
を機能させたい。
一部の開発者向けのROMでは、設定>開発者オプション>ルートアクセスでルートアクセスを有効にすることができます。その後adb root
が利用可能になります。残念ながら、市場に出ているほとんどのストックROMではうまくいきません。
設計上adb root
コマンドは開発ビルドでのみ機能します(つまり、デフォルトでro.debuggable=1
を持つeng
およびuserdebug
)。そうでなければ根ざしたデバイスでadb root
コマンドを有効にするには、以下のファイルの1つにro.debuggable=1
行を追加するだけです。
/system/build.prop
/system/default.prop
/data/local.prop
デフォルトでadb Shell
をroot
から始める場合は、ro.secure=0
を追加します。
代わりに、修正されたadbd
バイナリを使用することもできます(これはro.debuggable
をチェックしません)。
から https://Android.googlesource.com/platform/system/core/+/master/adb/daemon/main.cpp
#if defined(ALLOW_ADBD_ROOT)
// The properties that affect `adb root` and `adb unroot` are ro.secure and
// ro.debuggable. In this context the names don't make the expected behavior
// particularly obvious.
//
// ro.debuggable:
// Allowed to become root, but not necessarily the default. Set to 1 on
// eng and userdebug builds.
//
// ro.secure:
// Drop privileges by default. Set to 1 on userdebug and user builds.
私は根強いサムスンギャラクシートレンドプラス(GT - S7580)を持っています。
'adb root'を実行すると、 'adbdをプロダクションビルドでrootとして実行できない'というエラーが表示されます。
[開発者向けオプション] - > [ルートアクセス]を持つデバイスの場合は、「(ADBのみ)」を選択してデバイスへのadbルートアクセスを提供します( NgaNguyenDuy で推奨)。
それから で解決策に従ってコマンドを実行してみてください。ADBを介してrootとしてスクリプトを起動します 。私の場合は、 'netcfg rndis0 dhcp'コマンドを実行したいだけなので、次のようにしました。
adb Shell "su -c netcfg rndis0 dhcp"
この方法でそれを実行している間あなたが間違いを犯しているかどうか確認してください。
それでも機能しない場合は、デバイスを正しく起動したかどうかを確認してください。それでもうまくいかない場合は、「adb root」を機能させるための Cyanogen Mod などのカスタムROMをインストールしてみてください。
私はADBシェルでエンターSPモードに使用します
adbシェル "su"
Boot.img/sbin /フォルダ内のadbdバイナリをsu対応のバイナリに置き換える必要があります。 default.propも編集する必要があります。
Samsungはこれを他のベンダーよりも困難にしているようだ。私はあなたが試すことができるいくつかのadbdバイナリを持っています、しかしそれは新しいバイナリでboot.imgを逆コンパイルして再コンパイルすることの知識を必要とするでしょう。また、ブートローダがロックされているのであれば、これは起こりません。
また、ChainfireはPlayストアでadbd root権限を許可するアプリを持っています。 https://play.google.com/store/apps/details?id=eu.chainfire.adbd&hl=ja
最後に、あなたがSUパーミッションでwindowsスクリプトを書き込もうとしているなら、あなたは次のコマンドスタイルを使ってこれを購入することができます...しかし、あなたは少なくとも(パーフェクト)SUパーミッションを走らせました。 。
adbシェル "su -c ls" <-list作業ディレクトリをsu権限でリストします。 adbシェル "su -c echo anytext> /data/test.file"
これらはほんの一例です。あなたが達成しようとしていることを具体的に述べるならば、私はより具体的な助言を与えることができるかもしれません
- スケスラー
私はエミュレータを根絶しようとしたときにこの問題に遭遇しました、私はそれがグーグルプレイを持っていたNexus 5xエミュレータを実行していたためであることがわかりました。グーグルプレイとadb root
を持っていなかった別のエミュレータを作成してあなたのためにデバイスを根絶するでしょう。これが誰かに役立つことを願っています。
ADB
をroot
として実行する必要がある場合は、AndroidカスタムROMをインストールするのが最も迅速で簡単な方法であり、最も人気があるのはCyanogenMod
Root Access
へのrootアクセスを許可することを選択できる開発者オプションメニューのapps and ADB
オプション。以前CMを使用していましたが、開発されていないため、いくつかのソリューションを探してみました。 CyanogenModはブロートウェアを持たないため、依然として優れた代替手段です。
友人から見つけた1つの代替手段は、ここから試すことができるadbd insecure
アプリを使用することです: https://forum.xda-developers.com/showthread.php?t=168759 。私の場合、Androidカスタムカーネルで動作しますが、AndroidストックROM(バニラAndroidのみ)では動作しません。 Android ROMのboot.img
の変更など、他の代替手段を試すこともできます。