Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Android 17] Early observations: JIT thread pool crash on attach and JNI transition frame aborts

オープン
#411 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
12/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
活発
技術スタック
android, java, javascript

調査の方向性

The payload names no file in this repository; the crashes are in ART internals (art::jit::Jit::CreateThreadPool) and in the JNI transition check. Start by reproducing the Java.use hooks on android.webkit.WebView $init and android.os.Binder attachInterface on an API 37 device or emulator, then gather the tombstone. Done would mean a hook pattern that survives on API 37 with a stated cause, which needs Android runtime knowledge and a maintainer decision on scope.

索引モデルが issue の本文から書いたものです。

説明

Ran into a couple of quirks while testing Frida 17.21.0 on Android 17 (API 37, build CE2A.260420.019). Opening this up to share logs and reproduction details in case they're useful as A17 support gets fleshed out.

1. SIGSEGV in art::jit::Jit::CreateThreadPool during attach
  • Behavior: When attaching frida-server early during process launch, ART intermittently segfaults inside art::jit::Jit::CreateThreadPool.
  • Observations: Appears to be a race between ptrace attachment and JIT thread pool initialization. Disabling JIT before launching or attaching avoids the crash on our end:
    adb shell setprop dalvik.vm.usejit false
    
    Not sure if there's a cleaner synchronization hook or if this is primarily visible on emulator timing, but wanted to mention it.
2. Runtime abort: JNI transition frame error
  • Behavior: Hooking native constructor stubs or Binder entrypoints causes ART to abort the process:
    art E ... JNI transition frame error
    
  • Reproduction cases we saw:
    • Replacing $init on native classes:
      Java.use('android.webkit.WebView').$init.implementation = ...
    • Hooking Binder interface registration:
      Java.use('android.os.Binder').attachInterface.implementation = ...
  • Observations: Looks like A17 might have tightened up stack validation or frame accounting around native-to-managed transitions. Replacing these native stubs with JS trampolines seems to trigger that transition check.
  • Current workaround for us: Steered our scripts away from hooking $init and Binder.attachInterface directly on API 37, targeting higher-level callers or concrete factory methods instead.

Happy to pull more tombstones or test proposed patches if anyone is digging into A17 support.

主要言語
JavaScript
スター
413
フォーク
174
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

frida/frida-java-bridge のほかの issue

frida/frida-java-bridge の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。