1

スーパーユーザーでAOSPをコンパイルする方法を理解しようとしています。私はこの質問を指摘されました: スーパーユーザーでAndroidを構築します。指示は少し不明瞭に見えますし、私も何が起こっているのか正確にはわかりません。また、Androidアプリでsu特権を許可することについても話しているようです。私はこれをアプリで取得しようとはしていません。メインのAndroidソースでコードを実行しているときにrootアクセスを取得しようとしました(具体的には、DisplayDevice.cppでソケットを開こうとしました)。

私はここで同様の質問をしました(Androidコードでソケットを作成します(Androidアプリケーションではありません)。私は正しい方向に進んでいて、スーパーユーザーとしてコードをコンパイルする必要があることがわかったので、別の質問をする必要があると考えました。

最初のSOの質問の指示に従って、AOSPコードにsu-binaryコードを追加しました。init.rcも変更しましたが、それらの変更を実行するために何かを行う必要があるという印象を受けています。これは質問では話されていません。現在、make su-binaryを実行すると、「make:`su-binary'に対して何も実行されません。」というメッセージが表示されます。ここで何かがおかしいと思います。m-ricで指定されたmakefileを使用しています。また、Androidアプリにあるコードを使用していないため、Superuser.apkが必要かどうかもわかりませんでした。

誰かが私をこれに対して正しい方向に向けることができれば、私は本当に感謝するでしょう。必要に応じて、さらに詳しい情報を提供させていただきます。

4

2 に答える 2

1

実際、スーパーユーザーを使用してAndroidを構築する方法を説明することはできますが、タスクではこれを行わないと思います。問題は、のコードを実行するプロセスがDisplayDevice.cppinetグループ(通常はgid = 3003)に属していないことです。

私はAndroidのディスプレイシステムに精通していませんが、実験したい場合は、次の手順をお勧めします。

  1. コードが実行されるプロセスIDを見つける必要があります。
  2. inetグループのこのプロセスgidに割り当てます。
于 2013-03-11T12:54:28.783 に答える
0

現在、make su-binaryを実行すると、「make:`su-binary'に対して何も実行されません」というメッセージが表示されます。

su.cを変更する方法の例は、https ://code.google.com/p/aosp4nexus5/wiki/AOSPforNexus5#Debugging_a_C_fileにあります。

実際にはロギングのみが追加されますが、これはsetgid()およびsetuid()呼び出しを変更することと同じです。:-)

于 2015-02-02T21:23:06.013 に答える