fl3xbl0wプロジェクトのロゴ

Android ジェイルブレイク - fl3xbl0w

リリース日: 2022年5月28日

リバースエンジニアリングプロジェクト。Bowflex Treadmill 22から始まりましたが、最終的にはNautilus Inc.(Nautilus、Bowflex、Schwinn)によって販売されているすべてのAndroidマシンに一般化されました。

この方法は、Bowflexコンソールのスペックが今日のソフトウェアに対して遅すぎることに依存しています(Androidボードには2GBのRAMしかありません)。そのため、タブレットよりも速く操作できれば、NautilusのAppMonitorServiceからジェイルブレイクが可能です。

これはブルートフォース攻撃と呼べるでしょうか?

プロセスの途中でいつでもマシンを再起動できますが、すべてが元通りになります。ソフトウェア側でリスクはありません。試してみてください!

必要なもの

  • メディアボタン(ホーム、バック)付きのUSBキーボード(有線またはUSBドングル経由のワイヤレス)
  • 速い指!(「激しい部分」は約1秒以内に行う必要があります)
  • adbをインストールしたコンピュータ(ダウンロードリンク

私はLogitech K600を使用しましたが、これらのキーがあるキーボードならどれでも動作するはずです:

Logitech K600キーボード

BluetoothキーボードはJRNYを通じてペアリングできないようです。

ヒント

  • 最初から「完璧にやろう」としないでください。画面上でボタンがどこに表示されるかを把握するのに数回の試行が必要です。タップアクションのために筋肉の記憶を作りましょう。
  • 画面を強く叩かないでください!速く操作することは、壊すことを意味しません。画面を強く叩きすぎた場合の責任は負いません。

手順

まず、マシンをオンにして、USBキーボードをBowflexコンソールに接続しましょう。右側にあります:

コンソールのUSBポートの位置を示す

キーボードが動作するか確認するために、キーボードの「ホーム」ボタンを押してみましょう。これにより、JRNYアプリが再起動するはずです。

コンソールのアニメーション

Androidには、現在のアプリを閉じるショートカットがあり、「バック」ボタンを1秒ほど押し続けると動作します。 「バック」ボタンを使って遊んでみましょう。JRNYアプリが再起動するたびにすぐに閉じる操作を繰り返し、新しいダイアログが表示されるまで続けます:

コンソールのアニメーション

さて、ここからが楽しい部分です:そのダイアログはAndroidの標準的な「フォールト検証システム」に属しています。私たちはNautilusLauncherが悪い(良い!)とAndroidに「思わせる」ことに成功しました。このダイアログを利用してエクスプロイトします。

ダイアログが表示されたらすぐに「アプリ情報」をタップします。「アプリ情報」をクリックすると、設定アプリが開きます(これはAppMonitorServiceの拒否リストにあります)。約1秒で閉じるので、素早く操作する必要があります!「強制停止」ボタンをタップし、その後「OK」をタップします。

コンソールのアニメーション

「OK」をクリックできたら、少し休憩できます(良い運動ですね)。次にRedditで見つけた情報に進みます。右上の「虫眼鏡」アイコンをクリックして「開発者オプション」を検索し、adbを有効にします:

コンソールのアニメーション

コンソールのIPアドレスを見つけます。最も簡単な方法はWi-Fi設定からです:

コンソールのアニメーション

adbが有効になり、IPアドレスがわかったら、コンピュータに移動してadbで接続します。ターミナルを開いてadb connect <IPアドレス>を実行します(私の場合は10.0.0.205):

> adb connect 10.0.0.205
connected to 10.0.0.205:5555

リモートでadbに初めて接続する際には、画面上で確認を求められます。

次に、/sdcard/Pictures/内にnautilusという空のファイルを作成します。「なぜ」についてはBowflexの癖で詳しく説明しています。

> adb shell touch /sdcard/Pictures/nautilus

次に、いくつかの機能を復元します。ターミナルで次のコマンドを送信します:

> adb shell settings put secure ntls_launcher_preference 0
> adb shell settings put secure navigationbar_switch 1
> adb shell settings put secure notification_switch 1
> adb shell settings put secure statusbar_switch 1

UIが表示されます:

コンソールのアニメーション

最後のステップは、デフォルトのランチャーを変更することです。「デフォルトアプリ」を検索し、Quickstepをホームアプリとして設定します:

コンソールのアニメーション

これで自由になりました!

この状態は、NautilusLauncherが強制停止されている限り維持されます。再起動しても持続します。

「元の状態」に戻したい場合は、NautilusLauncherアプリを開くだけです(事前に/sdcard/Pictures/nautilusファイルを作成しておくことを強くお勧めします):

コンソールのアニメーション

「ロックダウンシステム」に関する注意事項

NautilusLauncherはデフォルトの「Androidランチャー」であり、JRNYアプリが閉じるとすぐに「再起動」します。

また、NautilusLauncher apk内にはAppMonitorServiceというフォアグラウンドサービスがあり、これが「セキュリティロック」として機能しています。apkを逆コンパイルすると、次のような興味深い変数が見つかります:

public static final int MonitorIntervalSeconds = 1;
// その他の変数
private static String[] TargtedAppsToKill = {"com.android.vending", "com.android.settings", "com.android.chrome", "com.google.android.gm", "com.google.android.youtube"};
private static String[] TargtedAppsToBackground = {"com.google.android.googlequicksearchbox:interactor", "com.google.android.googlequicksearchbox:search", "com.google.android.googlequicksearchbox", "com.android.launcher3", "com.google.android.inputmethod.latin"};

このサービスは「ロックダウンを積極的に保護」しています。各アプリの終了(「バック」ボタンを押し続けることで)ごとに、JRNYを再起動しようとします。強制終了することで、すべてのフォアグラウンドサービスも無効化されます。

(コードバックアップに見られる誤字は、Nautilusの開発者によるものであり、私のものではありません)

コンテンツの翻訳者: chatgpt-4o-latest

©2022-2024 セバスティアン・バレネチェア. すべての権利を保有.

構築: Astro v4.16.13.