feat(android): trace callers of external DEX methods (#8154)

Resolve exact external method targets from directly encoded DEX invokes.
Preserve complete caller identity, bounded position evidence and follow-up
selectors. Report aggregate position coverage independently of the caller
inventory, and reuse bounded prototype facts within the exact session.

Absorbs #8096. Fixes #7811.

Co-authored-by: hhang <169027046+xu91102@users.noreply.github.com>
This commit is contained in:
gensokyo-devandhhang authored and GitHub committed 2026-10-31 01:07:18 +08:00
1 parent 675d4076de
commit 0ffed7a48c
20 files changed
+1472 -76

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
.class public Lfixture/Caller;
.super Ljava/lang/Object;
.method public static notify0(Landroid/app/NotificationManager;Landroid/app/Notification;)V
.registers 3
const/4 v0, 0x1
invoke-virtual {p0, v0, p1}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
invoke-virtual {p0, v0, p1}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
invoke-static {}, Lfixture/Target;->mark()V
return-void
.end method
.method public static notify0(Landroid/app/NotificationManager;Landroid/app/Notification;I)V
.registers 3
invoke-virtual {p0, p2, p1}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
return-void
.end method
.method public static notify1(Landroid/app/NotificationManager;Ljava/lang/String;Landroid/app/Notification;)V
.registers 4
const/4 v0, 0x2
invoke-virtual {p0, p1, v0, p2}, Landroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Notification;)V
return-void
.end method
+16
View File
@@ -0,0 +1,16 @@
.class public Lfixture/Outer$Worker;
.super Ljava/lang/Object;
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lfixture/Outer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Worker"
.end annotation
.method public static notifyNested(Landroid/app/NotificationManager;Landroid/app/Notification;I)V
.registers 3
invoke-virtual {p0, p2, p1}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
return-void
.end method
+2
View File
@@ -0,0 +1,2 @@
.class public Lfixture/Outer;
.super Ljava/lang/Object;
+7
View File
@@ -0,0 +1,7 @@
.class public Lfixture/Target;
.super Ljava/lang/Object;
.method public static mark()V
.registers 0
return-void
.end method