readMapXml(InputStream in) throws XmlPullParserException, IOException {
18 | throw new IllegalStateException("Hidden API Stub called: com.android.internal.util.XmlUtils#readMapXml(InputStream)");
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/java/de/robv/android/xposed/IXposedMod.java:
--------------------------------------------------------------------------------
1 | package de.robv.android.xposed;
2 |
3 | /** Marker interface for Xposed modules. Cannot be implemented directly. */
4 | /* package */ public interface IXposedMod {}
5 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/java/de/robv/android/xposed/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Contains the main classes of the Xposed framework.
3 | */
4 | package de.robv.android.xposed;
5 |
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/IEmpty.aidl:
--------------------------------------------------------------------------------
1 | // IBActivityThread.aidl
2 | package top.niunaijun.blackbox.core;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | interface IEmpty {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/system/am/IBJobManagerService.aidl:
--------------------------------------------------------------------------------
1 | // IBJobManagerService.aidl
2 | package top.niunaijun.blackbox.core.system.am;
3 |
4 | import android.content.Intent;
5 | import android.content.ComponentName;
6 | import android.os.IBinder;
7 | import java.lang.String;
8 | import android.app.job.JobInfo;
9 | import top.niunaijun.blackbox.entity.JobRecord;
10 |
11 | // Declare any non-default types here with import statements
12 |
13 | interface IBJobManagerService {
14 | JobInfo schedule(in JobInfo info, int userId);
15 | JobRecord queryJobRecord(String processName, int jobId, int userId);
16 | void cancelAll(String processName, int userId);
17 | int cancel(String processName, int jobId, int userId);
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/system/pm/BPackageSettings.aidl:
--------------------------------------------------------------------------------
1 | // BPackageSettings.aidl
2 | package top.niunaijun.blackbox.core.system.pm;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | parcelable BPackageSettings;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/system/pm/IBPackageInstallerService.aidl:
--------------------------------------------------------------------------------
1 | // IBPackageInstallerService.aidl
2 | package top.niunaijun.blackbox.core.system.pm;
3 |
4 | import top.niunaijun.blackbox.core.system.pm.BPackageSettings;
5 | import top.niunaijun.blackbox.entity.pm.InstallOption;
6 |
7 | // Declare any non-default types here with import statements
8 |
9 | interface IBPackageInstallerService {
10 | int installPackageAsUser(in BPackageSettings ps, int userId);
11 | int uninstallPackageAsUser(in BPackageSettings ps, boolean removeApp, int userId);
12 | int clearPackage(in BPackageSettings ps, int userId);
13 | int updatePackage(in BPackageSettings ps);
14 | }
15 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/core/system/user/BUserInfo.aidl:
--------------------------------------------------------------------------------
1 | // BUserInfo.aidl
2 | package top.niunaijun.blackbox.core.system.user;
3 |
4 | // Declare any non-default types here with import statements
5 | parcelable BUserInfo;
6 |
--------------------------------------------------------------------------------
/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/aidl/top/niunaijun/blackbox/entity/AppConfig.aidl:
--------------------------------------------------------------------------------
1 | // AppConfig.aidl
2 | package top.niunaijun.blackbox.entity;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | parcelable AppConfig;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/JobRecord.aidl:
--------------------------------------------------------------------------------
1 | // JobRecord.aidl
2 | package top.niunaijun.blackbox.entity;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | parcelable JobRecord;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/UnbindRecord.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity;
2 |
3 | parcelable UnbindRecord;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/am/PendingResultData.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.am;
2 |
3 | parcelable PendingResultData;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/am/ReceiverData.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.am;
2 |
3 | parcelable ReceiverData;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/am/RunningAppProcessInfo.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.am;
2 |
3 | parcelable RunningAppProcessInfo;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/am/RunningServiceInfo.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.am;
2 |
3 | parcelable RunningServiceInfo;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/location/BCell.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.location;
2 |
3 | parcelable BCell;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/location/BLocation.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.location;
2 |
3 | // Declare any non-default types here with import statements
4 |
5 | parcelable BLocation;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/location/BLocationConfig.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.location;
2 |
3 | parcelable BLocationConfig;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/pm/InstallOption.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.pm;
2 |
3 | parcelable InstallOption;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/pm/InstallResult.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.pm;
2 |
3 | parcelable InstallResult;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/pm/InstalledModule.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.pm;
2 |
3 | parcelable InstalledModule;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/top/niunaijun/blackbox/entity/pm/InstalledPackage.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.entity.pm;
2 |
3 | parcelable InstalledPackage;
--------------------------------------------------------------------------------
/Bcore/src/main/assets/empty.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refgd/BlackBox/20e199257ac34fedf4935f259a827945837e5c31/Bcore/src/main/assets/empty.jar
--------------------------------------------------------------------------------
/Bcore/src/main/assets/junit.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refgd/BlackBox/20e199257ac34fedf4935f259a827945837e5c31/Bcore/src/main/assets/junit.jar
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/BoxCore.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/9/21.
3 | //
4 |
5 | #ifndef VIRTUALM_VMCORE_H
6 | #define VIRTUALM_VMCORE_H
7 |
8 | #include
9 |
10 | #define VMCORE_CLASS "top/niunaijun/blackbox/core/NativeCore"
11 |
12 | class BoxCore {
13 | public:
14 | static JavaVM *getJavaVM();
15 | static int getApiLevel();
16 | static int getCallingUid(JNIEnv *env, int orig);
17 | static jstring redirectPathString(JNIEnv *env, jstring path);
18 | static jobject redirectPathFile(JNIEnv *env, jobject path);
19 | static jlongArray loadEmptyDex(JNIEnv *env);
20 | };
21 |
22 |
23 | #endif //VIRTUALM_VMCORE_H
24 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/BaseHook.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/10/21.
3 | //
4 |
5 | #include "BaseHook.h"
6 |
7 |
8 | void BaseHook::init(JNIEnv *env) {
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/BaseHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/9/21.
3 | //
4 |
5 | #ifndef VIRTUALM_BASEHOOK_H
6 | #define VIRTUALM_BASEHOOK_H
7 |
8 | #include
9 | #include
10 |
11 | class BaseHook {
12 | public:
13 | static void init(JNIEnv *env);
14 | };
15 |
16 |
17 | #endif //VIRTUALM_BASEHOOK_H
18 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/BinderHook.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/25/21.
3 | //
4 |
5 | #include "BinderHook.h"
6 | #include
7 | #include
8 | #include "UnixFileSystemHook.h"
9 | #import "JniHook/JniHook.h"
10 |
11 |
12 |
13 | HOOK_JNI(jint, getCallingUid, JNIEnv *env, jobject obj) {
14 | int orig = orig_getCallingUid(env, obj);
15 | return BoxCore::getCallingUid(env, orig);
16 | }
17 |
18 |
19 | void BinderHook::init(JNIEnv *env) {
20 | const char *clazz = "android/os/Binder";
21 | JniHook::HookJniFun(env, clazz, "getCallingUid", "()I", (void *) new_getCallingUid,
22 | (void **) (&orig_getCallingUid), true);
23 | }
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/BinderHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/25/21.
3 | //
4 |
5 | #ifndef BLACKBOX_BINDERHOOK_H
6 | #define BLACKBOX_BINDERHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 |
11 | class BinderHook : public BaseHook{
12 | public:
13 | static void init(JNIEnv *env);
14 | };
15 |
16 | #endif //BLACKBOX_BINDERHOOK_H
17 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/RuntimeHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 5/5/21.
3 | //
4 |
5 | #ifndef BLACKBOX_RUNTIMEHOOK_H
6 | #define BLACKBOX_RUNTIMEHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 | #include
11 |
12 | class RuntimeHook : public BaseHook {
13 | public:
14 | static void init(JNIEnv *env);
15 | };
16 |
17 |
18 | #endif //BLACKBOX_RUNTIMEHOOK_H
19 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/IO.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/10/21.
3 | //
4 |
5 | #ifndef VIRTUALM_IO_H
6 | #define VIRTUALM_IO_H
7 |
8 | #include
9 |
10 | #include
11 | #include
12 | #include "BoxCore.h"
13 |
14 | using namespace std;
15 |
16 | class IO {
17 | public:
18 | static void init(JNIEnv *env);
19 |
20 | struct RelocateInfo {
21 | const char *targetPath;
22 | const char *relocatePath;
23 | };
24 |
25 | static void addRule(const char *targetPath, const char *relocatePath);
26 |
27 | static jstring redirectPath(JNIEnv *env, jstring path);
28 |
29 | static jobject redirectPath(JNIEnv *env, jobject path);
30 |
31 | static const char *redirectPath(const char *__path);
32 | };
33 |
34 |
35 | #endif //VIRTUALM_IO_H
36 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/JniHook/JniHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 3/8/21.
3 | //
4 |
5 | #ifndef VIRTUAL_APP_JNIHOOK_H
6 | #define VIRTUAL_APP_JNIHOOK_H
7 |
8 | #include "ArtMethod.h"
9 |
10 | #define HOOK_JNI(ret, func, ...) \
11 | ret (*orig_##func)(__VA_ARGS__); \
12 | ret new_##func(__VA_ARGS__)
13 |
14 | class JniHook {
15 | public:
16 | static void InitJniHook(JNIEnv *env, int api_level);
17 | static void HookJniFun(JNIEnv *env, const char *class_name, const char *method_name, const char *sign, void * new_fun, void ** orig_fun,
18 | bool is_static);
19 | static void HookJniFun(JNIEnv *env, jobject java_method, void *new_fun, void **orig_fun, bool is_static);
20 | };
21 |
22 | #endif //VIRTUAL_APP_JNIHOOK_H
23 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Utils/HexDump.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 2020/8/18.
3 | //
4 |
5 | #ifndef SPEED_HEXDUMP_H
6 | #define SPEED_HEXDUMP_H
7 |
8 |
9 | class HexDump {
10 |
11 | };
12 | void HexDump(char *buf, int len, int addr);
13 |
14 | #endif //SPEED_HEXDUMP_H
15 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Utils/PointerCheck.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 2021/5/17.
3 | //
4 |
5 | #ifndef BLACKBOX_POINTERCHECK_H
6 | #define BLACKBOX_POINTERCHECK_H
7 |
8 |
9 | class PointerCheck {
10 | public:
11 | static bool check(void *addr);
12 | };
13 |
14 |
15 | #endif //BLACKBOX_POINTERCHECK_H
16 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Utils/fake_dlfcn.h:
--------------------------------------------------------------------------------
1 | #ifndef DLFCN_H
2 | #define DLFCN_H
3 |
4 | void *fake_dlopen(const char *libpath, int flags);
5 |
6 | void *fake_dlsym(void *handle, const char *name);
7 |
8 | int fake_dlclose(void *handle);
9 |
10 | #endif
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ISystemService.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system;
2 |
3 | /**
4 | * Created by Milk on 4/22/21.
5 | * * ∧_∧
6 | * (`・ω・∥
7 | * 丶 つ0
8 | * しーJ
9 | * 此处无Bug
10 | */
11 | public interface ISystemService {
12 | void systemReady();
13 | }
14 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/PendingIntentRecord.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.am;
2 |
3 | import java.util.Objects;
4 |
5 | /**
6 | * Created by BlackBox on 2022/3/8.
7 | */
8 | public class PendingIntentRecord {
9 | public int uid;
10 | public String packageName;
11 |
12 | @Override
13 | public boolean equals(Object o) {
14 | if (this == o) return true;
15 | if (!(o instanceof PendingIntentRecord)) return false;
16 | PendingIntentRecord that = (PendingIntentRecord) o;
17 | return uid == that.uid &&
18 | Objects.equals(packageName, that.packageName);
19 | }
20 |
21 | @Override
22 | public int hashCode() {
23 | return Objects.hash(uid, packageName);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/UserSpace.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.am;
2 |
3 | import android.os.IBinder;
4 |
5 | import java.util.HashMap;
6 | import java.util.Map;
7 |
8 | /**
9 | * Created by Milk on 4/25/21.
10 | * * ∧_∧
11 | * (`・ω・∥
12 | * 丶 つ0
13 | * しーJ
14 | * 此处无Bug
15 | */
16 | public class UserSpace {
17 | public final ActiveServices mActiveServices = new ActiveServices();
18 | public final ActivityStack mStack = new ActivityStack();
19 | public final Map mIntentSenderRecords = new HashMap<>();
20 | }
21 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/notification/NotificationRecord.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.notification;
2 |
3 | import android.app.NotificationChannel;
4 | import android.app.NotificationChannelGroup;
5 |
6 | import java.util.HashMap;
7 | import java.util.HashSet;
8 | import java.util.Map;
9 | import java.util.Set;
10 |
11 | /**
12 | * Created by BlackBox on 2022/3/18.
13 | */
14 | public class NotificationRecord {
15 | public final Map mNotificationChannels = new HashMap<>();
16 | public final Map mNotificationChannelGroups = new HashMap<>();
17 | public final Set mIds = new HashSet<>();
18 | }
19 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveAppExecutor.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.pm.installer;
2 |
3 | import top.niunaijun.blackbox.core.env.BEnvironment;
4 | import top.niunaijun.blackbox.core.system.pm.BPackageSettings;
5 | import top.niunaijun.blackbox.entity.pm.InstallOption;
6 | import top.niunaijun.blackbox.utils.FileUtils;
7 |
8 | /**
9 | * Created by Milk on 4/27/21.
10 | * * ∧_∧
11 | * (`・ω・∥
12 | * 丶 つ0
13 | * しーJ
14 | * 此处无Bug
15 | */
16 | public class RemoveAppExecutor implements Executor {
17 | @Override
18 | public int exec(BPackageSettings ps, InstallOption option, int userId) {
19 | FileUtils.deleteDir(BEnvironment.getAppDir(ps.pkg.packageName));
20 | return 0;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserStatus.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.core.system.user;
2 |
3 | /**
4 | * Created by Milk on 4/22/21.
5 | * * ∧_∧
6 | * (`・ω・∥
7 | * 丶 つ0
8 | * しーJ
9 | * 此处无Bug
10 | */
11 | public enum BUserStatus {
12 | ENABLE, DISABLE
13 | }
14 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/IInjectHook.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake.hook;
2 |
3 | /**
4 | * Created by Milk on 3/30/21.
5 | * * ∧_∧
6 | * (`・ω・∥
7 | * 丶 つ0
8 | * しーJ
9 | * 此处无Bug
10 | */
11 | public interface IInjectHook {
12 | void injectHook();
13 |
14 | boolean isBadEnv();
15 | }
16 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/base/PkgMethodProxy.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake.service.base;
2 |
3 | import java.lang.reflect.Method;
4 |
5 | import top.niunaijun.blackbox.fake.hook.MethodHook;
6 | import top.niunaijun.blackbox.utils.MethodParameterUtils;
7 |
8 | public class PkgMethodProxy extends MethodHook {
9 |
10 | String mName;
11 |
12 | public PkgMethodProxy(String name) {
13 | mName = name;
14 | }
15 |
16 | @Override
17 | protected String getMethodName() {
18 | return mName;
19 | }
20 |
21 | @Override
22 | protected Object hook(Object who, Method method, Object[] args) throws Throwable {
23 | MethodParameterUtils.replaceFirstAppPkg(args);
24 | return method.invoke(who, args);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/base/ValueMethodProxy.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.fake.service.base;
2 |
3 | import java.lang.reflect.Method;
4 |
5 | import top.niunaijun.blackbox.fake.hook.MethodHook;
6 |
7 | public class ValueMethodProxy extends MethodHook {
8 |
9 | Object mValue;
10 | String mName;
11 |
12 | public ValueMethodProxy(String name, Object value) {
13 | mValue = value;
14 | mName = name;
15 | }
16 |
17 | @Override
18 | protected String getMethodName() {
19 | return mName;
20 | }
21 |
22 | @Override
23 | protected Object hook(Object who, Method method, Object[] args) throws Throwable {
24 | return mValue;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyVpnService.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.proxy;
2 |
3 | import android.net.VpnService;
4 |
5 | /**
6 | * Created by BlackBox on 2022/2/25.
7 | */
8 | public class ProxyVpnService extends VpnService {
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/utils/CloseUtils.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.utils;
2 |
3 | import java.io.Closeable;
4 | import java.io.IOException;
5 |
6 | /**
7 | * Created by sunwanquan on 2019/6/18.
8 | * * ∧_∧
9 | * (`・ω・∥
10 | * 丶 つ0
11 | * しーJ
12 | * 此处无Bug
13 | */
14 | public class CloseUtils {
15 | public static void close(Closeable... closeables) {
16 | if (closeables == null) {
17 | return;
18 | }
19 | for (Closeable closeable : closeables) {
20 | if (closeable != null) {
21 | try {
22 | closeable.close();
23 | } catch (IOException ignored) {
24 | }
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ApplicationThreadCompat.java:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackbox.utils.compat;
2 |
3 | import android.os.IBinder;
4 | import android.os.IInterface;
5 |
6 | import black.android.app.BRApplicationThreadNative;
7 | import black.android.app.BRIApplicationThreadOreoStub;
8 |
9 | public class ApplicationThreadCompat {
10 |
11 | public static IInterface asInterface(IBinder binder) {
12 | if (BuildCompat.isOreo()) {
13 | return BRIApplicationThreadOreoStub.get().asInterface(binder);
14 | }
15 | return BRApplicationThreadNative.get().asInterface(binder);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/drawable/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refgd/BlackBox/20e199257ac34fedf4935f259a827945837e5c31/Bcore/src/main/res/drawable/ic_launcher.png
--------------------------------------------------------------------------------
/Bcore/src/main/res/layout/activity_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | :black
4 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/xml/filepath.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android-mirror/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android-mirror/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/refgd/BlackBox/20e199257ac34fedf4935f259a827945837e5c31/android-mirror/consumer-rules.pro
--------------------------------------------------------------------------------
/android-mirror/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/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/aidl/android/app/IActivityManager/ContentProviderHolder.aidl:
--------------------------------------------------------------------------------
1 | // ContentProviderHolder.aidl
2 | package android.app.IActivityManager;
3 |
4 | parcelable ContentProviderHolder;
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/app/job/IJobService.aidl:
--------------------------------------------------------------------------------
1 | package android.app.job;
2 |
3 | import android.app.job.JobParameters;
4 |
5 | /**
6 | * Interface that the framework uses to communicate with application code that implements a
7 | * JobService. End user code does not implement this interface directly; instead, the app's
8 | * service implementation will extend android.app.job.JobService.
9 | */
10 | interface IJobService {
11 | /** Begin execution of application's job. */
12 | void startJob(in JobParameters jobParams);
13 | /** Stop execution of application's job. */
14 | void stopJob(in JobParameters jobParams);
15 | }
16 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/app/job/JobWorkItem.aidl:
--------------------------------------------------------------------------------
1 | // JobWorkItem.aidl
2 | package android.app.job;
3 |
4 | parcelable JobWorkItem;
5 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/ISyncStatusObserver.aidl:
--------------------------------------------------------------------------------
1 | package android.content;
2 |
3 |
4 | interface ISyncStatusObserver {
5 | void onStatusChanged(int which);
6 | }
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/SyncStatusInfo.aidl:
--------------------------------------------------------------------------------
1 | package android.content;
2 |
3 | parcelable SyncStatusInfo;
--------------------------------------------------------------------------------
/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/aidl/android/content/pm/IPackageInstallObserver.aidl:
--------------------------------------------------------------------------------
1 | package android.content.pm;
2 |
3 | /**
4 | * API for installation callbacks from the Package Manager.
5 | */
6 | interface IPackageInstallObserver {
7 | void packageInstalled(in String packageName, int returnCode);
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/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/aidl/android/content/pm/IPackageInstallerSession.aidl:
--------------------------------------------------------------------------------
1 | package android.content.pm;
2 |
3 | import android.content.pm.IPackageInstallObserver2;
4 | import android.content.IntentSender;
5 | import android.os.ParcelFileDescriptor;
6 |
7 | interface IPackageInstallerSession {
8 | void setClientProgress(float progress);
9 | void addClientProgress(float progress);
10 |
11 | String[] getNames();
12 | ParcelFileDescriptor openWrite(String name, long offsetBytes, long lengthBytes);
13 | ParcelFileDescriptor openRead(String name);
14 |
15 | void removeSplit(String splitName);
16 |
17 | void close();
18 | void commit(in IntentSender statusReceiver);
19 | void abandon();
20 | }
21 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/aidl/android/net/IConnectivityManager.aidl:
--------------------------------------------------------------------------------
1 | package android.net;
2 |
3 | import android.net.NetworkInfo;
4 | import android.net.LinkProperties;
5 |
6 | interface IConnectivityManager {
7 | NetworkInfo getActiveNetworkInfo();
8 | NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked);
9 |
10 | NetworkInfo getNetworkInfo(int networkType);
11 | NetworkInfo[] getAllNetworkInfo();
12 | boolean isActiveNetworkMetered();
13 | boolean requestRouteToHostAddress(int networkType, int address);
14 | LinkProperties getActiveLinkProperties();
15 | LinkProperties getLinkProperties(int networkType);
16 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/net/wifi/IWifiScanner.aidl:
--------------------------------------------------------------------------------
1 | package android.net.wifi;
2 |
3 | import android.os.Messenger;
4 | import android.os.Bundle;
5 |
6 | interface IWifiScanner
7 | {
8 | Messenger getMessenger();
9 |
10 | Bundle getAvailableChannels(int band);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/os/ISystemUpdateManager.aidl:
--------------------------------------------------------------------------------
1 | package android.os;
2 |
3 | import android.os.Bundle;
4 | import android.os.PersistableBundle;
5 |
6 | interface ISystemUpdateManager {
7 | Bundle retrieveSystemUpdateInfo();
8 | void updateSystemUpdateInfo(in PersistableBundle data);
9 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/com/android/internal/widget/ILockSettings.aidl:
--------------------------------------------------------------------------------
1 | package com.android.internal.widget;
2 |
3 | interface ILockSettings {
4 | void setRecoverySecretTypes(in int[] secretTypes);
5 | int[] getRecoverySecretTypes();
6 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/accounts/IAccountManager.java:
--------------------------------------------------------------------------------
1 | package black.android.accounts;
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.accounts.IAccountManager")
10 | public interface IAccountManager {
11 | @BClassName("android.accounts.IAccountManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ActivityManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticField;
6 |
7 | @BClassName("android.app.ActivityManager")
8 | public interface ActivityManager {
9 | @BStaticField
10 | int START_INTENT_NOT_RESOLVED();
11 |
12 | @BStaticField
13 | int START_NOT_CURRENT_USER_ACTIVITY();
14 |
15 | @BStaticField
16 | int START_SUCCESS();
17 |
18 | @BStaticField
19 | int START_TASK_TO_FRONT();
20 | }
21 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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/ContextImplKitkat.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 ContextImplKitkat {
10 | @BField
11 | Object mDisplayAdjustments();
12 |
13 | @BField
14 | File[] mExternalCacheDirs();
15 |
16 | @BField
17 | File[] mExternalFilesDirs();
18 |
19 | @BField
20 | String mOpPackageName();
21 | }
22 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/IActivityTaskManager.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.IActivityTaskManager")
10 | public interface IActivityTaskManager {
11 | @BClassName("android.app.IActivityTaskManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
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/IApplicationThreadOreo.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.BMethod;
8 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
9 |
10 | @BClassName("android.app.IApplicationThread")
11 | public interface IApplicationThreadOreo {
12 | @BMethod
13 | void scheduleServiceArgs();
14 |
15 | @BClassName("android.app.IApplicationThread$Stub")
16 | interface Stub {
17 | @BStaticMethod
18 | IInterface asInterface(IBinder IBinder0);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/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/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/app/IUsageStatsManager.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.usage.IUsageStatsManager")
10 | public interface IUsageStatsManager {
11 | @BClassName("android.app.usage.IUsageStatsManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/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/Instrumentation.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.app.Instrumentation.ActivityResult;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 | import android.os.IBinder;
8 |
9 | import top.niunaijun.blackreflection.annotation.BClassName;
10 | import top.niunaijun.blackreflection.annotation.BMethod;
11 |
12 | @BClassName("android.app.Instrumentation")
13 | public interface Instrumentation {
14 | @BMethod
15 | ActivityResult execStartActivity(Context Context0, IBinder IBinder1, IBinder IBinder2, Activity Activity3, Intent Intent4, int int5, Bundle Bundle6);
16 | }
17 |
--------------------------------------------------------------------------------
/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/app/LoadedApkICS.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 LoadedApkICS {
9 | @BField
10 | Object mCompatibilityInfo();
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/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/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 |
--------------------------------------------------------------------------------
/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/app/NotificationL.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.app.Notification;
4 | import android.content.Context;
5 |
6 | import top.niunaijun.blackreflection.annotation.BClassName;
7 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
8 |
9 | @BClassName("android.app.Notification")
10 | public interface NotificationL {
11 | @BClassName("android.app.Notification$Builder")
12 | interface Builder {
13 | @BStaticMethod
14 | Notification rebuild(Context Context0, Notification Notification1);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/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/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/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/app/PendingIntentJBMR2.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.BConstructor;
8 | import top.niunaijun.blackreflection.annotation.BMethod;
9 |
10 | @BClassName("android.app.PendingIntent")
11 | public interface PendingIntentJBMR2 {
12 | @BConstructor
13 | PendingIntentJBMR2 _new(IBinder IBinder0);
14 |
15 | @BMethod
16 | Intent getIntent();
17 | }
18 |
--------------------------------------------------------------------------------
/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/app/Service.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 |
4 | import android.app.ActivityThread;
5 | import android.app.Application;
6 | import android.content.Context;
7 | import android.os.IBinder;
8 |
9 | import top.niunaijun.blackreflection.annotation.BClassName;
10 | import top.niunaijun.blackreflection.annotation.BMethod;
11 | import top.niunaijun.blackreflection.annotation.BParamClass;
12 |
13 | @BClassName("android.app.Service")
14 | public interface Service {
15 | @BMethod
16 | void attach(Context context,
17 | @BParamClass(ActivityThread.class) Object thread, String className, IBinder token,
18 | Application application, Object activityManager);
19 | }
20 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ServiceStartArgs.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.content.Intent;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BConstructor;
7 | import top.niunaijun.blackreflection.annotation.BField;
8 |
9 | @BClassName("android.app.ServiceStartArgs")
10 | public interface ServiceStartArgs {
11 | @BConstructor
12 | ServiceStartArgs _new(boolean boolean0, int int1, int int2, Intent Intent3);
13 |
14 | @BField
15 | Intent args();
16 |
17 | @BField
18 | int flags();
19 |
20 | @BField
21 | int startId();
22 |
23 | @BField
24 | boolean taskRemoved();
25 | }
26 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/WallpaperManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 |
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 | import top.niunaijun.blackreflection.annotation.BStaticField;
7 |
8 | @BClassName("android.app.WallpaperManager")
9 | public interface WallpaperManager {
10 | @BStaticField
11 | Object sGlobals();
12 |
13 | @BClassName("android.app.WallpaperManager$Globals")
14 | interface Globals {
15 | @BField
16 | Object mService();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/admin/IDevicePolicyManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app.admin;
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.admin.IDevicePolicyManager")
10 | public interface IDevicePolicyManager {
11 | @BClassName("android.app.admin.IDevicePolicyManager$Stub")
12 | interface Stub {
13 | @BStaticMethod
14 | IInterface asInterface(IBinder IBinder0);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/backup/IBackupManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app.backup;
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.backup.IBackupManager")
10 | public interface IBackupManager {
11 | @BClassName("android.app.backup.IBackupManager$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/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/app/job/JobWorkItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.job;
2 |
3 | import android.content.Intent;
4 |
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BConstructor;
7 | import top.niunaijun.blackreflection.annotation.BField;
8 | import top.niunaijun.blackreflection.annotation.BMethod;
9 |
10 | @BClassName("android.app.job.JobWorkItem")
11 | public interface JobWorkItem {
12 | @BConstructor
13 | JobWorkItem _new(Intent Intent0);
14 |
15 | @BField
16 | int mDeliveryCount();
17 |
18 | @BField
19 | Object mGrants();
20 |
21 | @BField
22 | int mWorkId();
23 |
24 | @BMethod
25 | Intent getIntent();
26 | }
27 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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/app/servertransaction/ClientTransaction.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
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.BField;
9 |
10 | @BClassName("android.app.servertransaction.ClientTransaction")
11 | public interface ClientTransaction {
12 | @BField
13 | List