11 |
12 | class RuntimeHook : public BaseHook {
13 | public:
14 | static void init(JNIEnv *env);
15 | };
16 |
17 |
18 | #endif //BLACKBOX_RUNTIMEHOOK_H
19 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/LoadedApkHuaWei.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.LoadedApk")
8 | public interface LoadedApkHuaWei {
9 | @BField
10 | Object mReceiverResource();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/PeriodicSync.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.content.PeriodicSync")
8 | public interface PeriodicSync {
9 | @BField
10 | long flexTime();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Message.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.os.Message")
8 | public interface Message {
9 | @BStaticMethod
10 | void updateCheckRecycle(int int0);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/LoadedApkKitkat.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.LoadedApk")
8 | public interface LoadedApkKitkat {
9 | @BField
10 | Object mDisplayAdjustments();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationChannel.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.NotificationChannel")
8 | public interface NotificationChannel {
9 | @BField
10 | String mId();
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/top/niunaijun/blackboxa/bean/AppInfo.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.bean
2 |
3 | import android.graphics.drawable.Drawable
4 |
5 | /**
6 | *
7 | * @Description:
8 | * @Author: wukaicheng
9 | * @CreateDate: 2021/4/29 21:57
10 | */
11 | data class AppInfo(val name:String,val icon:Drawable,val packageName:String,val sourceDir:String,val isXpModule:Boolean)
--------------------------------------------------------------------------------
/app/src/main/java/top/niunaijun/blackboxa/bean/GmsBean.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.bean
2 |
3 | /**
4 | *
5 | * @Description:
6 | * @Author: BlackBox
7 | * @CreateDate: 2022/3/2 21:30
8 | */
9 | data class GmsBean(val userID:Int,val userName:String,var isInstalledGms:Boolean)
10 |
11 |
12 | data class GmsInstallBean(val userID: Int,val success:Boolean,val msg:String)
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/BundleICS.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.Parcel;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.os.Bundle")
9 | public interface BundleICS {
10 | @BField
11 | Parcel mParcelledData();
12 | }
13 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/UnixFileSystemHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/9/21.
3 | //
4 |
5 | #ifndef VIRTUALM_UNIXFILESYSTEMHOOK_H
6 | #define VIRTUALM_UNIXFILESYSTEMHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 |
11 | class UnixFileSystemHook : public BaseHook {
12 | public:
13 | static void init(JNIEnv *env);
14 | };
15 |
16 |
17 | #endif //VIRTUALM_UNIXFILESYSTEMHOOK_H
18 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/BaseBundle.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.Parcel;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.os.BaseBundle")
9 | public interface BaseBundle {
10 | @BField
11 | Parcel mParcelledData();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Handler.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.Handler.Callback;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.os.Handler")
9 | public interface Handler {
10 | @BField
11 | Callback mCallback();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/CompatibilityInfoHolder.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.view.CompatibilityInfoHolder")
8 | public interface CompatibilityInfoHolder {
9 | @BMethod
10 | void set();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/DisplayAdjustments.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.view.DisplayAdjustments")
8 | public interface DisplayAdjustments {
9 | @BMethod
10 | void setCompatibilityInfo();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/accounts/IAccountManagerResponse.aidl:
--------------------------------------------------------------------------------
1 | package android.accounts;
2 |
3 | import android.os.Bundle;
4 |
5 | /**
6 | * The interface used to return responses for asynchronous calls to the {@link IAccountManager}
7 | */
8 | interface IAccountManagerResponse {
9 | void onResult(in Bundle value);
10 | void onError(int errorCode, String errorMessage);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/AppOpsManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.app.AppOpsManager")
9 | public interface AppOpsManager {
10 | @BField
11 | IInterface mService();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/DropBoxManager.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.os.DropBoxManager")
9 | public interface DropBoxManager {
10 | @BField
11 | IInterface mService();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/widget/Toast.java:
--------------------------------------------------------------------------------
1 | package black.android.widget;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 |
8 | @BClassName("android.widget.Toast")
9 | public interface Toast {
10 | @BStaticField
11 | IInterface sService();
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_switch.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/java/de/robv/android/xposed/callbacks/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Contains the base classes for callbacks.
3 | *
4 | * For historical reasons, {@link de.robv.android.xposed.XC_MethodHook} and
5 | * {@link de.robv.android.xposed.XC_MethodReplacement} are directly in the
6 | * {@code de.robv.android.xposed} package.
7 | */
8 | package de.robv.android.xposed.callbacks;
9 |
10 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/ddm/DdmHandleAppName.java:
--------------------------------------------------------------------------------
1 | package black.android.ddm;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.ddm.DdmHandleAppName")
8 | public interface DdmHandleAppName {
9 | @BStaticMethod
10 | void setAppName(String String0, int i);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/net/wifi/WifiScanner.java:
--------------------------------------------------------------------------------
1 | package black.android.net.wifi;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticField;
6 |
7 | @BClassName("android.net.wifi.WifiScanner")
8 | public interface WifiScanner {
9 | @BStaticField
10 | String GET_AVAILABLE_CHANNELS_EXTRA();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/MemoryFile.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import java.io.FileDescriptor;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BMethod;
7 |
8 | @BClassName("android.os.MemoryFile")
9 | public interface MemoryFile {
10 | @BMethod
11 | FileDescriptor getFileDescriptor();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceM.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.rms.resource.ReceiverResource")
8 | public interface ReceiverResourceM {
9 | @BField
10 | String[] mWhiteList();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/Display.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 |
8 | @BClassName("android.view.Display")
9 | public interface Display {
10 | @BStaticField
11 | IInterface sWindowManager();
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/top/niunaijun/blackboxa/bean/InstalledAppBean.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.bean
2 |
3 | import android.graphics.drawable.Drawable
4 |
5 | /**
6 | *
7 | * @Description:
8 | * @Author: wukaicheng
9 | * @CreateDate: 2022/3/6 19:26
10 | */
11 | data class InstalledAppBean(val name:String, val icon: Drawable, val packageName:String, val sourceDir:String, val isInstall:Boolean)
12 |
--------------------------------------------------------------------------------
/app/src/main/java/top/niunaijun/blackboxa/util/ResUtil.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.util
2 |
3 | import androidx.annotation.StringRes
4 | import top.niunaijun.blackboxa.app.App
5 |
6 |
7 | fun getString(@StringRes id:Int,vararg arg:String):String{
8 | if(arg.isEmpty()){
9 | return App.getContext().getString(id)
10 | }
11 | return App.getContext().getString(id,*arg)
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/Bcore/pine-core/src/main/java/top/canyie/pine/Ruler.java:
--------------------------------------------------------------------------------
1 | package top.canyie.pine;
2 |
3 | /**
4 | * @author canyie
5 | * Internal ruler used for calculating ArtMethod size and members offset.
6 | */
7 | @SuppressWarnings("unused")
8 | final class Ruler {
9 | private static native void m1();
10 | private static native void m2();
11 |
12 | private interface I {
13 | void m();
14 | }
15 | }
--------------------------------------------------------------------------------
/Bcore/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/IntentSender.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.content.IntentSender")
9 | public interface IntentSender {
10 | @BField
11 | IInterface mTarget();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/pm/PackageUserState.java:
--------------------------------------------------------------------------------
1 | package black.android.content.pm;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 |
7 | @BClassName("android.content.pm.PackageUserState")
8 | public interface PackageUserState {
9 | @BConstructor
10 | PackageUserState _new();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/net/wifi/WifiSsid.java:
--------------------------------------------------------------------------------
1 | package black.android.net.wifi;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.net.wifi.WifiSsid")
8 | public interface WifiSsid {
9 | @BStaticMethod
10 | Object createFromAsciiEncoded(String asciiEncoded);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceLP.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.rms.resource.ReceiverResource")
8 | public interface ReceiverResourceLP {
9 | @BField
10 | Object mResourceConfig();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationO.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.Notification")
8 | public interface NotificationO {
9 | @BField
10 | String mChannelId();
11 |
12 | @BField
13 | String mGroupKey();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Parcel.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticField;
6 |
7 | @BClassName("android.os.Parcel")
8 | public interface Parcel {
9 | @BStaticField
10 | int VAL_PARCELABLE();
11 |
12 | @BStaticField
13 | int VAL_PARCELABLEARRAY();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ContentProviderClientQ.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 |
7 | @BClassName("android.content.ContentProviderClient")
8 | public interface ContentProviderClientQ {
9 | @BConstructor
10 | ContentProviderClientQ _new();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/RenderScript.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import java.io.File;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.renderscript.RenderScript")
9 | public interface RenderScript {
10 | @BStaticMethod
11 | void setupDiskCache(File File0);
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/java/top/niunaijun/blackbox/fake/FakeCore.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake;
2 |
3 | import top.niunaijun.jnihook.ReflectCore;
4 |
5 | /**
6 | * Created by Milk on 2021/5/7.
7 | * * ∧_∧
8 | * (`・ω・∥
9 | * 丶 つ0
10 | * しーJ
11 | * 此处无Bug
12 | */
13 | public class FakeCore {
14 | public static void init() {
15 | ReflectCore.set(android.app.ActivityThread.class);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/HwSysResImplP.java:
--------------------------------------------------------------------------------
1 | package black.android.rms;
2 |
3 | import java.util.Map;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.rms.HwSysResImpl")
9 | public interface HwSysResImplP {
10 | @BField
11 | Map> mWhiteListMap();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/HardwareRenderer.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import java.io.File;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.view.HardwareRenderer")
9 | public interface HardwareRenderer {
10 | @BStaticMethod
11 | void setupDiskCache(File File0);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/ThreadedRenderer.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import java.io.File;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.view.ThreadedRenderer")
9 | public interface ThreadedRenderer {
10 | @BStaticMethod
11 | void setupDiskCache(File File0);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceN.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 | import java.util.List;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.rms.resource.ReceiverResource")
9 | public interface ReceiverResourceN {
10 | @BField
11 | List mWhiteList();
12 | }
13 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/VMClassLoaderHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 2021/5/5.
3 | //
4 |
5 | #ifndef BLACKBOX_VMCLASSLOADERHOOK_H
6 | #define BLACKBOX_VMCLASSLOADERHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 | #include
11 |
12 | class VMClassLoaderHook : public BaseHook {
13 | public:
14 | static void hideXposed();
15 | static void init(JNIEnv *env);
16 | };
17 |
18 |
19 | #endif //BLACKBOX_VMCLASSLOADERHOOK_H
20 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/health/SystemHealthManager.java:
--------------------------------------------------------------------------------
1 | package black.android.os.health;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.os.health.SystemHealthManager")
9 | public interface SystemHealthManager {
10 | @BField
11 | IInterface mBatteryStats();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/SurfaceControl.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import android.graphics.Bitmap;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.view.SurfaceControl")
9 | public interface SurfaceControl {
10 | @BStaticMethod
11 | Bitmap screnshot(int int0, int int1);
12 | }
13 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageMonitor.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.pm;
2 |
3 | /**
4 | * Created by Milk on 5/2/21.
5 | * * ∧_∧
6 | * (`・ω・∥
7 | * 丶 つ0
8 | * しーJ
9 | * 此处无Bug
10 | */
11 | public interface PackageMonitor {
12 | void onPackageUninstalled(String packageName, boolean isRemove, int userId);
13 |
14 | void onPackageInstalled(String packageName, int userId);
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/PendingIntentO.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BConstructor;
7 |
8 | @BClassName("android.app.PendingIntent")
9 | public interface PendingIntentO {
10 | @BConstructor
11 | PendingIntentO _new(IBinder IBinder0, Object Object1);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ContentProviderClient.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.content.ContentProviderClient")
9 | public interface ContentProviderClient {
10 | @BField
11 | IInterface mContentProvider();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/com/android/internal/telephony/PhoneConstantsMtk.java:
--------------------------------------------------------------------------------
1 | package black.com.android.internal.telephony;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticField;
6 |
7 | @BClassName("com.android.internal.telephony.PhoneConstants")
8 | public interface PhoneConstantsMtk {
9 | @BStaticField
10 | int GEMINI_SIM_NUM();
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-anydpi/ic_add.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F3F3F
4 | #3F3F3F
5 | #3F3F3F
6 | #ffffff
7 | #212121
8 | #757575
9 | #FFFFFFFF
10 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/pm/IPackageDataObserver.aidl:
--------------------------------------------------------------------------------
1 | package android.content.pm;
2 |
3 | /**
4 | * API for package data change related callbacks from the Package Manager.
5 | * Some usage scenarios include deletion of cache directory, generate
6 | * statistics related to code, data, cache usage(TODO)
7 | */
8 | interface IPackageDataObserver {
9 | void onRemoveCompleted(in String packageName, boolean succeeded);
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/servertransaction/ActivityLifecycleItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.app.servertransaction.ActivityLifecycleItem")
8 | public interface ActivityLifecycleItem {
9 | @BMethod
10 | Integer getTargetState();
11 | }
12 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/BContentProvider.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake.service.context.providers;
2 |
3 | import android.os.IInterface;
4 |
5 | /**
6 | * Created by Milk on 4/8/21.
7 | * * ∧_∧
8 | * (`・ω・∥
9 | * 丶 つ0
10 | * しーJ
11 | * 此处无Bug
12 | */
13 | public interface BContentProvider {
14 | IInterface wrapper(final IInterface contentProviderProxy, final String appPkg);
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/AlarmManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.app.AlarmManager")
9 | public interface AlarmManager {
10 | @BField
11 | IInterface mService();
12 |
13 | @BField
14 | int mTargetSdkVersion();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ClientTransactionHandler.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BMethod;
7 |
8 | @BClassName("android.app.ClientTransactionHandler")
9 | public interface ClientTransactionHandler {
10 | @BMethod
11 | Object getActivityClient(IBinder IBinder0);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ContextImplICS.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import java.io.File;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.app.ContextImpl")
9 | public interface ContextImplICS {
10 | @BField
11 | File mExternalCacheDir();
12 |
13 | @BField
14 | File mExternalFilesDir();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationM.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.graphics.drawable.Icon;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.app.Notification")
9 | public interface NotificationM {
10 | @BField
11 | Icon mLargeIcon();
12 |
13 | @BField
14 | Icon mSmallIcon();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/SharedPreferencesImpl.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import java.io.File;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BConstructor;
7 |
8 | @BClassName("android.app.SharedPreferencesImpl")
9 | public interface SharedPreferencesImpl {
10 | @BConstructor
11 | SharedPreferencesImpl _new(File File0, int int1);
12 | }
13 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/location/LocationRecord.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.location;
2 |
3 | /**
4 | * Created by BlackBox on 2022/3/19.
5 | */
6 | public class LocationRecord {
7 | public String packageName;
8 | public int userId;
9 |
10 | public LocationRecord(String packageName, int userId) {
11 | this.packageName = packageName;
12 | this.userId = userId;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/pm/IPackageInstallerCallback.aidl:
--------------------------------------------------------------------------------
1 | package android.content.pm;
2 |
3 | interface IPackageInstallerCallback {
4 | void onSessionCreated(int sessionId);
5 | void onSessionBadgingChanged(int sessionId);
6 | void onSessionActiveChanged(int sessionId, boolean active);
7 | void onSessionProgressChanged(int sessionId, float progress);
8 | void onSessionFinished(int sessionId, boolean success);
9 | }
10 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/servertransaction/TopResumedActivityChangeItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.servertransaction.TopResumedActivityChangeItem")
8 | public interface TopResumedActivityChangeItem {
9 | @BField
10 | Boolean mOnTop();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/SyncInfo.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.accounts.Account;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BConstructor;
7 |
8 | @BClassName("android.content.SyncInfo")
9 | public interface SyncInfo {
10 | @BConstructor
11 | SyncInfo _new(int int0, Account Account1, String String2, long long3);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/storage/StorageVolume.java:
--------------------------------------------------------------------------------
1 | package black.android.os.storage;
2 |
3 | import java.io.File;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.os.storage.StorageVolume")
9 | public interface StorageVolume {
10 | @BField
11 | File mInternalPath();
12 |
13 | @BField
14 | File mPath();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceO.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 | import java.util.Map;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.rms.resource.ReceiverResource")
9 | public interface ReceiverResourceO {
10 | @BField
11 | Map> mWhiteListMap();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/telephony/SmsManager.java:
--------------------------------------------------------------------------------
1 | package black.android.telephony;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.telephony.SmsManager")
8 | public interface SmsManager {
9 | @BMethod
10 | Boolean getAutoPersisting();
11 |
12 | @BMethod
13 | void setAutoPersisting(boolean boolean0);
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/java/lang/ThreadGroup.java:
--------------------------------------------------------------------------------
1 | package black.java.lang;
2 |
3 | import java.util.List;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("java.lang.ThreadGroup")
9 | public interface ThreadGroup {
10 | @BField
11 | List groups();
12 |
13 | @BField
14 | java.lang.ThreadGroup parent();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/servertransaction/ActivityResultItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
2 |
3 | import java.util.List;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.app.servertransaction.ActivityResultItem")
9 | public interface ActivityResultItem {
10 | @BField
11 | List mResultInfoList();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/IntentFilter.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import java.util.List;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.content.IntentFilter")
9 | public interface IntentFilter {
10 | @BField
11 | List mActions();
12 |
13 | @BField
14 | List mCategories();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/renderscript/RenderScriptCacheDir.java:
--------------------------------------------------------------------------------
1 | package black.android.renderscript;
2 |
3 | import java.io.File;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.renderscript.RenderScriptCacheDir")
9 | public interface RenderScriptCacheDir {
10 | @BStaticMethod
11 | void setupDiskCache(File File0);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/util/Singleton.java:
--------------------------------------------------------------------------------
1 | package black.android.util;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 | import top.niunaijun.blackreflection.annotation.BMethod;
7 |
8 | @BClassName("android.util.Singleton")
9 | public interface Singleton {
10 | @BField
11 | Object mInstance();
12 |
13 | @BMethod
14 | Object get();
15 | }
16 |
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/java/android/os/SELinux.java:
--------------------------------------------------------------------------------
1 | package android.os;
2 |
3 | public class SELinux {
4 | public static final String getContext() {
5 | throw new UnsupportedOperationException("STUB");
6 | }
7 |
8 | public static final boolean isSELinuxEnabled() {
9 | throw new UnsupportedOperationException("STUB");
10 | }
11 |
12 | public static final boolean isSELinuxEnforced() {
13 | throw new UnsupportedOperationException("STUB");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/location/ILocationListener.aidl:
--------------------------------------------------------------------------------
1 | // ILocationListener.aidl
2 | package android.location;
3 |
4 | import android.location.Location;
5 | import android.os.Bundle;
6 |
7 | interface ILocationListener
8 | {
9 | void onLocationChanged(in Location location);
10 | void onStatusChanged(String provider, int status, in Bundle extras);
11 | void onProviderEnabled(String provider);
12 | void onProviderDisabled(String provider);
13 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ActivityThreadQ.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 |
5 | import java.util.List;
6 |
7 | import top.niunaijun.blackreflection.annotation.BClassName;
8 | import top.niunaijun.blackreflection.annotation.BMethod;
9 |
10 | @BClassName("android.app.ActivityThread")
11 | public interface ActivityThreadQ {
12 | @BMethod
13 | void handleNewIntent(IBinder IBinder0, List List1);
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/location/GpsStatus.java:
--------------------------------------------------------------------------------
1 | package black.android.location;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.location.GpsStatus")
8 | public interface GpsStatus {
9 | @BMethod
10 | void setStatus(int int0, int[] ints1, float[] floats2, float[] floats3, float[] floats4, int int5, int int6, int int7);
11 | }
12 |
--------------------------------------------------------------------------------
/Bcore/pine-core/src/main/cpp/jni_bridge.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by canyie on 2020/3/18.
3 | //
4 |
5 | #ifndef PINE_PINE_H
6 | #define PINE_PINE_H
7 |
8 | #include
9 |
10 | extern "C" {
11 | JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved);
12 | bool register_Pine(JNIEnv* env, jclass Pine);
13 | bool register_Ruler(JNIEnv* env, jclass Ruler);
14 |
15 | void Ruler_m1(JNIEnv* env, jclass); // used for search ArtMethod members
16 | }
17 |
18 | #endif //PINE_PINE_H
19 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/graphics/Compatibility.java:
--------------------------------------------------------------------------------
1 | package black.android.graphics;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
5 |
6 | /**
7 | * Created by BlackBox on 2022/2/24.
8 | */
9 | @BClassName("android.graphics.Compatibility")
10 | public interface Compatibility {
11 | @BStaticMethod
12 | void setTargetSdkVersion(int targetSdkVersion);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Bundle.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.IBinder;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BMethod;
7 |
8 | @BClassName("android.os.Bundle")
9 | public interface Bundle {
10 | @BMethod
11 | IBinder getIBinder(String String0);
12 |
13 | @BMethod
14 | void putIBinder(String String0, IBinder IBinder1);
15 | }
16 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Utils/PointerCheck.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 2021/5/17.
3 | //
4 |
5 | #include
6 | #include
7 | #include
8 | #include "PointerCheck.h"
9 |
10 | bool PointerCheck::check(void *addr) {
11 | int nullfd = open("/dev/random", O_WRONLY);
12 | bool valid = true;
13 | if (write(nullfd, (void *) addr, sizeof(addr)) < 0) {
14 | valid = false;
15 | }
16 | close(nullfd);
17 | return valid;
18 | }
19 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/location/GpsStatusL.java:
--------------------------------------------------------------------------------
1 | package black.android.location;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.location.GpsStatus")
8 | public interface GpsStatusL {
9 | @BMethod
10 | void setStatus(int int0, int[] ints1, float[] floats2, float[] floats3, float[] floats4, int[] ints5, int[] ints6, int[] ints7);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/storage/StorageManager.java:
--------------------------------------------------------------------------------
1 | package black.android.os.storage;
2 |
3 | import android.os.storage.StorageVolume;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.os.storage.StorageManager")
9 | public interface StorageManager {
10 | @BStaticMethod
11 | StorageVolume[] getVolumeList(int int0, int int1);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/telephony/NeighboringCellInfo.java:
--------------------------------------------------------------------------------
1 | package black.android.telephony;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.telephony.NeighboringCellInfo")
8 | public interface NeighboringCellInfo {
9 | @BField
10 | int mCid();
11 |
12 | @BField
13 | int mLac();
14 |
15 | @BField
16 | int mRssi();
17 | }
18 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/webkit/IWebViewUpdateService.java:
--------------------------------------------------------------------------------
1 | package black.android.webkit;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.webkit.IWebViewUpdateService")
8 | public interface IWebViewUpdateService {
9 | @BMethod
10 | String getCurrentWebViewPackageName();
11 |
12 | @BMethod
13 | Object waitForAndGetProvider();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/com/android/internal/policy/PhoneWindow.java:
--------------------------------------------------------------------------------
1 | package black.com.android.internal.policy;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 |
8 | @BClassName("com.android.internal.policy.PhoneWindow$WindowManagerHolder")
9 | public interface PhoneWindow {
10 | @BStaticField
11 | IInterface sWindowManager();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/com/android/internal/view/inputmethod/InputMethodManager.java:
--------------------------------------------------------------------------------
1 | package black.com.android.internal.view.inputmethod;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.view.inputmethod.InputMethodManager")
9 | public interface InputMethodManager {
10 | @BField
11 | IInterface mService();
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/java/lang/ThreadGroupN.java:
--------------------------------------------------------------------------------
1 | package black.java.lang;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("java.lang.ThreadGroup")
8 | public interface ThreadGroupN {
9 | @BField
10 | java.lang.ThreadGroup[] groups();
11 |
12 | @BField
13 | Integer ngroups();
14 |
15 | @BField
16 | java.lang.ThreadGroup parent();
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/app_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/layout/activity_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/database/IContentObserver.aidl:
--------------------------------------------------------------------------------
1 | package android.database;
2 |
3 | import android.net.Uri;
4 |
5 | interface IContentObserver
6 | {
7 | /**
8 | * This method is called when an update occurs to the cursor that is being
9 | * observed. selfUpdate is true if the update was caused by a call to
10 | * commit on the cursor that is being observed.
11 | */
12 | void onChange(boolean selfUpdate, in Uri uri, int userId);
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/splash.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
13 |
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/com/android/internal/content/ReferrerIntent.java:
--------------------------------------------------------------------------------
1 | package black.com.android.internal.content;
2 |
3 | import android.content.Intent;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BConstructor;
7 |
8 | @BClassName("com.android.internal.content.ReferrerIntent")
9 | public interface ReferrerIntent {
10 | @BConstructor
11 | Intent _new(Intent Intent0, String String1);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ActivityThreadNMR1.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 |
5 | import java.util.List;
6 |
7 | import top.niunaijun.blackreflection.annotation.BClassName;
8 | import top.niunaijun.blackreflection.annotation.BMethod;
9 |
10 | @BClassName("android.app.ActivityThread")
11 | public interface ActivityThreadNMR1 {
12 | @BMethod
13 | void performNewIntents(IBinder IBinder0, List List1, boolean boolean2);
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ApplicationThreadNative.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.ApplicationThreadNative")
10 | public interface ApplicationThreadNative {
11 | @BStaticMethod
12 | IInterface asInterface(IBinder IBinder0);
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/top/niunaijun/blackboxa/bean/XpModuleInfo.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.bean
2 |
3 | import android.graphics.drawable.Drawable
4 |
5 | /**
6 | *
7 | * @Description:
8 | * @Author: wukaicheng
9 | * @CreateDate: 2021/5/2 21:03
10 | */
11 | data class XpModuleInfo(
12 | val name: String,
13 | val desc: String,
14 | val packageName: String,
15 | val version: String,
16 | var enable:Boolean,
17 | val icon: Drawable
18 | )
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_viewpager.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/IActivityManagerN.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.content.Intent;
4 | import android.os.IBinder;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BMethod;
8 |
9 | @BClassName("android.app.IActivityManager")
10 | public interface IActivityManagerN {
11 | @BMethod
12 | Boolean finishActivity(IBinder IBinder0, int int1, Intent Intent2, int int3);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationChannelGroup.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import java.util.List;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.app.NotificationChannelGroup")
9 | public interface NotificationChannelGroup {
10 | @BField
11 | List mChannels();
12 |
13 | @BField
14 | String mId();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/AttributionSourceState.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | /**
7 | * Created by BlackBox on 2022/2/20.
8 | */
9 | @BClassName("android.content.AttributionSourceState")
10 | public interface AttributionSourceState {
11 | @BField
12 | String packageName();
13 |
14 | @BField
15 | int uid();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ContentProviderNative.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.content.ContentProviderNative")
10 | public interface ContentProviderNative {
11 | @BStaticMethod
12 | IInterface asInterface(IBinder IBinder0);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/pm/PackageParserNougat.java:
--------------------------------------------------------------------------------
1 | package black.android.content.pm;
2 |
3 |
4 | import android.content.pm.PackageParser;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.content.pm.PackageParser")
10 | public interface PackageParserNougat {
11 | @BStaticMethod
12 | void collectCertificates(PackageParser.Package p, int flags);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/pm/PackageParserPie.java:
--------------------------------------------------------------------------------
1 | package black.android.content.pm;
2 |
3 |
4 | import android.content.pm.PackageParser;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.content.pm.PackageParser")
10 | public interface PackageParserPie {
11 | @BStaticMethod
12 | void collectCertificates(PackageParser.Package p, boolean skipVerify);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/IActivityManagerL.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.content.Intent;
4 | import android.os.IBinder;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BMethod;
8 |
9 | @BClassName("android.app.IActivityManager")
10 | public interface IActivityManagerL {
11 | @BMethod
12 | Boolean finishActivity(IBinder IBinder0, int int1, Intent Intent2, boolean boolean3);
13 | }
14 |
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/java/android/app/ContentProviderHolder.java:
--------------------------------------------------------------------------------
1 | package android.app;
2 |
3 | import android.content.IContentProvider;
4 | import android.content.pm.ProviderInfo;
5 | import android.os.IBinder;
6 |
7 | /**
8 | * Created by Milk on 2021/5/7.
9 | * * ∧_∧
10 | * (`・ω・∥
11 | * 丶 つ0
12 | * しーJ
13 | * 此处无Bug
14 | */
15 | public class ContentProviderHolder {
16 | public final ProviderInfo info = null;
17 | public IContentProvider provider;
18 | public IBinder connection;
19 | }
20 |
--------------------------------------------------------------------------------
/Bcore/pine-core/src/main/cpp/trampoline/arch/arch.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by canyie on 2020/4/2.
3 | //
4 |
5 | #ifndef PINE_ARCH_H
6 | #define PINE_ARCH_H
7 |
8 | #if defined(__aarch64__) || defined(__arm__)
9 | inline void sev() {
10 | __asm__ __volatile__ ("sev" :::"memory");
11 | }
12 |
13 | inline void dmb() {
14 | __asm__ __volatile__ ("dmb sy" :::"memory");
15 | }
16 |
17 | inline void dsb() {
18 | __asm__ __volatile__ ("dsb sy" :::"memory");
19 | }
20 | #endif
21 |
22 | #endif //PINE_ARCH_H
23 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/SyncAdapterType.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 |
7 | @BClassName("android.content.SyncAdapterType")
8 | public interface SyncAdapterType {
9 | @BConstructor
10 | SyncAdapterType _new(String String0, String String1, boolean boolean2, boolean boolean3, boolean boolean4, boolean boolean5, String String6);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/WindowManagerGlobal.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 |
8 | @BClassName("android.view.WindowManagerGlobal")
9 | public interface WindowManagerGlobal {
10 | @BStaticField
11 | int ADD_PERMISSION_DENIED();
12 |
13 | @BStaticField
14 | IInterface sWindowManagerService();
15 | }
16 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Log.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #define TAG "NativeCore"
4 |
5 | #if 1
6 | #define log_print_error(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__)
7 | #define log_print_debug(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
8 | #else
9 | #define log_print_error(...)
10 | #endif
11 |
12 | #define ALOGE(...) log_print_error(__VA_ARGS__)
13 | #define ALOGD(...) log_print_debug(__VA_ARGS__)
14 |
15 | #ifndef SPEED_LOG_H
16 | #define SPEED_LOG_H 1
17 |
18 | #endif
19 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/IServiceConnectionO.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.content.ComponentName;
4 | import android.os.IBinder;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BMethod;
8 |
9 | @BClassName("android.app.IServiceConnection")
10 | public interface IServiceConnectionO {
11 | @BMethod
12 | void connected(ComponentName ComponentName0, IBinder IBinder1, boolean boolean2);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/security/net/config/NetworkSecurityConfigProvider.java:
--------------------------------------------------------------------------------
1 | package black.android.security.net.config;
2 |
3 | import android.content.Context;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.security.net.config.NetworkSecurityConfigProvider")
9 | public interface NetworkSecurityConfigProvider {
10 | @BStaticMethod
11 | void install(Context Context0);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/pm/UserInfo.java:
--------------------------------------------------------------------------------
1 | package black.android.content.pm;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 |
8 | @BClassName("android.content.pm.UserInfo")
9 | public interface UserInfo {
10 | @BConstructor
11 | Object _new(int id, String name, int flags);
12 |
13 | @BStaticField
14 | int FLAG_PRIMARY();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/webkit/WebViewFactory.java:
--------------------------------------------------------------------------------
1 | package black.android.webkit;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticField;
6 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
7 |
8 | @BClassName("android.webkit.WebViewFactory")
9 | public interface WebViewFactory {
10 | @BStaticField
11 | Boolean sWebViewSupported();
12 |
13 | @BStaticMethod
14 | Object getUpdateService();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/test/java/top/niunaijun/android_mirror/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.android_mirror;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/Bcore/pine-core/src/main/cpp/ruler.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // Created by canyie on 2020/3/18.
3 | //
4 |
5 | #include "jni_bridge.h"
6 | #include "utils/macros.h"
7 | #include "utils/log.h"
8 |
9 | void Ruler_m1(JNIEnv*, jclass) {
10 | LOGI("Don't call me...");
11 | }
12 |
13 | static const JNINativeMethod gMethods[] = {
14 | {"m1", "()V", reinterpret_cast(Ruler_m1)}
15 | };
16 |
17 | bool register_Ruler(JNIEnv* env, jclass Ruler) {
18 | return LIKELY(env->RegisterNatives(Ruler, gMethods, NELEM(gMethods)) == JNI_OK);
19 | }
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/system/os/IBStorageManagerService.aidl:
--------------------------------------------------------------------------------
1 | // IBStorageManagerService.aidl
2 | package top.niunaijun.blackbox.core.system.os;
3 |
4 | import android.os.storage.StorageVolume;
5 | import java.lang.String;
6 | import android.net.Uri;
7 |
8 | // Declare any non-default types here with import statements
9 |
10 | interface IBStorageManagerService {
11 | StorageVolume[] getVolumeList(int uid, String packageName, int flags, int userId);
12 | Uri getUriForFile(String file);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/SyncAdapterTypeN.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 |
7 | @BClassName("android.content.SyncAdapterType")
8 | public interface SyncAdapterTypeN {
9 | @BConstructor
10 | SyncAdapterTypeN _new(String String0, String String1, boolean boolean2, boolean boolean3, boolean boolean4, boolean boolean5, String String6, String String7);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ActivityTaskManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticField;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.app.ActivityTaskManager")
8 | public interface ActivityTaskManager {
9 |
10 | @BStaticMethod
11 | Object getService();
12 |
13 | @BStaticField
14 | Object IActivityTaskManagerSingleton();
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/media/AudioManager.java:
--------------------------------------------------------------------------------
1 | package black.android.media;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.media.AudioManager")
10 | public interface AudioManager {
11 | @BStaticField
12 | IInterface sService();
13 |
14 | @BStaticMethod
15 | void getService();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/net/wifi/WifiManager.java:
--------------------------------------------------------------------------------
1 | package black.android.net.wifi;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 | import top.niunaijun.blackreflection.annotation.BStaticField;
8 |
9 | @BClassName("android.net.wifi.WifiManager")
10 | public interface WifiManager {
11 | @BStaticField
12 | IInterface sService();
13 |
14 | @BField
15 | IInterface mService();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/Notification.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.app.PendingIntent;
4 | import android.content.Context;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BMethod;
8 |
9 | @BClassName("android.app.Notification")
10 | public interface Notification {
11 | @BMethod
12 | void setLatestEventInfo(Context Context0, CharSequence CharSequence1, CharSequence CharSequence2, PendingIntent PendingIntent3);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/pm/ApplicationInfoP.java:
--------------------------------------------------------------------------------
1 | package black.android.content.pm;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 | import top.niunaijun.blackreflection.annotation.BMethod;
7 |
8 | @BClassName("android.content.pm.ApplicationInfo")
9 | public interface ApplicationInfoP {
10 | @BField
11 | String[] splitClassLoaderNames();
12 |
13 | @BMethod
14 | void setHiddenApiEnforcementPolicy(int int0);
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/top/niunaijun/blackboxa/bean/FakeLocationBean.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.bean
2 |
3 | import android.graphics.drawable.Drawable
4 | import top.niunaijun.blackbox.entity.location.BLocation
5 |
6 | data class FakeLocationBean(
7 | val userID: Int,
8 | val name: String,
9 | val icon: Drawable,
10 | val packageName: String,
11 | var fakeLocationPattern: Int,
12 | var fakeLocation: BLocation?
13 | )
14 |
15 | data class FakeLocationBeanInstallBean(val userID: Int, val success: Boolean, val msg: String)
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/system/pm/IBXposedManagerService.aidl:
--------------------------------------------------------------------------------
1 | // IBXposedManagerService.aidl
2 |
3 | package top.niunaijun.blackbox.core.system.pm;
4 |
5 | import java.util.List;
6 | import top.niunaijun.blackbox.entity.pm.InstalledModule;
7 |
8 | interface IBXposedManagerService {
9 | boolean isXPEnable();
10 | void setXPEnable(boolean enable);
11 | boolean isModuleEnable(String packageName);
12 | void setModuleEnable(String packageName, boolean enable);
13 | List getInstalledModules();
14 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/job/JobInfo.java:
--------------------------------------------------------------------------------
1 | package black.android.app.job;
2 |
3 | import android.content.ComponentName;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 |
8 | @BClassName("android.app.job.JobInfo")
9 | public interface JobInfo {
10 | @BField
11 | long flexMillis();
12 |
13 | @BField
14 | long intervalMillis();
15 |
16 | @BField
17 | int jobId();
18 |
19 | @BField
20 | ComponentName service();
21 | }
22 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/job/JobParameters.java:
--------------------------------------------------------------------------------
1 | package black.android.app.job;
2 |
3 | import android.os.IBinder;
4 | import android.os.PersistableBundle;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BField;
8 |
9 | @BClassName("android.app.job.JobParameters")
10 | public interface JobParameters {
11 | @BField
12 | IBinder callback();
13 |
14 | @BField
15 | PersistableBundle extras();
16 |
17 | @BField
18 | int jobId();
19 | }
20 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ContentResolver.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 | import top.niunaijun.blackreflection.annotation.BStaticField;
8 |
9 | @BClassName("android.content.ContentResolver")
10 | public interface ContentResolver {
11 | @BStaticField
12 | IInterface sContentService();
13 |
14 | @BField
15 | String mPackageName();
16 | }
17 |
--------------------------------------------------------------------------------
/Bcore/pine-core/src/main/cpp/pine_config.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by canyie on 2020/8/21.
3 | //
4 |
5 | #ifndef PINE_PINE_CONFIG_H
6 | #define PINE_PINE_CONFIG_H
7 |
8 | #include "utils/macros.h"
9 |
10 | namespace pine {
11 | class PineConfig final {
12 | public:
13 | static bool debug;
14 | static bool debuggable;
15 | static bool anti_checks;
16 | static bool jit_compilation_allowed;
17 | private:
18 | DISALLOW_IMPLICIT_CONSTRUCTORS(PineConfig);
19 | };
20 | }
21 |
22 | #endif //PINE_PINE_CONFIG_H
23 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethod.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake.hook;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * Created by Milk on 2021/5/9.
10 | * * ∧_∧
11 | * (`・ω・∥
12 | * 丶 つ0
13 | * しーJ
14 | * 此处无Bug
15 | */
16 | @Target(ElementType.TYPE)
17 | @Retention(RetentionPolicy.RUNTIME)
18 | public @interface ProxyMethod {
19 | String value();
20 | }
21 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ClipboardManagerOreo.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BField;
7 | import top.niunaijun.blackreflection.annotation.BStaticField;
8 |
9 | @BClassName("android.content.ClipboardManager")
10 | public interface ClipboardManagerOreo {
11 | @BStaticField
12 | IInterface sService();
13 |
14 | @BField
15 | IInterface mService();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/IIntentReceiver.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.content.Intent;
4 | import android.os.Bundle;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BMethod;
8 |
9 | @BClassName("android.content.IIntentReceiver")
10 | public interface IIntentReceiver {
11 | @BMethod
12 | void performReceive(Intent intent, int resultCode, String data, Bundle extras, boolean ordered, boolean sticky, int sendingUser);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/nfc/INfcAdapter.java:
--------------------------------------------------------------------------------
1 | package black.android.nfc;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.nfc.INfcAdapter")
10 | public interface INfcAdapter {
11 | @BClassName("android.nfc.INfcAdapter$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/IPowerManager.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.os.IPowerManager")
10 | public interface IPowerManager {
11 | @BClassName("android.os.IPowerManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/IUserManager.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.os.IUserManager")
10 | public interface IUserManager {
11 | @BClassName("android.os.IUserManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ScanClass.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake.hook;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * Created by Milk on 2021/5/9.
10 | * * ∧_∧
11 | * (`・ω・∥
12 | * 丶 つ0
13 | * しーJ
14 | * 此处无Bug
15 | */
16 | @Target(ElementType.TYPE)
17 | @Retention(RetentionPolicy.RUNTIME)
18 | public @interface ScanClass {
19 | Class>[] value() default {};
20 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ActivityManagerNative.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.ActivityManagerNative")
10 | public interface ActivityManagerNative {
11 | @BStaticField
12 | Object gDefault();
13 |
14 | @BStaticMethod
15 | IInterface getDefault();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/IAlarmManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.IAlarmManager")
10 | public interface IAlarmManager {
11 | @BClassName("android.app.IAlarmManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.NotificationManager")
10 | public interface NotificationManager {
11 | @BStaticField
12 | IInterface sService();
13 |
14 | @BStaticMethod
15 | IInterface getService();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/servertransaction/LaunchActivityItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
2 |
3 | import android.content.Intent;
4 | import android.content.pm.ActivityInfo;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BField;
8 |
9 | @BClassName("android.app.servertransaction.LaunchActivityItem")
10 | public interface LaunchActivityItem {
11 | @BField
12 | ActivityInfo mInfo();
13 |
14 | @BField
15 | Intent mIntent();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ClipboardManager.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.content.ClipboardManager")
10 | public interface ClipboardManager {
11 | @BStaticField
12 | IInterface sService();
13 |
14 | @BStaticMethod
15 | IInterface getService();
16 | }
17 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/Executor.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.pm.installer;
2 |
3 | import top.niunaijun.blackbox.core.system.pm.BPackageSettings;
4 | import top.niunaijun.blackbox.entity.pm.InstallOption;
5 |
6 | /**
7 | * Created by Milk on 4/24/21.
8 | * * ∧_∧
9 | * (`・ω・∥
10 | * 丶 つ0
11 | * しーJ
12 | * 此处无Bug
13 | */
14 | public interface Executor {
15 | public static final String TAG = "InstallExecutor";
16 |
17 | int exec(BPackageSettings ps, InstallOption option, int userId);
18 | }
19 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ActivityManagerOreo.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IInterface;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.ActivityManager")
10 | public interface ActivityManagerOreo {
11 | @BStaticField
12 | Object IActivityManagerSingleton();
13 |
14 | @BStaticMethod
15 | IInterface getService();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ISearchManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.ISearchManager")
10 | public interface ISearchManager {
11 | @BClassName("android.app.ISearchManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/AttributionSource.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | /**
8 | * Created by BlackBox on 2022/2/20.
9 | */
10 | @BClassName("android.content.AttributionSource")
11 | public interface AttributionSource {
12 | @BField
13 | Object mAttributionSourceState();
14 |
15 | @BMethod
16 | Object getNext();
17 | }
18 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/service/notification/StatusBarNotification.java:
--------------------------------------------------------------------------------
1 | package black.android.service.notification;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.service.notification.StatusBarNotification")
8 | public interface StatusBarNotification {
9 | @BField
10 | Integer id();
11 |
12 | @BField
13 | String opPkg();
14 |
15 | @BField
16 | String pkg();
17 |
18 | @BField
19 | String tag();
20 | }
21 |
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/system/user/IBUserManagerService.aidl:
--------------------------------------------------------------------------------
1 | // IBUserManagerService.aidl
2 | package top.niunaijun.blackbox.core.system.user;
3 |
4 | // Declare any non-default types here with import statements
5 | import top.niunaijun.blackbox.core.system.user.BUserInfo;
6 | import java.util.List;
7 |
8 |
9 | interface IBUserManagerService {
10 | BUserInfo getUserInfo(int userId);
11 | boolean exists(int userId);
12 | BUserInfo createUser(int userId);
13 | List getUsers();
14 | void deleteUser(int userId);
15 | }
16 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethods.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake.hook;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * Created by Milk on 2021/5/9.
10 | * * ∧_∧
11 | * (`・ω・∥
12 | * 丶 つ0
13 | * しーJ
14 | * 此处无Bug
15 | */
16 | @Target(ElementType.TYPE)
17 | @Retention(RetentionPolicy.RUNTIME)
18 | public @interface ProxyMethods {
19 | String[] value() default {};
20 | }
21 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/media/IAudioService.java:
--------------------------------------------------------------------------------
1 | package black.android.media;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.media.IAudioService")
10 | public interface IAudioService {
11 | @BClassName("android.media.IAudioService$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/IGraphicsStats.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.view.IGraphicsStats")
10 | public interface IGraphicsStats {
11 | @BClassName("android.view.IGraphicsStats$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/IWindowManager.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.view.IWindowManager")
10 | public interface IWindowManager {
11 | @BClassName("android.view.IWindowManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed-res/src/main/java/android/content/res/CompatibilityInfo.java:
--------------------------------------------------------------------------------
1 | package android.content.res;
2 |
3 | import android.os.Parcel;
4 | import android.os.Parcelable;
5 |
6 | public class CompatibilityInfo implements Parcelable {
7 | @Override
8 | public int describeContents() {
9 | throw new UnsupportedOperationException("Stub!");
10 | }
11 |
12 | @Override
13 | public void writeToParcel(Parcel dest, int flags) {
14 | throw new UnsupportedOperationException("Stub!");
15 | }
16 |
17 | public static final Creator CREATOR = null;
18 | }
19 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/IWallpaperManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.IWallpaperManager")
10 | public interface IWallpaperManager {
11 | @BClassName("android.app.IWallpaperManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/job/IJobScheduler.java:
--------------------------------------------------------------------------------
1 | package black.android.app.job;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.job.IJobScheduler")
10 | public interface IJobScheduler {
11 | @BClassName("android.app.job.IJobScheduler$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/role/IRoleManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app.role;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.role.IRoleManager")
10 | public interface IRoleManager {
11 | @BClassName("android.app.role.IRoleManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/net/wifi/IWifiManager.java:
--------------------------------------------------------------------------------
1 | package black.android.net.wifi;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.net.wifi.IWifiManager")
10 | public interface IWifiManager {
11 | @BClassName("android.net.wifi.IWifiManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/widget/RemoteViews.java:
--------------------------------------------------------------------------------
1 | package black.android.widget;
2 |
3 | import android.content.pm.ApplicationInfo;
4 |
5 | import java.util.ArrayList;
6 |
7 | import top.niunaijun.blackreflection.annotation.BClassName;
8 | import top.niunaijun.blackreflection.annotation.BField;
9 |
10 | @BClassName("android.widget.RemoteViews")
11 | public interface RemoteViews {
12 | @BField
13 | ArrayList