SELinuxおよびchrootシステムコール
TL; DR:これは、すべてのAndroidマシンで機能する、移植可能な開発者指向のルート化プロセスの最終ステップに関する質問です。これはエクスプロイトに基づいたものではありません。開発者として自分のマシンに対して法的にも道徳的にも許可されているものです。答えが得られ、Debian内でchrootを管理する場合、タブレットへのルートアクセスを必要とし、疑わしい起源を信頼したくないすべての仲間の開発者のために、このプロセスのすべてのステップを詳述する簡潔なブログ投稿を行いますマシン(ボットネットメンバー?)に何を知っているかを示す「ワンクリックルート」...唯一の依存関係は、マシンのカーネルソース(メーカーが法的に提供する義務がある)とブートパーティションイメージ(boot.img)、これはメーカー提供の無線アップデート内の99%の時間、またはスタンドアロンのフラッシュ可能なイメージとして個別にダウンロード可能です。 そのため、新しいAndroidタブレットで自由時間を過ごした1週間が過ぎました。 そして、Android 5.0.2タブレットでルートを達成するために、移植性のある開発者指向のプロセスを作成することにほぼ完全に成功しました。 しかし、まだ1つ欠けていることがありますdebootstrap-chroot を実行できません(これは-ed Debian を実行する必要があります!) これまでにやったこと まず、タブレットの(メーカー提供の)カーネルソースにマイナーパッチを適用してから、独自のカーネルをコンパイルしました。ここで、SELINUX強制モードを変更するためのチェックを無効にしました。具体的には... でsecurity/selinux/selinuxfs.c: ... if (new_value != selinux_enforcing) { /* Commented out by ttsiodras. length = task_has_security(current, SECURITY__SETENFORCE); if (length) goto out; */ audit_log(current->audit_context, GFP_KERNEL, AUDIT_MAC_STATUS, "enforcing=%d old_enforcing=%d auid=%u ses=%u", new_value, selinux_enforcing, 私はその後、私のinitrdイメージのを変え/default.prop含むように:ro.secure=0とro.debuggable=1 私の製造業者のものinitrd.imgが欠落しているため、https://android.googlesource.com/platform/system/extras/+/master/su/su.cからコンパイルし、結果のバイナリを/sbin/su SUIDルート(chmod 04755 /sbin/su)に設定されていることを確認しました。 その後、前の投稿のエピソード2で説明したように、新しいカーネルと新しいinitrdをパッケージ化し、自分のイメージから起動しました。 adb reboot boot-loader …