feat: deliver first successful FridaBox MVP

Integrate Frida Gadget into BlackBox guest startup, add the host workflow and controller tooling, and validate the complete sample hook flow on ARM64 Android 16.
This commit is contained in:
Mahdi Karzari
2026-07-20 04:25:08 +03:30
parent 89b59836c6
commit 5140bfc6a7
56 changed files with 8573 additions and 104 deletions
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name=".SampleApplication"
android:allowBackup="false"
android:label="FridaBox Sample Guest"
android:theme="@android:style/Theme.Material.Light">
<activity android:name=".MainActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
@@ -0,0 +1,28 @@
package com.qm4rs.fridabox.sample;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public final class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView output = new TextView(this);
output.setTextSize(22f);
output.setText("Press the button to call Target.add(2, 3)");
Button button = new Button(this);
button.setText("Call Target.add(2, 3)");
button.setOnClickListener(view -> output.setText("Result: " + Target.add(2, 3)));
LinearLayout root = new LinearLayout(this);
root.setOrientation(LinearLayout.VERTICAL);
root.setGravity(Gravity.CENTER);
root.setPadding(32, 32, 32, 32);
root.addView(output);
root.addView(button);
setContentView(root);
}
}
@@ -0,0 +1,21 @@
package com.qm4rs.fridabox.sample;
import android.app.Application;
import android.content.Context;
import android.util.Log;
public final class SampleApplication extends Application {
private static final String TAG = "FridaBox.Sample";
@Override
protected void attachBaseContext(Context base) {
Log.i(TAG, "Application.attachBaseContext package=" + base.getPackageName());
super.attachBaseContext(base);
}
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "Application.onCreate package=" + getPackageName());
}
}
@@ -0,0 +1,10 @@
package com.qm4rs.fridabox.sample;
public final class Target {
private Target() {
}
public static int add(int a, int b) {
return a + b;
}
}