├── .gitattributes ├── .gitignore ├── Bcore ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro ├── src │ ├── androidTest │ │ └── java │ │ │ └── top │ │ │ └── niunaijun │ │ │ └── blackbox │ │ │ └── ExampleInstrumentedTest.java │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── aidl │ │ │ ├── android │ │ │ │ ├── accounts │ │ │ │ │ ├── IAccountAuthenticator.aidl │ │ │ │ │ ├── IAccountAuthenticatorResponse.aidl │ │ │ │ │ └── IAccountManagerResponse.aidl │ │ │ │ ├── app │ │ │ │ │ ├── IActivityManager │ │ │ │ │ │ └── ContentProviderHolder.aidl │ │ │ │ │ ├── IServiceConnection.aidl │ │ │ │ │ ├── IStopUserCallback.aidl │ │ │ │ │ ├── IWallpaperManagerCallback.aidl │ │ │ │ │ └── job │ │ │ │ │ │ ├── IJobCallback.aidl │ │ │ │ │ │ ├── IJobService.aidl │ │ │ │ │ │ └── JobWorkItem.aidl │ │ │ │ ├── content │ │ │ │ │ ├── IIntentReceiver.aidl │ │ │ │ │ ├── ISyncAdapter.aidl │ │ │ │ │ ├── ISyncContext.aidl │ │ │ │ │ ├── ISyncStatusObserver.aidl │ │ │ │ │ ├── SyncStatusInfo.aidl │ │ │ │ │ └── pm │ │ │ │ │ │ ├── IPackageDataObserver.aidl │ │ │ │ │ │ ├── IPackageDeleteObserver2.aidl │ │ │ │ │ │ ├── IPackageInstallObserver.aidl │ │ │ │ │ │ ├── IPackageInstallObserver2.aidl │ │ │ │ │ │ ├── IPackageInstallerCallback.aidl │ │ │ │ │ │ └── IPackageInstallerSession.aidl │ │ │ │ ├── database │ │ │ │ │ └── IContentObserver.aidl │ │ │ │ ├── location │ │ │ │ │ └── ILocationListener.aidl │ │ │ │ ├── net │ │ │ │ │ ├── IConnectivityManager.aidl │ │ │ │ │ └── wifi │ │ │ │ │ │ └── IWifiScanner.aidl │ │ │ │ └── os │ │ │ │ │ └── ISystemUpdateManager.aidl │ │ │ ├── com │ │ │ │ └── android │ │ │ │ │ └── internal │ │ │ │ │ └── widget │ │ │ │ │ └── ILockSettings.aidl │ │ │ └── top │ │ │ │ └── niunaijun │ │ │ │ └── blackbox │ │ │ │ ├── client │ │ │ │ └── IBClient.aidl │ │ │ │ ├── entity │ │ │ │ ├── ClientConfig.aidl │ │ │ │ ├── JobRecord.aidl │ │ │ │ ├── UnbindRecord.aidl │ │ │ │ └── pm │ │ │ │ │ ├── InstallOption.aidl │ │ │ │ │ ├── InstallResult.aidl │ │ │ │ │ ├── InstalledModule.aidl │ │ │ │ │ └── InstalledPackage.aidl │ │ │ │ └── server │ │ │ │ ├── am │ │ │ │ ├── IBActivityManagerService.aidl │ │ │ │ └── IBJobManagerService.aidl │ │ │ │ ├── os │ │ │ │ └── IBStorageManagerService.aidl │ │ │ │ ├── pm │ │ │ │ ├── BPackageSettings.aidl │ │ │ │ ├── IBPackageInstallerService.aidl │ │ │ │ ├── IBPackageManagerService.aidl │ │ │ │ └── IBXposedManagerService.aidl │ │ │ │ └── user │ │ │ │ ├── BUserInfo.aidl │ │ │ │ └── IBUserManagerService.aidl │ │ ├── assets │ │ │ └── junit.jar │ │ ├── java │ │ │ ├── android │ │ │ │ ├── content │ │ │ │ │ ├── SyncInfo.java │ │ │ │ │ ├── SyncStatusInfo.java │ │ │ │ │ └── pm │ │ │ │ │ │ └── PackageParser.java │ │ │ │ ├── location │ │ │ │ │ └── LocationRequest.java │ │ │ │ └── os │ │ │ │ │ └── ParcelableException.java │ │ │ ├── de │ │ │ │ └── robv │ │ │ │ │ └── android │ │ │ │ │ └── xposed │ │ │ │ │ └── XSharedPreferences.java │ │ │ ├── mirror │ │ │ │ ├── MethodParams.java │ │ │ │ ├── MethodReflectParams.java │ │ │ │ ├── RefBoolean.java │ │ │ │ ├── RefClass.java │ │ │ │ ├── RefConstructor.java │ │ │ │ ├── RefDouble.java │ │ │ │ ├── RefFloat.java │ │ │ │ ├── RefInt.java │ │ │ │ ├── RefLong.java │ │ │ │ ├── RefMethod.java │ │ │ │ ├── RefObject.java │ │ │ │ ├── RefStaticInt.java │ │ │ │ ├── RefStaticMethod.java │ │ │ │ ├── RefStaticObject.java │ │ │ │ ├── android │ │ │ │ │ ├── accounts │ │ │ │ │ │ └── IAccountManager.java │ │ │ │ │ ├── app │ │ │ │ │ │ ├── Activity.java │ │ │ │ │ │ ├── ActivityManager.java │ │ │ │ │ │ ├── ActivityManagerNative.java │ │ │ │ │ │ ├── ActivityManagerOreo.java │ │ │ │ │ │ ├── ActivityThread.java │ │ │ │ │ │ ├── ActivityThreadNMR1.java │ │ │ │ │ │ ├── ActivityThreadQ.java │ │ │ │ │ │ ├── AlarmManager.java │ │ │ │ │ │ ├── AppOpsManager.java │ │ │ │ │ │ ├── ApplicationThreadNative.java │ │ │ │ │ │ ├── ClientTransactionHandler.java │ │ │ │ │ │ ├── ContextImpl.java │ │ │ │ │ │ ├── ContextImplICS.java │ │ │ │ │ │ ├── ContextImplKitkat.java │ │ │ │ │ │ ├── IActivityManager.java │ │ │ │ │ │ ├── IActivityManagerICS.java │ │ │ │ │ │ ├── IActivityManagerL.java │ │ │ │ │ │ ├── IActivityManagerN.java │ │ │ │ │ │ ├── IActivityTaskManager.java │ │ │ │ │ │ ├── IAlarmManager.java │ │ │ │ │ │ ├── IApplicationThread.java │ │ │ │ │ │ ├── IApplicationThreadICSMR1.java │ │ │ │ │ │ ├── IApplicationThreadJBMR1.java │ │ │ │ │ │ ├── IApplicationThreadKitkat.java │ │ │ │ │ │ ├── IApplicationThreadOreo.java │ │ │ │ │ │ ├── ISearchManager.java │ │ │ │ │ │ ├── IServiceConnectionO.java │ │ │ │ │ │ ├── IUsageStatsManager.java │ │ │ │ │ │ ├── IWallpaperManager.java │ │ │ │ │ │ ├── Instrumentation.java │ │ │ │ │ │ ├── LoadedApk.java │ │ │ │ │ │ ├── LoadedApkHuaWei.java │ │ │ │ │ │ ├── LoadedApkICS.java │ │ │ │ │ │ ├── LoadedApkKitkat.java │ │ │ │ │ │ ├── Notification.java │ │ │ │ │ │ ├── NotificationChannel.java │ │ │ │ │ │ ├── NotificationChannelGroup.java │ │ │ │ │ │ ├── NotificationL.java │ │ │ │ │ │ ├── NotificationM.java │ │ │ │ │ │ ├── NotificationManager.java │ │ │ │ │ │ ├── NotificationO.java │ │ │ │ │ │ ├── PendingIntentJBMR2.java │ │ │ │ │ │ ├── PendingIntentO.java │ │ │ │ │ │ ├── Service.java │ │ │ │ │ │ ├── ServiceStartArgs.java │ │ │ │ │ │ ├── SharedPreferencesImpl.java │ │ │ │ │ │ ├── WallpaperManager.java │ │ │ │ │ │ ├── admin │ │ │ │ │ │ │ └── IDevicePolicyManager.java │ │ │ │ │ │ ├── backup │ │ │ │ │ │ │ └── IBackupManager.java │ │ │ │ │ │ ├── job │ │ │ │ │ │ │ ├── IJobScheduler.java │ │ │ │ │ │ │ ├── JobInfo.java │ │ │ │ │ │ │ ├── JobParameters.java │ │ │ │ │ │ │ └── JobWorkItem.java │ │ │ │ │ │ ├── role │ │ │ │ │ │ │ └── IRoleManager.java │ │ │ │ │ │ ├── servertransaction │ │ │ │ │ │ │ ├── ActivityLifecycleItem.java │ │ │ │ │ │ │ ├── ActivityResultItem.java │ │ │ │ │ │ │ ├── ClientTransaction.java │ │ │ │ │ │ │ ├── LaunchActivityItem.java │ │ │ │ │ │ │ └── TopResumedActivityChangeItem.java │ │ │ │ │ │ └── usage │ │ │ │ │ │ │ ├── IStorageStatsManager.java │ │ │ │ │ │ │ └── StorageStats.java │ │ │ │ │ ├── bluetooth │ │ │ │ │ │ ├── IBluetooth.java │ │ │ │ │ │ └── IBluetoothManager.java │ │ │ │ │ ├── content │ │ │ │ │ │ ├── BroadcastReceiver.java │ │ │ │ │ │ ├── ClipboardManager.java │ │ │ │ │ │ ├── ClipboardManagerOreo.java │ │ │ │ │ │ ├── ContentProviderClient.java │ │ │ │ │ │ ├── ContentProviderClientICS.java │ │ │ │ │ │ ├── ContentProviderClientJB.java │ │ │ │ │ │ ├── ContentProviderClientQ.java │ │ │ │ │ │ ├── ContentProviderHolderOreo.java │ │ │ │ │ │ ├── ContentProviderNative.java │ │ │ │ │ │ ├── ContentResolver.java │ │ │ │ │ │ ├── ContentResolverJBMR2.java │ │ │ │ │ │ ├── IClipboard.java │ │ │ │ │ │ ├── IContentProvider.java │ │ │ │ │ │ ├── IContentService.java │ │ │ │ │ │ ├── IIntentReceiver.java │ │ │ │ │ │ ├── IIntentReceiverJB.java │ │ │ │ │ │ ├── IRestrictionsManager.java │ │ │ │ │ │ ├── IntentFilter.java │ │ │ │ │ │ ├── IntentSender.java │ │ │ │ │ │ ├── PeriodicSync.java │ │ │ │ │ │ ├── SyncAdapterType.java │ │ │ │ │ │ ├── SyncAdapterTypeN.java │ │ │ │ │ │ ├── SyncInfo.java │ │ │ │ │ │ ├── SyncRequest.java │ │ │ │ │ │ ├── pm │ │ │ │ │ │ │ ├── ApplicationInfoL.java │ │ │ │ │ │ │ ├── ApplicationInfoN.java │ │ │ │ │ │ │ ├── ApplicationInfoP.java │ │ │ │ │ │ │ ├── ILauncherApps.java │ │ │ │ │ │ │ ├── IShortcutService.java │ │ │ │ │ │ │ ├── LauncherApps.java │ │ │ │ │ │ │ ├── PackageInstaller.java │ │ │ │ │ │ │ ├── PackageParser.java │ │ │ │ │ │ │ ├── PackageParserJellyBean.java │ │ │ │ │ │ │ ├── PackageParserJellyBean17.java │ │ │ │ │ │ │ ├── PackageParserLollipop.java │ │ │ │ │ │ │ ├── PackageParserLollipop22.java │ │ │ │ │ │ │ ├── PackageParserMarshmallow.java │ │ │ │ │ │ │ ├── PackageParserNougat.java │ │ │ │ │ │ │ ├── PackageParserPie.java │ │ │ │ │ │ │ ├── PackageUserState.java │ │ │ │ │ │ │ ├── ParceledListSlice.java │ │ │ │ │ │ │ ├── ParceledListSliceJBMR2.java │ │ │ │ │ │ │ ├── SigningInfo.java │ │ │ │ │ │ │ └── UserInfo.java │ │ │ │ │ │ └── res │ │ │ │ │ │ │ ├── AssetManager.java │ │ │ │ │ │ │ └── CompatibilityInfo.java │ │ │ │ │ ├── ddm │ │ │ │ │ │ ├── DdmHandleAppName.java │ │ │ │ │ │ └── DdmHandleAppNameJBMR1.java │ │ │ │ │ ├── graphics │ │ │ │ │ │ └── drawable │ │ │ │ │ │ │ └── Icon.java │ │ │ │ │ ├── hardware │ │ │ │ │ │ ├── display │ │ │ │ │ │ │ ├── DisplayManagerGlobal.java │ │ │ │ │ │ │ └── IDisplayManager.java │ │ │ │ │ │ ├── fingerprint │ │ │ │ │ │ │ └── IFingerprintService.java │ │ │ │ │ │ ├── location │ │ │ │ │ │ │ └── IContextHubService.java │ │ │ │ │ │ └── usb │ │ │ │ │ │ │ ├── IUsbManager.java │ │ │ │ │ │ │ └── UsbManager.java │ │ │ │ │ ├── location │ │ │ │ │ │ ├── GpsStatus.java │ │ │ │ │ │ ├── GpsStatusL.java │ │ │ │ │ │ ├── ILocationListener.java │ │ │ │ │ │ ├── ILocationManager.java │ │ │ │ │ │ ├── LocationManager.java │ │ │ │ │ │ ├── LocationManagerQ.java │ │ │ │ │ │ └── LocationRequestL.java │ │ │ │ │ ├── media │ │ │ │ │ │ ├── AudioManager.java │ │ │ │ │ │ ├── IAudioService.java │ │ │ │ │ │ ├── IMediaRouterService.java │ │ │ │ │ │ ├── MediaRouter.java │ │ │ │ │ │ └── session │ │ │ │ │ │ │ └── ISessionManager.java │ │ │ │ │ ├── net │ │ │ │ │ │ ├── IConnectivityManager.java │ │ │ │ │ │ ├── NetworkInfo.java │ │ │ │ │ │ └── wifi │ │ │ │ │ │ │ ├── IWifiManager.java │ │ │ │ │ │ │ ├── WifiInfo.java │ │ │ │ │ │ │ ├── WifiManager.java │ │ │ │ │ │ │ ├── WifiScanner.java │ │ │ │ │ │ │ └── WifiSsid.java │ │ │ │ │ ├── nfc │ │ │ │ │ │ └── INfcAdapter.java │ │ │ │ │ ├── os │ │ │ │ │ │ ├── BaseBundle.java │ │ │ │ │ │ ├── Build.java │ │ │ │ │ │ ├── Bundle.java │ │ │ │ │ │ ├── BundleICS.java │ │ │ │ │ │ ├── DropBoxManager.java │ │ │ │ │ │ ├── Handler.java │ │ │ │ │ │ ├── IDeviceIdentifiersPolicyService.java │ │ │ │ │ │ ├── INetworkManagementService.java │ │ │ │ │ │ ├── IPowerManager.java │ │ │ │ │ │ ├── IUserManager.java │ │ │ │ │ │ ├── MemoryFile.java │ │ │ │ │ │ ├── Message.java │ │ │ │ │ │ ├── Parcel.java │ │ │ │ │ │ ├── Process.java │ │ │ │ │ │ ├── ServiceManager.java │ │ │ │ │ │ ├── StrictMode.java │ │ │ │ │ │ ├── health │ │ │ │ │ │ │ └── SystemHealthManager.java │ │ │ │ │ │ ├── mount │ │ │ │ │ │ │ └── IMountService.java │ │ │ │ │ │ └── storage │ │ │ │ │ │ │ ├── IStorageManager.java │ │ │ │ │ │ │ ├── StorageManager.java │ │ │ │ │ │ │ └── StorageVolume.java │ │ │ │ │ ├── providers │ │ │ │ │ │ └── Settings.java │ │ │ │ │ ├── renderscript │ │ │ │ │ │ └── RenderScriptCacheDir.java │ │ │ │ │ ├── rms │ │ │ │ │ │ ├── HwSysResImplP.java │ │ │ │ │ │ └── resource │ │ │ │ │ │ │ ├── ReceiverResourceLP.java │ │ │ │ │ │ │ ├── ReceiverResourceM.java │ │ │ │ │ │ │ ├── ReceiverResourceN.java │ │ │ │ │ │ │ └── ReceiverResourceO.java │ │ │ │ │ ├── security │ │ │ │ │ │ └── net │ │ │ │ │ │ │ └── config │ │ │ │ │ │ │ └── NetworkSecurityConfigProvider.java │ │ │ │ │ ├── service │ │ │ │ │ │ ├── notification │ │ │ │ │ │ │ └── StatusBarNotification.java │ │ │ │ │ │ └── persistentdata │ │ │ │ │ │ │ └── IPersistentDataBlockService.java │ │ │ │ │ ├── telephony │ │ │ │ │ │ ├── CellIdentityCdma.java │ │ │ │ │ │ ├── CellIdentityGsm.java │ │ │ │ │ │ ├── CellInfoCdma.java │ │ │ │ │ │ ├── CellInfoGsm.java │ │ │ │ │ │ ├── CellSignalStrengthCdma.java │ │ │ │ │ │ ├── CellSignalStrengthGsm.java │ │ │ │ │ │ ├── NeighboringCellInfo.java │ │ │ │ │ │ └── SmsManager.java │ │ │ │ │ ├── util │ │ │ │ │ │ └── Singleton.java │ │ │ │ │ ├── view │ │ │ │ │ │ ├── CompatibilityInfoHolder.java │ │ │ │ │ │ ├── Display.java │ │ │ │ │ │ ├── DisplayAdjustments.java │ │ │ │ │ │ ├── HardwareRenderer.java │ │ │ │ │ │ ├── IAutoFillManager.java │ │ │ │ │ │ ├── IGraphicsStats.java │ │ │ │ │ │ ├── IWindowManager.java │ │ │ │ │ │ ├── RenderScript.java │ │ │ │ │ │ ├── SurfaceControl.java │ │ │ │ │ │ ├── ThreadedRenderer.java │ │ │ │ │ │ ├── WindowManagerGlobal.java │ │ │ │ │ │ └── accessibility │ │ │ │ │ │ │ └── IAccessibilityManager.java │ │ │ │ │ ├── webkit │ │ │ │ │ │ ├── IWebViewUpdateService.java │ │ │ │ │ │ └── WebViewFactory.java │ │ │ │ │ └── widget │ │ │ │ │ │ ├── RemoteViews.java │ │ │ │ │ │ └── Toast.java │ │ │ │ ├── com │ │ │ │ │ └── android │ │ │ │ │ │ └── internal │ │ │ │ │ │ ├── R_Hide.java │ │ │ │ │ │ ├── app │ │ │ │ │ │ ├── IAppOpsService.java │ │ │ │ │ │ ├── IBatteryStats.java │ │ │ │ │ │ └── ISmtOpsService.java │ │ │ │ │ │ ├── appwidget │ │ │ │ │ │ └── IAppWidgetService.java │ │ │ │ │ │ ├── content │ │ │ │ │ │ ├── NativeLibraryHelper.java │ │ │ │ │ │ └── ReferrerIntent.java │ │ │ │ │ │ ├── os │ │ │ │ │ │ ├── IDropBoxManagerService.java │ │ │ │ │ │ ├── IVibratorService.java │ │ │ │ │ │ └── UserManager.java │ │ │ │ │ │ ├── policy │ │ │ │ │ │ └── PhoneWindow.java │ │ │ │ │ │ ├── telecom │ │ │ │ │ │ └── ITelecomService.java │ │ │ │ │ │ ├── telephony │ │ │ │ │ │ ├── IHwTelephony.java │ │ │ │ │ │ ├── IMms.java │ │ │ │ │ │ ├── IPhoneSubInfo.java │ │ │ │ │ │ ├── ISms.java │ │ │ │ │ │ ├── ISub.java │ │ │ │ │ │ ├── ITelephony.java │ │ │ │ │ │ ├── ITelephonyRegistry.java │ │ │ │ │ │ └── PhoneConstantsMtk.java │ │ │ │ │ │ └── view │ │ │ │ │ │ ├── IInputMethodManager.java │ │ │ │ │ │ └── inputmethod │ │ │ │ │ │ └── InputMethodManager.java │ │ │ │ ├── dalvik │ │ │ │ │ └── system │ │ │ │ │ │ └── VMRuntime.java │ │ │ │ ├── java │ │ │ │ │ ├── io │ │ │ │ │ │ ├── File.java │ │ │ │ │ │ ├── FileSystem.java │ │ │ │ │ │ └── UnixFileSystem.java │ │ │ │ │ └── lang │ │ │ │ │ │ ├── ThreadGroup.java │ │ │ │ │ │ └── ThreadGroupN.java │ │ │ │ ├── libcore │ │ │ │ │ └── io │ │ │ │ │ │ ├── ForwardingOs.java │ │ │ │ │ │ ├── Libcore.java │ │ │ │ │ │ └── Os.java │ │ │ │ └── oem │ │ │ │ │ ├── HwApiCacheManagerEx.java │ │ │ │ │ ├── HwFrameworkFactory.java │ │ │ │ │ ├── IFlymePermissionService.java │ │ │ │ │ └── ZTEILocationManager.java │ │ │ └── top │ │ │ │ └── niunaijun │ │ │ │ ├── blackbox │ │ │ │ ├── BEnvironment.java │ │ │ │ ├── BlackBoxCore.java │ │ │ │ ├── client │ │ │ │ │ ├── BClient.java │ │ │ │ │ ├── ClientConfiguration.java │ │ │ │ │ ├── CrashHandler.java │ │ │ │ │ ├── StubManifest.java │ │ │ │ │ ├── VMCore.java │ │ │ │ │ ├── frameworks │ │ │ │ │ │ ├── BActivityManager.java │ │ │ │ │ │ ├── BJobManager.java │ │ │ │ │ │ ├── BPackageManager.java │ │ │ │ │ │ ├── BStorageManager.java │ │ │ │ │ │ ├── BUserManager.java │ │ │ │ │ │ └── BXposedManager.java │ │ │ │ │ ├── hook │ │ │ │ │ │ ├── AppLifecycleCallback.java │ │ │ │ │ │ ├── BinderInvocationStub.java │ │ │ │ │ │ ├── ClassInvocationStub.java │ │ │ │ │ │ ├── HookManager.java │ │ │ │ │ │ ├── IInjectHook.java │ │ │ │ │ │ ├── IOManager.java │ │ │ │ │ │ ├── MethodHook.java │ │ │ │ │ │ ├── ResultStaticMethodProxy.java │ │ │ │ │ │ ├── common │ │ │ │ │ │ │ └── CallingPackageStub.java │ │ │ │ │ │ ├── delegate │ │ │ │ │ │ │ ├── ActivityLifecycleDelegate.java │ │ │ │ │ │ │ ├── AppInstrumentation.java │ │ │ │ │ │ │ ├── ContentProviderDelegate.java │ │ │ │ │ │ │ ├── InstrumentationDelegate.java │ │ │ │ │ │ │ └── ServiceConnectionDelegate.java │ │ │ │ │ │ ├── env │ │ │ │ │ │ │ ├── ClientSystemEnv.java │ │ │ │ │ │ │ └── VirtualRuntime.java │ │ │ │ │ │ ├── fixer │ │ │ │ │ │ │ ├── ActivityFixer.java │ │ │ │ │ │ │ └── ContextFixer.java │ │ │ │ │ │ ├── provider │ │ │ │ │ │ │ ├── FileProvider.java │ │ │ │ │ │ │ └── FileProviderHandler.java │ │ │ │ │ │ └── proxies │ │ │ │ │ │ │ ├── accessibility │ │ │ │ │ │ │ └── AccessibilityManagerStub.java │ │ │ │ │ │ │ ├── am │ │ │ │ │ │ │ ├── ActivityManagerStub.java │ │ │ │ │ │ │ ├── ActivityTaskManagerStub.java │ │ │ │ │ │ │ └── CommonStub.java │ │ │ │ │ │ │ ├── app │ │ │ │ │ │ │ ├── AlarmManagerStub.java │ │ │ │ │ │ │ ├── HCallbackStub.java │ │ │ │ │ │ │ ├── JobServiceStub.java │ │ │ │ │ │ │ └── NotificationManagerStub.java │ │ │ │ │ │ │ ├── appos │ │ │ │ │ │ │ └── AppOpsManagerStub.java │ │ │ │ │ │ │ ├── appwidget │ │ │ │ │ │ │ └── AppWidgetManagerStub.java │ │ │ │ │ │ │ ├── context │ │ │ │ │ │ │ ├── ContentServiceStub.java │ │ │ │ │ │ │ ├── RestrictionsManagerStub.java │ │ │ │ │ │ │ └── providers │ │ │ │ │ │ │ │ ├── ContentProviderStub.java │ │ │ │ │ │ │ │ ├── SettingsProviderStub.java │ │ │ │ │ │ │ │ └── VContentProvider.java │ │ │ │ │ │ │ ├── display │ │ │ │ │ │ │ └── DisplayManagerStub.java │ │ │ │ │ │ │ ├── libcore │ │ │ │ │ │ │ └── OsStub.java │ │ │ │ │ │ │ ├── location │ │ │ │ │ │ │ └── LocationManagerStub.java │ │ │ │ │ │ │ ├── net │ │ │ │ │ │ │ └── ConnectivityManagerStub.java │ │ │ │ │ │ │ ├── os │ │ │ │ │ │ │ ├── DeviceIdentifiersPolicyStub.java │ │ │ │ │ │ │ ├── UserManagerStub.java │ │ │ │ │ │ │ └── storage │ │ │ │ │ │ │ │ └── StorageManagerStub.java │ │ │ │ │ │ │ ├── pm │ │ │ │ │ │ │ ├── LauncherAppsStub.java │ │ │ │ │ │ │ ├── PackageManagerStub.java │ │ │ │ │ │ │ └── ShortcutManagerStub.java │ │ │ │ │ │ │ ├── session │ │ │ │ │ │ │ └── MediaSessionManagerStub.java │ │ │ │ │ │ │ ├── telephony │ │ │ │ │ │ │ └── TelephonyManagerStub.java │ │ │ │ │ │ │ ├── view │ │ │ │ │ │ │ ├── AutofillManagerStub.java │ │ │ │ │ │ │ └── GraphicsStatsStub.java │ │ │ │ │ │ │ └── vm │ │ │ │ │ │ │ ├── WindowManagerStub.java │ │ │ │ │ │ │ └── WindowSessionStub.java │ │ │ │ │ ├── record │ │ │ │ │ │ └── service │ │ │ │ │ │ │ └── ServiceRecord.java │ │ │ │ │ └── stub │ │ │ │ │ │ ├── StubActivity.java │ │ │ │ │ │ ├── StubBroadcastReceiver.java │ │ │ │ │ │ ├── StubContentProvider.java │ │ │ │ │ │ ├── StubJobService.java │ │ │ │ │ │ ├── StubService.java │ │ │ │ │ │ └── record │ │ │ │ │ │ ├── StubActivityRecord.java │ │ │ │ │ │ ├── StubBroadcastRecord.java │ │ │ │ │ │ └── StubServiceRecord.java │ │ │ │ ├── entity │ │ │ │ │ ├── ClientConfig.java │ │ │ │ │ ├── JobRecord.java │ │ │ │ │ ├── UnbindRecord.java │ │ │ │ │ └── pm │ │ │ │ │ │ ├── InstallOption.java │ │ │ │ │ │ ├── InstallResult.java │ │ │ │ │ │ ├── InstalledModule.java │ │ │ │ │ │ ├── InstalledPackage.java │ │ │ │ │ │ └── XposedConfig.java │ │ │ │ ├── server │ │ │ │ │ ├── BProcessManager.java │ │ │ │ │ ├── BindProvider.java │ │ │ │ │ ├── BlackBoxSystem.java │ │ │ │ │ ├── ClientJobServiceManager.java │ │ │ │ │ ├── ClientServiceManager.java │ │ │ │ │ ├── DaemonService.java │ │ │ │ │ ├── ISystemService.java │ │ │ │ │ ├── ProcessRecord.java │ │ │ │ │ ├── ServiceManager.java │ │ │ │ │ ├── am │ │ │ │ │ │ ├── ActiveServices.java │ │ │ │ │ │ ├── ActivityRecord.java │ │ │ │ │ │ ├── ActivityStack.java │ │ │ │ │ │ ├── BActivityManagerService.java │ │ │ │ │ │ ├── BJobManagerService.java │ │ │ │ │ │ ├── TaskRecord.java │ │ │ │ │ │ └── UserSpace.java │ │ │ │ │ ├── os │ │ │ │ │ │ └── BStorageManagerService.java │ │ │ │ │ ├── pm │ │ │ │ │ │ ├── BPackage.java │ │ │ │ │ │ ├── BPackageInstallerService.java │ │ │ │ │ │ ├── BPackageManagerService.java │ │ │ │ │ │ ├── BPackageSettings.java │ │ │ │ │ │ ├── BPackageUserState.java │ │ │ │ │ │ ├── BXposedManagerService.java │ │ │ │ │ │ ├── ComponentResolver.java │ │ │ │ │ │ ├── FastImmutableArraySet.java │ │ │ │ │ │ ├── IntentResolver.java │ │ │ │ │ │ ├── PackageManagerCompat.java │ │ │ │ │ │ ├── PackageMonitor.java │ │ │ │ │ │ ├── Settings.java │ │ │ │ │ │ └── installer │ │ │ │ │ │ │ ├── CopyExecutor.java │ │ │ │ │ │ │ ├── CreatePackageExecutor.java │ │ │ │ │ │ │ ├── CreateUserExecutor.java │ │ │ │ │ │ │ ├── Executor.java │ │ │ │ │ │ │ ├── RemoveAppExecutor.java │ │ │ │ │ │ │ └── RemoveUserExecutor.java │ │ │ │ │ └── user │ │ │ │ │ │ ├── BUserHandle.java │ │ │ │ │ │ ├── BUserInfo.java │ │ │ │ │ │ ├── BUserManagerService.java │ │ │ │ │ │ └── BUserStatus.java │ │ │ │ └── utils │ │ │ │ │ ├── AbiUtils.java │ │ │ │ │ ├── ArrayUtils.java │ │ │ │ │ ├── ClassUtils.java │ │ │ │ │ ├── CloseUtils.java │ │ │ │ │ ├── ComponentUtils.java │ │ │ │ │ ├── FileUtils.java │ │ │ │ │ ├── HackAppUtils.java │ │ │ │ │ ├── Md5Utils.java │ │ │ │ │ ├── MethodParameterUtils.java │ │ │ │ │ ├── NativeUtils.java │ │ │ │ │ ├── Reflector.java │ │ │ │ │ ├── ShellUtils.java │ │ │ │ │ ├── Slog.java │ │ │ │ │ ├── compat │ │ │ │ │ ├── ActivityManagerCompat.java │ │ │ │ │ ├── ApplicationThreadCompat.java │ │ │ │ │ ├── BuildCompat.java │ │ │ │ │ ├── BundleCompat.java │ │ │ │ │ ├── ContentProviderCompat.java │ │ │ │ │ ├── ObjectsCompat.java │ │ │ │ │ ├── PackageParserCompat.java │ │ │ │ │ ├── ParceledListSliceCompat.java │ │ │ │ │ ├── StartActivityCompat.java │ │ │ │ │ ├── StrictModeCompat.java │ │ │ │ │ ├── SystemPropertiesCompat.java │ │ │ │ │ └── XposedParserCompat.java │ │ │ │ │ └── provider │ │ │ │ │ └── ProviderCall.java │ │ │ │ └── jnihook │ │ │ │ ├── MethodUtils.java │ │ │ │ └── jni │ │ │ │ └── JniHook.java │ │ ├── jni │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── Hook │ │ │ │ ├── BaseHook.cpp │ │ │ │ ├── BaseHook.h │ │ │ │ ├── BinderHook.cpp │ │ │ │ ├── BinderHook.h │ │ │ │ ├── RuntimeHook.cpp │ │ │ │ ├── RuntimeHook.h │ │ │ │ ├── UnixFileSystemHook.cpp │ │ │ │ ├── UnixFileSystemHook.h │ │ │ │ ├── VMClassLoaderHook.cpp │ │ │ │ └── VMClassLoaderHook.h │ │ │ ├── IO.cpp │ │ │ ├── IO.h │ │ │ ├── JniHook │ │ │ │ ├── ArtMethod.h │ │ │ │ ├── JniHook.cpp │ │ │ │ └── JniHook.h │ │ │ ├── Log.h │ │ │ ├── VmCore.cpp │ │ │ └── VmCore.h │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_launcher.png │ │ │ ├── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── filepath.xml │ └── test │ │ └── java │ │ └── top │ │ └── niunaijun │ │ └── blackbox │ │ └── ExampleUnitTest.java └── xposed │ ├── .gitignore │ ├── build.gradle │ ├── consumer-rules.pro │ ├── proguard-rules.pro │ └── src │ ├── androidTest │ └── java │ │ └── top │ │ └── niunaijun │ │ └── xposed │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ └── java │ │ ├── com │ │ ├── android │ │ │ ├── dx │ │ │ │ ├── AnnotationId.java │ │ │ │ ├── AppDataDirGuesser.java │ │ │ │ ├── BinaryOp.java │ │ │ │ ├── Code.java │ │ │ │ ├── Comparison.java │ │ │ │ ├── Constants.java │ │ │ │ ├── DexMaker.java │ │ │ │ ├── FieldId.java │ │ │ │ ├── Label.java │ │ │ │ ├── Local.java │ │ │ │ ├── MethodId.java │ │ │ │ ├── TypeId.java │ │ │ │ ├── TypeList.java │ │ │ │ ├── UnaryOp.java │ │ │ │ └── stock │ │ │ │ │ └── ProxyBuilder.java │ │ │ └── internal │ │ │ │ └── util │ │ │ │ └── XmlUtils.java │ │ └── swift │ │ │ └── sandhook │ │ │ └── xposedcompat │ │ │ ├── XposedCompat.java │ │ │ ├── classloaders │ │ │ └── ProxyClassLoader.java │ │ │ ├── hookstub │ │ │ ├── CallOriginCallBack.java │ │ │ ├── HookMethodEntity.java │ │ │ ├── HookStubManager.java │ │ │ ├── MethodHookerStubs32.java │ │ │ └── MethodHookerStubs64.java │ │ │ ├── methodgen │ │ │ ├── DynamicBridge.java │ │ │ ├── ErrorCatch.java │ │ │ ├── HookMaker.java │ │ │ ├── HookerDexMaker.java │ │ │ └── HookerDexMakerNew.java │ │ │ └── utils │ │ │ ├── ApplicationUtils.java │ │ │ ├── DexLog.java │ │ │ ├── DexMakerUtils.java │ │ │ ├── FileUtils.java │ │ │ └── ProcessUtils.java │ │ ├── de │ │ └── robv │ │ │ └── android │ │ │ └── xposed │ │ │ ├── IXposedHookCmdInit.java │ │ │ ├── IXposedHookInitPackageResources.java │ │ │ ├── IXposedHookLoadPackage.java │ │ │ ├── IXposedHookZygoteInit.java │ │ │ ├── IXposedMod.java │ │ │ ├── SELinuxHelper.java │ │ │ ├── XC_MethodHook.java │ │ │ ├── XC_MethodReplacement.java │ │ │ ├── XposedBridge.java │ │ │ ├── XposedHelpers.java │ │ │ ├── XposedInit.java │ │ │ ├── callbacks │ │ │ ├── IXUnhook.java │ │ │ ├── XC_InitPackageResources.java │ │ │ ├── XC_LayoutInflated.java │ │ │ ├── XC_LoadPackage.java │ │ │ ├── XCallback.java │ │ │ └── package-info.java │ │ │ └── services │ │ │ ├── BaseService.java │ │ │ ├── DirectAccessService.java │ │ │ └── FileResult.java │ │ └── external │ │ └── org │ │ └── apache │ │ └── commons │ │ └── lang3 │ │ ├── ArrayUtils.java │ │ ├── CharSequenceUtils.java │ │ ├── CharUtils.java │ │ ├── ClassUtils.java │ │ ├── JavaVersion.java │ │ ├── ObjectUtils.java │ │ ├── StringUtils.java │ │ ├── SystemUtils.java │ │ ├── Validate.java │ │ ├── builder │ │ ├── Builder.java │ │ ├── CompareToBuilder.java │ │ ├── EqualsBuilder.java │ │ ├── HashCodeBuilder.java │ │ ├── IDKey.java │ │ ├── ReflectionToStringBuilder.java │ │ ├── ToStringBuilder.java │ │ └── ToStringStyle.java │ │ ├── exception │ │ └── CloneFailedException.java │ │ ├── mutable │ │ ├── Mutable.java │ │ └── MutableInt.java │ │ ├── reflect │ │ ├── MemberUtils.java │ │ └── MethodUtils.java │ │ └── tuple │ │ ├── ImmutablePair.java │ │ └── Pair.java │ └── test │ └── java │ └── top │ └── niunaijun │ └── xposed │ └── ExampleUnitTest.java ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── top │ │ └── niunaijun │ │ └── blackbox │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── top │ │ │ └── niunaijun │ │ │ └── blackboxa │ │ │ ├── App.kt │ │ │ ├── bean │ │ │ ├── AppInfo.kt │ │ │ └── XpModuleInfo.kt │ │ │ ├── data │ │ │ ├── AppsRepository.kt │ │ │ └── XpRepository.kt │ │ │ ├── util │ │ │ ├── InjectionUtil.kt │ │ │ ├── LoadingUtil.kt │ │ │ ├── ToastEx.kt │ │ │ └── ViewBindingEx.kt │ │ │ └── view │ │ │ ├── apps │ │ │ ├── AppsAdapter.kt │ │ │ ├── AppsFactory.kt │ │ │ ├── AppsFragment.kt │ │ │ └── AppsViewModel.kt │ │ │ ├── base │ │ │ ├── BaseAdapter.kt │ │ │ └── BaseViewModel.kt │ │ │ ├── list │ │ │ ├── ListActivity.kt │ │ │ ├── ListAdapter.kt │ │ │ ├── ListFactory.kt │ │ │ └── ListViewModel.kt │ │ │ ├── main │ │ │ ├── MainActivity.kt │ │ │ ├── ViewPagerAdapter.kt │ │ │ └── WelcomeActivity.kt │ │ │ └── xp │ │ │ ├── XpActivity.kt │ │ │ ├── XpAdapter.kt │ │ │ ├── XpFactory.kt │ │ │ └── XpViewModel.kt │ └── res │ │ ├── drawable-anydpi │ │ ├── ic_add.xml │ │ └── ic_search.xml │ │ ├── drawable-hdpi │ │ ├── ic_add.png │ │ └── ic_search.png │ │ ├── drawable-mdpi │ │ ├── ic_add.png │ │ └── ic_search.png │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable-xhdpi │ │ ├── ic_add.png │ │ └── ic_search.png │ │ ├── drawable-xxhdpi │ │ ├── ic_add.png │ │ └── ic_search.png │ │ ├── drawable │ │ ├── ic_empty.xml │ │ ├── ic_launcher_background.xml │ │ └── splash.xml │ │ ├── layout │ │ ├── activity_list.xml │ │ ├── activity_main.xml │ │ ├── activity_xp.xml │ │ ├── base_empty.xml │ │ ├── fragment_apps.xml │ │ ├── item_app.xml │ │ ├── item_package.xml │ │ ├── item_viewpager.xml │ │ ├── item_xp.xml │ │ ├── view_switch.xml │ │ └── view_toolbar.xml │ │ ├── menu │ │ ├── menu_list.xml │ │ ├── menu_main.xml │ │ └── menu_xp.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-night │ │ └── themes.xml │ │ ├── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ │ └── xml │ │ └── network_security_config.xml │ └── test │ └── java │ └── top │ └── niunaijun │ └── blackbox │ └── ExampleUnitTest.kt ├── banner.png ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── virtualm.jks /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Bcore/src/androidTest/java/top/niunaijun/blackbox/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("top.niunaijun.virtual.test", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/src/main/aidl/android/app/IActivityManager/ContentProviderHolder.aidl: -------------------------------------------------------------------------------- 1 | // ContentProviderHolder.aidl 2 | package android.app.IActivityManager; 3 | 4 | parcelable ContentProviderHolder; -------------------------------------------------------------------------------- /Bcore/src/main/aidl/android/app/IWallpaperManagerCallback.aidl: -------------------------------------------------------------------------------- 1 | /* //device/java/android/android/app/IServiceConnection.aidl 2 | ** 3 | ** Copyright 2007, The Android Open Source Project 4 | ** 5 | ** Licensed under the Apache License, Version 2.0 (the "License"); 6 | ** you may not use this file except in compliance with the License. 7 | ** You may obtain a copy of the License at 8 | ** 9 | ** http://www.apache.org/licenses/LICENSE-2.0 10 | ** 11 | ** Unless required by applicable law or agreed to in writing, software 12 | ** distributed under the License is distributed on an "AS IS" BASIS, 13 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | ** See the License for the specific language governing permissions and 15 | ** limitations under the License. 16 | */ 17 | 18 | package android.app; 19 | 20 | /** @hide */ 21 | interface IWallpaperManagerCallback { 22 | void onWallpaperChanged(); 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/src/main/aidl/android/app/job/JobWorkItem.aidl: -------------------------------------------------------------------------------- 1 | // JobWorkItem.aidl 2 | package android.app.job; 3 | 4 | parcelable JobWorkItem; 5 | -------------------------------------------------------------------------------- /Bcore/src/main/aidl/android/content/ISyncStatusObserver.aidl: -------------------------------------------------------------------------------- 1 | package android.content; 2 | 3 | 4 | interface ISyncStatusObserver { 5 | void onStatusChanged(int which); 6 | } 7 | -------------------------------------------------------------------------------- /Bcore/src/main/aidl/android/content/SyncStatusInfo.aidl: -------------------------------------------------------------------------------- 1 | package android.content; 2 | 3 | parcelable SyncStatusInfo; -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/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 | } -------------------------------------------------------------------------------- /Bcore/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 | 8 | NetworkInfo getActiveNetworkInfo(); 9 | NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked); 10 | 11 | NetworkInfo getNetworkInfo(int networkType); 12 | NetworkInfo[] getAllNetworkInfo(); 13 | boolean isActiveNetworkMetered(); 14 | boolean requestRouteToHostAddress(int networkType, int address); 15 | LinkProperties getActiveLinkProperties(); 16 | LinkProperties getLinkProperties(int networkType); 17 | 18 | } -------------------------------------------------------------------------------- /Bcore/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 | -------------------------------------------------------------------------------- /Bcore/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 | } -------------------------------------------------------------------------------- /Bcore/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 | } -------------------------------------------------------------------------------- /Bcore/src/main/aidl/top/niunaijun/blackbox/client/IBClient.aidl: -------------------------------------------------------------------------------- 1 | // IVClient.aidl 2 | package top.niunaijun.blackbox.client; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | import android.os.IBinder; 7 | import android.content.ComponentName; 8 | import android.content.Intent; 9 | import java.util.List; 10 | import android.content.pm.ResolveInfo; 11 | 12 | interface IBClient { 13 | IBinder getActivityThread(); 14 | void bindApplication(); 15 | void stopService(in ComponentName componentName); 16 | void restartJobService(String selfId); 17 | IBinder acquireContentProviderClient(in ProviderInfo providerInfo); 18 | 19 | IBinder peekService(in Intent intent); 20 | void finishActivity(IBinder token); 21 | void handleNewIntent(IBinder token, in Intent intent); 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/aidl/top/niunaijun/blackbox/entity/ClientConfig.aidl: -------------------------------------------------------------------------------- 1 | // ClientConfig.aidl 2 | package top.niunaijun.blackbox.entity; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | parcelable ClientConfig; -------------------------------------------------------------------------------- /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/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/aidl/top/niunaijun/blackbox/server/am/IBJobManagerService.aidl: -------------------------------------------------------------------------------- 1 | // IBJobManagerService.aidl 2 | package top.niunaijun.blackbox.server.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/server/os/IBStorageManagerService.aidl: -------------------------------------------------------------------------------- 1 | // IBStorageManagerService.aidl 2 | package top.niunaijun.blackbox.server.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/server/pm/BPackageSettings.aidl: -------------------------------------------------------------------------------- 1 | // BPackageSettings.aidl 2 | package top.niunaijun.blackbox.server.pm; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | parcelable BPackageSettings; -------------------------------------------------------------------------------- /Bcore/src/main/aidl/top/niunaijun/blackbox/server/pm/IBPackageInstallerService.aidl: -------------------------------------------------------------------------------- 1 | // IBPackageInstallerService.aidl 2 | package top.niunaijun.blackbox.server.pm; 3 | 4 | import top.niunaijun.blackbox.server.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 file, int userId); 11 | int uninstallPackageAsUser(in BPackageSettings file, boolean removeApp, int userId); 12 | int updatePackage(in BPackageSettings file); 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/aidl/top/niunaijun/blackbox/server/pm/IBXposedManagerService.aidl: -------------------------------------------------------------------------------- 1 | // IBXposedManagerService.aidl 2 | 3 | package top.niunaijun.blackbox.server.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/server/user/BUserInfo.aidl: -------------------------------------------------------------------------------- 1 | // BUserInfo.aidl 2 | package top.niunaijun.blackbox.server.user; 3 | 4 | // Declare any non-default types here with import statements 5 | parcelable BUserInfo; 6 | -------------------------------------------------------------------------------- /Bcore/src/main/aidl/top/niunaijun/blackbox/server/user/IBUserManagerService.aidl: -------------------------------------------------------------------------------- 1 | // IBUserManagerService.aidl 2 | package top.niunaijun.blackbox.server.user; 3 | 4 | // Declare any non-default types here with import statements 5 | import top.niunaijun.blackbox.server.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/assets/junit.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/Bcore/src/main/assets/junit.jar -------------------------------------------------------------------------------- /Bcore/src/main/java/android/location/LocationRequest.java: -------------------------------------------------------------------------------- 1 | package android.location; 2 | 3 | import android.os.Parcel; 4 | import android.os.Parcelable; 5 | 6 | public final class LocationRequest implements Parcelable { 7 | 8 | public String getProvider() { 9 | return null; 10 | } 11 | 12 | 13 | public static final Creator CREATOR = new Creator() { 14 | @Override 15 | public LocationRequest createFromParcel(Parcel in) { 16 | return null; 17 | } 18 | 19 | @Override 20 | public LocationRequest[] newArray(int size) { 21 | return null; 22 | } 23 | }; 24 | 25 | @Override 26 | public int describeContents() { 27 | return 0; 28 | } 29 | 30 | @Override 31 | public void writeToParcel(Parcel dest, int flags) { 32 | } 33 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/MethodParams.java: -------------------------------------------------------------------------------- 1 | package mirror; 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 | @Target({ElementType.FIELD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface MethodParams { 11 | Class[] value(); 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/MethodReflectParams.java: -------------------------------------------------------------------------------- 1 | package mirror; 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 | @Target({ElementType.FIELD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface MethodReflectParams { 11 | String[] value(); 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefBoolean.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | public class RefBoolean { 6 | private Field field; 7 | 8 | public RefBoolean(Class cls, Field field) throws NoSuchFieldException { 9 | this.field = cls.getDeclaredField(field.getName()); 10 | this.field.setAccessible(true); 11 | } 12 | 13 | public boolean get(Object object) { 14 | try { 15 | return this.field.getBoolean(object); 16 | } catch (Exception e) { 17 | return false; 18 | } 19 | } 20 | 21 | public void set(Object obj, boolean value) { 22 | try { 23 | this.field.setBoolean(obj, value); 24 | } catch (Exception e) { 25 | //Ignore 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefDouble.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | public class RefDouble { 6 | private Field field; 7 | 8 | public RefDouble(Class cls, Field field) throws NoSuchFieldException { 9 | this.field = cls.getDeclaredField(field.getName()); 10 | this.field.setAccessible(true); 11 | } 12 | 13 | public double get(Object object) { 14 | try { 15 | return this.field.getDouble(object); 16 | } catch (Exception e) { 17 | return 0; 18 | } 19 | } 20 | 21 | public void set(Object obj, double value) { 22 | try { 23 | this.field.setDouble(obj, value); 24 | } catch (Exception e) { 25 | //Ignore 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefFloat.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | public class RefFloat { 6 | private Field field; 7 | 8 | public RefFloat(Class cls, Field field) throws NoSuchFieldException { 9 | this.field = cls.getDeclaredField(field.getName()); 10 | this.field.setAccessible(true); 11 | } 12 | 13 | public float get(Object object) { 14 | try { 15 | return this.field.getFloat(object); 16 | } catch (Exception e) { 17 | return 0; 18 | } 19 | } 20 | 21 | public void set(Object obj, float value) { 22 | try { 23 | this.field.setFloat(obj, value); 24 | } catch (Exception e) { 25 | //Ignore 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefInt.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | public class RefInt { 6 | private Field field; 7 | 8 | public RefInt(Class cls, Field field) throws NoSuchFieldException { 9 | this.field = cls.getDeclaredField(field.getName()); 10 | this.field.setAccessible(true); 11 | } 12 | 13 | public int get(Object object) { 14 | try { 15 | return this.field.getInt(object); 16 | } catch (Exception e) { 17 | return 0; 18 | } 19 | } 20 | 21 | public void set(Object obj, int intValue) { 22 | try { 23 | this.field.setInt(obj, intValue); 24 | } catch (Exception e) { 25 | //Ignore 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefLong.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | public class RefLong { 6 | private Field field; 7 | 8 | public RefLong(Class cls, Field field) throws NoSuchFieldException { 9 | this.field = cls.getDeclaredField(field.getName()); 10 | this.field.setAccessible(true); 11 | } 12 | 13 | public long get(Object object) { 14 | try { 15 | return this.field.getLong(object); 16 | } catch (Exception e) { 17 | return 0; 18 | } 19 | } 20 | 21 | public void set(Object obj, long value) { 22 | try { 23 | this.field.setLong(obj, value); 24 | } catch (Exception e) { 25 | //Ignore 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefObject.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | @SuppressWarnings("unchecked") 6 | public class RefObject { 7 | private Field field; 8 | 9 | public RefObject(Class cls, Field field) throws NoSuchFieldException { 10 | this.field = cls.getDeclaredField(field.getName()); 11 | this.field.setAccessible(true); 12 | } 13 | 14 | public T get(Object object) { 15 | try { 16 | return (T) this.field.get(object); 17 | } catch (Exception e) { 18 | e.printStackTrace(); 19 | return null; 20 | } 21 | } 22 | 23 | public boolean set(Object obj, T value) { 24 | try { 25 | this.field.set(obj, value); 26 | return true; 27 | } catch (Exception e) { 28 | e.printStackTrace(); 29 | } 30 | return false; 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefStaticInt.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | public class RefStaticInt { 6 | private Field field; 7 | 8 | public RefStaticInt(Class cls, Field field) throws NoSuchFieldException { 9 | this.field = cls.getDeclaredField(field.getName()); 10 | this.field.setAccessible(true); 11 | } 12 | 13 | public int get() { 14 | try { 15 | return this.field.getInt(null); 16 | } catch (Exception e) { 17 | return 0; 18 | } 19 | } 20 | 21 | public void set(int value) { 22 | try { 23 | this.field.setInt(null, value); 24 | } catch (Exception e) { 25 | //Ignore 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/RefStaticObject.java: -------------------------------------------------------------------------------- 1 | package mirror; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | @SuppressWarnings("unchecked") 6 | public class RefStaticObject { 7 | private Field field; 8 | 9 | public RefStaticObject(Class cls, Field field) throws NoSuchFieldException { 10 | this.field = cls.getDeclaredField(field.getName()); 11 | this.field.setAccessible(true); 12 | } 13 | 14 | public Class type() { 15 | return field.getType(); 16 | } 17 | 18 | public T get() { 19 | T obj = null; 20 | try { 21 | obj = (T) this.field.get(null); 22 | } catch (Exception e) { 23 | //Ignore 24 | } 25 | return obj; 26 | } 27 | 28 | public void set(T obj) { 29 | try { 30 | this.field.set(null, obj); 31 | } catch (Exception e) { 32 | //Ignore 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/accounts/IAccountManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.accounts; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IAccountManager { 11 | public static Class TYPE = RefClass.load(IAccountManager.class, "android.accounts.IAccountManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.accounts.IAccountManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ActivityManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefStaticInt; 5 | 6 | public class ActivityManager { 7 | public static Class TYPE = RefClass.load(ActivityManager.class, android.app.ActivityManager.class); 8 | public static RefStaticInt START_SUCCESS; 9 | public static RefStaticInt START_INTENT_NOT_RESOLVED; 10 | public static RefStaticInt START_TASK_TO_FRONT; 11 | public static RefStaticInt START_NOT_CURRENT_USER_ACTIVITY; 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ActivityManagerNative.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefStaticObject; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ActivityManagerNative { 11 | public static Class TYPE = RefClass.load(ActivityManagerNative.class, "android.app.ActivityManagerNative"); 12 | public static RefStaticObject gDefault; 13 | public static RefStaticMethod getDefault; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ActivityManagerOreo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticMethod; 7 | import mirror.RefStaticObject; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | 13 | public class ActivityManagerOreo { 14 | 15 | public static Class TYPE = RefClass.load(ActivityManagerOreo.class, "android.app.ActivityManager"); 16 | 17 | public static RefStaticMethod getService; 18 | public static RefStaticObject IActivityManagerSingleton; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ActivityThreadNMR1.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | 5 | import java.util.List; 6 | 7 | import mirror.MethodParams; 8 | import mirror.RefClass; 9 | import mirror.RefMethod; 10 | 11 | /** 12 | * @author Lody 13 | */ 14 | 15 | public class ActivityThreadNMR1 { 16 | public static Class Class = RefClass.load(ActivityThreadNMR1.class, "android.app.ActivityThread"); 17 | @MethodParams({IBinder.class, List.class, boolean.class}) 18 | public static RefMethod performNewIntents; 19 | } 20 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ActivityThreadQ.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | 5 | import java.util.List; 6 | 7 | import mirror.MethodParams; 8 | import mirror.RefClass; 9 | import mirror.RefMethod; 10 | 11 | /** 12 | * @author Swift Gans 13 | */ 14 | 15 | public class ActivityThreadQ { 16 | public static Class Class = RefClass.load(ActivityThreadQ.class, "android.app.ActivityThread"); 17 | @MethodParams({IBinder.class, List.class}) 18 | public static RefMethod handleNewIntent; 19 | } 20 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/AlarmManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefInt; 7 | import mirror.RefObject; 8 | 9 | public class AlarmManager { 10 | public static Class TYPE = RefClass.load(AlarmManager.class, android.app.AlarmManager.class); 11 | public static RefInt mTargetSdkVersion; 12 | public static RefObject mService; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/AppOpsManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | import android.os.IInterface; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefObject; 9 | 10 | @TargetApi(Build.VERSION_CODES.KITKAT) 11 | public class AppOpsManager { 12 | public static Class TYPE = RefClass.load(AppOpsManager.class, android.app.AppOpsManager.class); 13 | public static RefObject mService; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ApplicationThreadNative.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | public class ApplicationThreadNative { 14 | public static Class TYPE = RefClass.load(ApplicationThreadNative.class, "android.app.ApplicationThreadNative"); 15 | 16 | @MethodParams({IBinder.class}) 17 | public static RefStaticMethod asInterface; 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ClientTransactionHandler.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | 4 | import android.os.IBinder; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefMethod; 9 | 10 | public class ClientTransactionHandler { 11 | public static Class TYPE = RefClass.load(ClientTransactionHandler.class, "android.app.ClientTransactionHandler"); 12 | @MethodParams(IBinder.class) 13 | public static RefMethod getActivityClient; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ContextImplICS.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import java.io.File; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class ContextImplICS { 9 | public static Class TYPE = RefClass.load(ContextImplICS.class, "android.app.ContextImpl"); 10 | public static RefObject mExternalCacheDir; 11 | public static RefObject mExternalFilesDir; 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ContextImplKitkat.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import java.io.File; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class ContextImplKitkat { 9 | public static Class TYPE = RefClass.load(ContextImplKitkat.class, "android.app.ContextImpl"); 10 | public static RefObject mExternalCacheDirs; 11 | public static RefObject mExternalFilesDirs; 12 | public static RefObject mOpPackageName; 13 | public static RefObject mDisplayAdjustments; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IActivityManagerICS.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.content.Intent; 4 | import android.os.IBinder; 5 | import mirror.RefClass; 6 | import mirror.RefMethod; 7 | import mirror.MethodParams; 8 | 9 | public class IActivityManagerICS { 10 | public static Class TYPE = RefClass.load(IActivityManagerICS.class, "android.app.IActivityManager"); 11 | @MethodParams({IBinder.class, int.class, Intent.class}) 12 | public static RefMethod finishActivity; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IActivityManagerL.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.content.Intent; 4 | import android.os.IBinder; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefMethod; 8 | import mirror.MethodParams; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class IActivityManagerL { 15 | public static Class TYPE = RefClass.load(IActivityManagerL.class, "android.app.IActivityManager"); 16 | @MethodParams({IBinder.class, int.class, Intent.class, boolean.class}) 17 | public static RefMethod finishActivity; 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IActivityManagerN.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.content.Intent; 4 | import android.os.IBinder; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class IActivityManagerN { 15 | public static Class TYPE = RefClass.load(IActivityManagerN.class, "android.app.IActivityManager"); 16 | @MethodParams({IBinder.class, int.class, Intent.class, int.class}) 17 | public static RefMethod finishActivity; 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IActivityTaskManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IActivityTaskManager { 11 | public static Class TYPE = RefClass.load(IActivityTaskManager.class, "android.app.IActivityTaskManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(IActivityTaskManager.Stub.class, "android.app.IActivityTaskManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IAlarmManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class IAlarmManager { 15 | public static Class TYPE = RefClass.load(IAlarmManager.class, "android.app.IAlarmManager"); 16 | public static class Stub { 17 | public static Class TYPE = RefClass.load(Stub.class, "android.app.IAlarmManager$Stub"); 18 | @MethodParams({IBinder.class}) 19 | public static RefStaticMethod asInterface; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IApplicationThreadJBMR1.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefMethod; 5 | import mirror.MethodReflectParams; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | 11 | public class IApplicationThreadJBMR1 { 12 | public static Class TYPE = RefClass.load(IApplicationThreadJBMR1.class, "android.app.IApplicationThread"); 13 | 14 | @MethodReflectParams({"android.content.Intent", "android.content.pm.ActivityInfo", "android.content.res.CompatibilityInfo", "int", "java.lang.String", "android.os.Bundle", "boolean", "int"}) 15 | public static RefMethod scheduleReceiver; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ISearchManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ISearchManager { 11 | public static Class TYPE = RefClass.load(ISearchManager.class, "android.app.ISearchManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.app.ISearchManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IServiceConnectionO.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.content.ComponentName; 4 | import android.os.IBinder; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefMethod; 9 | 10 | public class IServiceConnectionO { 11 | public static Class TYPE = RefClass.load(IServiceConnectionO.class, "android.app.IServiceConnection"); 12 | 13 | @MethodParams({ComponentName.class, IBinder.class, boolean.class}) 14 | public static RefMethod connected; 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IUsageStatsManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * Created by caokai on 2017/9/8. 12 | */ 13 | 14 | public class IUsageStatsManager { 15 | public static Class TYPE = RefClass.load(IUsageStatsManager.class, "android.app.usage.IUsageStatsManager"); 16 | 17 | public static class Stub { 18 | public static Class TYPE = RefClass.load(IUsageStatsManager.Stub.class, "android.app.usage.IUsageStatsManager$Stub"); 19 | @MethodParams({IBinder.class}) 20 | public static RefStaticMethod asInterface; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/IWallpaperManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IWallpaperManager { 11 | public static Class TYPE = RefClass.load(IWallpaperManager.class, "android.app.IWallpaperManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.app.IWallpaperManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/Instrumentation.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | import android.os.IBinder; 7 | 8 | import mirror.MethodParams; 9 | import mirror.RefClass; 10 | import mirror.RefMethod; 11 | 12 | public class Instrumentation { 13 | public static Class TYPE = RefClass.load(Instrumentation.class, android.app.Instrumentation.class); 14 | 15 | @MethodParams({Context.class, IBinder.class, IBinder.class, Activity.class, 16 | Intent.class, int.class, Bundle.class}) 17 | public static RefMethod execStartActivity; 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/LoadedApkHuaWei.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefObject; 5 | 6 | /** 7 | * @author Lody 8 | */ 9 | 10 | public class LoadedApkHuaWei { 11 | public static Class TYPE = RefClass.load(LoadedApkHuaWei.class, "android.app.LoadedApk"); 12 | public static RefObject mReceiverResource; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/LoadedApkICS.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | public class LoadedApkICS { 8 | public static Class Class = RefClass.load(LoadedApkICS.class, "android.app.LoadedApk"); 9 | public static RefObject mCompatibilityInfo; 10 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/LoadedApkKitkat.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | public class LoadedApkKitkat { 8 | public static Class Class = RefClass.load(LoadedApkKitkat.class, "android.app.LoadedApk"); 9 | public static RefObject mDisplayAdjustments; 10 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/Notification.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.app.PendingIntent; 4 | import android.content.Context; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefMethod; 9 | 10 | public class Notification { 11 | public static Class TYPE = RefClass.load(Notification.class, android.app.Notification.class); 12 | @MethodParams({Context.class, CharSequence.class, CharSequence.class, PendingIntent.class}) 13 | public static RefMethod setLatestEventInfo; 14 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/NotificationChannel.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import java.util.List; 7 | 8 | import mirror.RefClass; 9 | import mirror.RefObject; 10 | 11 | @TargetApi(Build.VERSION_CODES.O) 12 | public class NotificationChannel { 13 | public static Class TYPE = RefClass.load(NotificationChannel.class, android.app.NotificationChannel.class); 14 | 15 | public static RefObject mId; 16 | 17 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/NotificationChannelGroup.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.annotation.TargetApi; 4 | import android.app.NotificationChannel; 5 | import android.os.Build; 6 | 7 | import java.util.List; 8 | 9 | import mirror.RefClass; 10 | import mirror.RefObject; 11 | 12 | @TargetApi(Build.VERSION_CODES.O) 13 | public class NotificationChannelGroup { 14 | public static Class TYPE = RefClass.load(NotificationChannelGroup.class, android.app.NotificationChannelGroup.class); 15 | 16 | public static RefObject mId; 17 | 18 | public static RefObject> mChannels; 19 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/NotificationL.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.app.Notification; 4 | import android.content.Context; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class NotificationL { 11 | public static Class TYPE = RefClass.load(NotificationL.class, Notification.class); 12 | 13 | public static class Builder { 14 | public static Class TYPE = RefClass.load(Builder.class, android.app.Notification.Builder.class); 15 | 16 | @MethodParams({Context.class, Notification.class}) 17 | public static RefStaticMethod rebuild; 18 | } 19 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/NotificationM.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | 4 | import android.app.Notification; 5 | import android.graphics.drawable.Icon; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefObject; 9 | 10 | public class NotificationM { 11 | public static Class TYPE = RefClass.load(NotificationM.class, Notification.class); 12 | public static RefObject mLargeIcon; 13 | public static RefObject mSmallIcon; 14 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/NotificationManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticObject; 7 | import mirror.RefStaticMethod; 8 | 9 | public class NotificationManager { 10 | public static Class TYPE = RefClass.load(NotificationManager.class, "android.app.NotificationManager"); 11 | 12 | public static RefStaticMethod getService; 13 | public static RefStaticObject sService; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/NotificationO.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | 4 | import android.app.Notification; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | 9 | public class NotificationO { 10 | public static Class TYPE = RefClass.load(NotificationO.class, Notification.class); 11 | public static RefObject mChannelId; 12 | public static RefObject mGroupKey; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/PendingIntentJBMR2.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.app.PendingIntent; 4 | import android.content.Intent; 5 | import android.os.IBinder; 6 | 7 | import mirror.MethodParams; 8 | import mirror.RefClass; 9 | import mirror.RefConstructor; 10 | import mirror.RefMethod; 11 | 12 | public class PendingIntentJBMR2 { 13 | public static Class Class = RefClass.load(PendingIntentJBMR2.class, PendingIntent.class); 14 | @MethodParams({IBinder.class}) 15 | public static RefConstructor ctor; 16 | public static RefMethod getIntent; 17 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/PendingIntentO.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.app.PendingIntent; 4 | import android.content.Intent; 5 | import android.os.IBinder; 6 | 7 | import mirror.MethodParams; 8 | import mirror.RefClass; 9 | import mirror.RefConstructor; 10 | import mirror.RefMethod; 11 | 12 | public class PendingIntentO { 13 | public static Class Class = RefClass.load(PendingIntentO.class, PendingIntent.class); 14 | @MethodParams({IBinder.class, Object.class}) 15 | public static RefConstructor ctor; 16 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/Service.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | 4 | import mirror.MethodReflectParams; 5 | import mirror.RefClass; 6 | import mirror.RefMethod; 7 | 8 | public class Service { 9 | public static Class TYPE = RefClass.load(Service.class, android.app.Service.class); 10 | @MethodReflectParams({"android.content.Context", "android.app.ActivityThread", "java.lang.String", "android.os.IBinder", "android.app.Application", "java.lang.Object"}) 11 | public static RefMethod attach; 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/ServiceStartArgs.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.content.Intent; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefBoolean; 7 | import mirror.RefClass; 8 | import mirror.RefConstructor; 9 | import mirror.RefInt; 10 | import mirror.RefObject; 11 | 12 | /** 13 | * @author Lody 14 | */ 15 | public class ServiceStartArgs { 16 | public static Class TYPE = RefClass.load(ServiceStartArgs.class, "android.app.ServiceStartArgs"); 17 | @MethodParams({boolean.class, int.class, int.class, Intent.class}) 18 | public static RefConstructor ctor; 19 | public static RefBoolean taskRemoved; 20 | public static RefInt startId; 21 | public static RefInt flags; 22 | public static RefObject args; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/SharedPreferencesImpl.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import java.io.File; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | 9 | public class SharedPreferencesImpl { 10 | public static Class TYPE = RefClass.load(SharedPreferencesImpl.class, "android.app.SharedPreferencesImpl"); 11 | 12 | @MethodParams({File.class, int.class}) 13 | public static RefConstructor ctor; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/WallpaperManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefObject; 9 | import mirror.RefStaticMethod; 10 | import mirror.RefStaticObject; 11 | 12 | public class WallpaperManager { 13 | public static Class TYPE = RefClass.load(WallpaperManager.class, "android.app.WallpaperManager"); 14 | 15 | public static RefStaticObject sGlobals; 16 | 17 | public static class Globals { 18 | public static Class TYPE = RefClass.load(Globals.class, "android.app.WallpaperManager$Globals"); 19 | public static RefObject mService; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/admin/IDevicePolicyManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.admin; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * Created by wy on 2017/10/20. 12 | */ 13 | 14 | public class IDevicePolicyManager { 15 | public static Class TYPE = RefClass.load(IDevicePolicyManager.class, "android.app.admin.IDevicePolicyManager"); 16 | 17 | public static class Stub { 18 | public static Class TYPE = RefClass.load(Stub.class, "android.app.admin.IDevicePolicyManager$Stub"); 19 | @MethodParams({IBinder.class}) 20 | public static RefStaticMethod asInterface; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/backup/IBackupManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.backup; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IBackupManager { 11 | public static Class TYPE = RefClass.load(IBackupManager.class, "android.app.backup.IBackupManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.app.backup.IBackupManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/job/IJobScheduler.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.job; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IJobScheduler { 11 | public static Class TYPE = RefClass.load(IJobScheduler.class, "android.app.job.IJobScheduler"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.app.job.IJobScheduler$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/job/JobInfo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.job; 2 | 3 | import android.annotation.TargetApi; 4 | import android.content.ComponentName; 5 | import android.os.Build; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefInt; 9 | import mirror.RefLong; 10 | import mirror.RefObject; 11 | 12 | /** 13 | * @author Lody 14 | */ 15 | 16 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 17 | public class JobInfo { 18 | public static Class TYPE = RefClass.load(JobInfo.class, android.app.job.JobInfo.class); 19 | 20 | public static RefInt jobId; 21 | public static RefObject service; 22 | public static RefLong intervalMillis; 23 | public static RefLong flexMillis; 24 | } 25 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/job/JobParameters.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.job; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | import android.os.IBinder; 6 | import android.os.PersistableBundle; 7 | 8 | import mirror.MethodParams; 9 | import mirror.RefClass; 10 | import mirror.RefConstructor; 11 | import mirror.RefInt; 12 | import mirror.RefObject; 13 | 14 | /** 15 | * @author Lody 16 | */ 17 | 18 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 19 | public class JobParameters { 20 | public static Class TYPE = RefClass.load(JobParameters.class, android.app.job.JobParameters.class); 21 | 22 | public static RefObject callback; 23 | public static RefObject extras; 24 | public static RefInt jobId; 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/role/IRoleManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.role; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IRoleManager { 11 | public static Class TYPE = RefClass.load(IRoleManager.class, "android.app.role.IRoleManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(IRoleManager.Stub.class, "android.app.role.IRoleManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/servertransaction/ActivityLifecycleItem.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.servertransaction; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefMethod; 6 | 7 | public class ActivityLifecycleItem { 8 | public static Class TYPE = RefClass.load(ActivityLifecycleItem.class, "android.app.servertransaction.ActivityLifecycleItem"); 9 | public static RefMethod getTargetState; 10 | 11 | public static final int UNDEFINED = -1; 12 | public static final int PRE_ON_CREATE = 0; 13 | public static final int ON_CREATE = 1; 14 | public static final int ON_START = 2; 15 | public static final int ON_RESUME = 3; 16 | public static final int ON_PAUSE = 4; 17 | public static final int ON_STOP = 5; 18 | public static final int ON_DESTROY = 6; 19 | public static final int ON_RESTART = 7; 20 | } 21 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/servertransaction/ActivityResultItem.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.servertransaction; 2 | 3 | import java.util.List; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class ActivityResultItem { 9 | public static Class TYPE = RefClass.load(ActivityResultItem.class, "android.app.servertransaction.ActivityResultItem"); 10 | public static RefObject mResultInfoList; 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/servertransaction/ClientTransaction.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.servertransaction; 2 | 3 | 4 | import android.os.IBinder; 5 | 6 | import java.util.List; 7 | 8 | import mirror.RefClass; 9 | import mirror.RefObject; 10 | 11 | public class ClientTransaction { 12 | public static Class TYPE = RefClass.load(ClientTransaction.class, "android.app.servertransaction.ClientTransaction"); 13 | public static RefObject mActivityToken; 14 | public static RefObject mLifecycleStateRequest; 15 | public static RefObject> mActivityCallbacks; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/servertransaction/LaunchActivityItem.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.servertransaction; 2 | 3 | 4 | import android.content.Intent; 5 | import android.content.pm.ActivityInfo; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefObject; 9 | 10 | public class LaunchActivityItem { 11 | public static Class TYPE = RefClass.load(LaunchActivityItem.class, "android.app.servertransaction.LaunchActivityItem"); 12 | public static RefObject mInfo; 13 | public static RefObject mIntent; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/servertransaction/TopResumedActivityChangeItem.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.servertransaction; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | public class TopResumedActivityChangeItem { 8 | public static Class TYPE = RefClass.load(TopResumedActivityChangeItem.class, "android.app.servertransaction.TopResumedActivityChangeItem"); 9 | public static RefObject mOnTop; 10 | } 11 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/usage/IStorageStatsManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.usage; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | import mirror.android.bluetooth.IBluetoothManager; 10 | 11 | /** 12 | * @author Lody 13 | */ 14 | public class IStorageStatsManager { 15 | public static Class TYPE = RefClass.load(IBluetoothManager.class, "android.app.usage.IStorageStatsManager"); 16 | 17 | public static class Stub { 18 | public static Class TYPE = RefClass.load(IBluetoothManager.Stub.class, "android.app.usage.IStorageStatsManager$Stub"); 19 | @MethodParams({IBinder.class}) 20 | public static RefStaticMethod asInterface; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/app/usage/StorageStats.java: -------------------------------------------------------------------------------- 1 | package mirror.android.app.usage; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefConstructor; 5 | import mirror.RefLong; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | public class StorageStats { 11 | public static Class TYPE = RefClass.load(StorageStats.class, "android.app.usage.StorageStats"); 12 | 13 | public static RefLong codeBytes; 14 | public static RefLong dataBytes; 15 | public static RefLong cacheBytes; 16 | public static RefConstructor ctor; 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/bluetooth/IBluetooth.java: -------------------------------------------------------------------------------- 1 | package mirror.android.bluetooth; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IBluetooth { 11 | /** 12 | * @see android.bluetooth.IBluetooth 13 | * */ 14 | public static Class TYPE = RefClass.load(IBluetooth.class, "android.bluetooth.IBluetooth"); 15 | /** 16 | * @see android.bluetooth.IBluetooth.Stub 17 | * */ 18 | public static class Stub { 19 | public static Class TYPE = RefClass.load(Stub.class, "android.bluetooth.IBluetooth$Stub"); 20 | @MethodParams({IBinder.class}) 21 | public static RefStaticMethod asInterface; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/bluetooth/IBluetoothManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.bluetooth; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IBluetoothManager { 11 | public static Class TYPE = RefClass.load(IBluetoothManager.class, "android.bluetooth.IBluetoothManager"); 12 | public static class Stub { 13 | public static Class TYPE = RefClass.load(Stub.class, "android.bluetooth.IBluetoothManager$Stub"); 14 | @MethodParams({IBinder.class}) 15 | public static RefStaticMethod asInterface; 16 | } 17 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ClipboardManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticObject; 7 | import mirror.RefStaticMethod; 8 | 9 | public class ClipboardManager { 10 | public static Class TYPE = RefClass.load(ClipboardManager.class, android.content.ClipboardManager.class); 11 | public static RefStaticMethod getService; 12 | public static RefStaticObject sService; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ClipboardManagerOreo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | import mirror.RefStaticObject; 8 | 9 | public class ClipboardManagerOreo { 10 | public static Class TYPE = RefClass.load(ClipboardManagerOreo.class, android.content.ClipboardManager.class); 11 | public static RefObject mService; 12 | public static RefStaticObject sService; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentProviderClient.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class ContentProviderClient { 9 | public static Class TYPE = RefClass.load(ContentProviderClient.class, android.content.ContentProviderClient.class); 10 | public static RefObject mContentProvider; 11 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentProviderClientICS.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.content.ContentProviderClient; 4 | 5 | import mirror.MethodReflectParams; 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | 9 | public class ContentProviderClientICS { 10 | public static Class TYPE = RefClass.load(ContentProviderClientICS.class, ContentProviderClient.class); 11 | @MethodReflectParams({"android.content.ContentResolver", "android.content.IContentProvider"}) 12 | public static RefConstructor ctor; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentProviderClientJB.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.content.ContentProviderClient; 4 | 5 | import mirror.MethodReflectParams; 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | 9 | public class ContentProviderClientJB { 10 | public static Class TYPE = RefClass.load(ContentProviderClientJB.class, android.content.ContentProviderClient.class); 11 | @MethodReflectParams({"android.content.ContentResolver", "android.content.IContentProvider", "boolean"}) 12 | public static RefConstructor ctor; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentProviderClientQ.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import mirror.MethodReflectParams; 4 | import mirror.RefClass; 5 | import mirror.RefConstructor; 6 | 7 | public class ContentProviderClientQ { 8 | public static Class TYPE = RefClass.load(ContentProviderClientQ.class, android.content.ContentProviderClient.class); 9 | @MethodReflectParams({"android.content.ContentResolver", "android.content.IContentProvider", "java.lang.String", "boolean"}) 10 | public static RefConstructor ctor; 11 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentProviderHolderOreo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.content.pm.ProviderInfo; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefBoolean; 7 | import mirror.RefClass; 8 | import mirror.RefObject; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class ContentProviderHolderOreo { 15 | public static Class TYPE = RefClass.load(ContentProviderHolderOreo.class, "android.app.ContentProviderHolder"); 16 | public static RefObject info; 17 | public static RefObject provider; 18 | public static RefBoolean noReleaseNeeded; 19 | } 20 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentProviderNative.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ContentProviderNative { 11 | public static Class TYPE = RefClass.load(ContentProviderNative.class, "android.content.ContentProviderNative"); 12 | @MethodParams({IBinder.class}) 13 | public static RefStaticMethod asInterface; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentResolver.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | import mirror.RefStaticObject; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | 13 | public class ContentResolver { 14 | public static Class TYPE = RefClass.load(ContentResolver.class, android.content.ContentResolver.class); 15 | public static RefStaticObject sContentService; 16 | public static RefObject mPackageName; 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/ContentResolverJBMR2.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.content.ContentResolver; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class ContentResolverJBMR2 { 9 | public static Class Class = RefClass.load(ContentResolverJBMR2.class, ContentResolver.class);; 10 | public static RefObject mPackageName; 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IClipboard.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import mirror.RefClass; 4 | 5 | public class IClipboard { 6 | public static Class TYPE = RefClass.load(IClipboard.class, "android.content.IClipboard"); 7 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IContentProvider.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import mirror.RefClass; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | 9 | public class IContentProvider { 10 | public static Class TYPE = RefClass.load(IContentProvider.class, "android.content.IContentProvider"); 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IContentService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class IContentService { 15 | public static Class TYPE = RefClass.load(IContentService.class, "android.content.IContentService"); 16 | 17 | public static class Stub { 18 | public static Class TYPE = RefClass.load(Stub.class, "android.content.IContentService$Stub"); 19 | @MethodParams({IBinder.class}) 20 | public static RefStaticMethod asInterface; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IIntentReceiver.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefMethod; 8 | import mirror.MethodParams; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class IIntentReceiver { 15 | public static Class TYPE = RefClass.load(IIntentReceiver.class, "android.content.IIntentReceiver"); 16 | 17 | @MethodParams({Intent.class, int.class, 18 | String.class, Bundle.class, boolean.class, boolean.class}) 19 | public static RefMethod performReceive; 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IIntentReceiverJB.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefMethod; 8 | import mirror.MethodParams; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class IIntentReceiverJB { 15 | public static Class TYPE = RefClass.load(IIntentReceiverJB.class, "android.content.IIntentReceiver"); 16 | 17 | @MethodParams({Intent.class, int.class, 18 | String.class, Bundle.class, boolean.class, boolean.class, int.class}) 19 | public static RefMethod performReceive; 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IRestrictionsManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IRestrictionsManager { 11 | public static Class TYPE = RefClass.load(IRestrictionsManager.class, "android.content.IRestrictionsManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.content.IRestrictionsManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IntentFilter.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import java.util.List; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | /** 9 | * @author Lody 10 | */ 11 | 12 | public class IntentFilter { 13 | public static Class TYPE = RefClass.load(IntentFilter.class, android.content.IntentFilter.class); 14 | public static RefObject> mActions; 15 | public static RefObject> mCategories; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/IntentSender.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | /** 9 | * @author Lody 10 | */ 11 | public class IntentSender { 12 | public static Class TYPE = RefClass.load(IntentSender.class, android.content.IntentSender.class); 13 | public static RefObject mTarget; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/SyncAdapterType.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | 4 | import mirror.MethodParams; 5 | import mirror.RefClass; 6 | import mirror.RefConstructor; 7 | 8 | public class SyncAdapterType { 9 | public static Class TYPE = RefClass.load(SyncAdapterType.class, android.content.SyncAdapterType.class); 10 | @MethodParams({String.class, String.class, boolean.class, boolean.class, boolean.class, boolean.class, String.class}) 11 | public static RefConstructor ctor; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/SyncAdapterTypeN.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.content.SyncAdapterType; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | 9 | public class SyncAdapterTypeN { 10 | public static Class Class = RefClass.load(SyncAdapterTypeN.class, SyncAdapterType.class); 11 | @MethodParams({String.class, String.class, boolean.class, boolean.class, boolean.class, boolean.class, String.class, String.class}) 12 | public static RefConstructor ctor; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/SyncInfo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | import android.accounts.Account; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | 9 | public class SyncInfo { 10 | public static Class TYPE = RefClass.load(SyncInfo.class, android.content.SyncInfo.class); 11 | @MethodParams({int.class, Account.class, String.class, long.class}) 12 | public static RefConstructor ctor; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/SyncRequest.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content; 2 | 3 | 4 | import android.accounts.Account; 5 | import android.annotation.TargetApi; 6 | import android.os.Build; 7 | import android.os.Bundle; 8 | 9 | import mirror.RefBoolean; 10 | import mirror.RefClass; 11 | import mirror.RefLong; 12 | import mirror.RefObject; 13 | 14 | @TargetApi(Build.VERSION_CODES.KITKAT) 15 | public class SyncRequest { 16 | public static Class TYPE = RefClass.load(SyncRequest.class, android.content.SyncRequest.class); 17 | public static RefObject mAccountToSync; 18 | public static RefObject mAuthority; 19 | public static RefObject mExtras; 20 | public static RefBoolean mIsPeriodic; 21 | public static RefLong mSyncRunTimeSecs; 22 | public static RefLong mSyncFlexTimeSecs; 23 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/ApplicationInfoL.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.content.pm.ApplicationInfo; 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | public class ApplicationInfoL { 8 | public static Class TYPE = RefClass.load(ApplicationInfoL.class, ApplicationInfo.class); 9 | public static RefObject primaryCpuAbi; 10 | public static RefObject scanPublicSourceDir; 11 | public static RefObject scanSourceDir; 12 | public static RefObject secondaryCpuAbi; 13 | public static RefObject secondaryNativeLibraryDir; 14 | public static RefObject splitPublicSourceDirs; 15 | public static RefObject splitSourceDirs; 16 | public static RefObject privateFlags; 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/ApplicationInfoN.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.content.pm.ApplicationInfo; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class ApplicationInfoN { 9 | public static Class TYPE = RefClass.load(ApplicationInfoN.class, ApplicationInfo.class); 10 | public static RefObject deviceProtectedDataDir; 11 | public static RefObject deviceEncryptedDataDir; 12 | public static RefObject credentialProtectedDataDir; 13 | public static RefObject credentialEncryptedDataDir; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/ApplicationInfoP.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.content.pm.ApplicationInfo; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefMethod; 8 | import mirror.RefObject; 9 | 10 | public class ApplicationInfoP { 11 | public static Class TYPE = RefClass.load(ApplicationInfoP.class, ApplicationInfo.class); 12 | @MethodParams(int.class) 13 | public static RefMethod setHiddenApiEnforcementPolicy; 14 | 15 | public static RefObject splitClassLoaderNames; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/ILauncherApps.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticMethod; 7 | 8 | /** 9 | * @author Lody 10 | */ 11 | public class ILauncherApps { 12 | 13 | public static final class Stub { 14 | public static Class TYPE = RefClass.load(ILauncherApps.Stub.class, "android.content.pm.ILauncherApps$Stub"); 15 | public static RefStaticMethod asInterface; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/IShortcutService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | import mirror.android.app.ISearchManager; 10 | 11 | /** 12 | * @author Lody 13 | */ 14 | 15 | public class IShortcutService { 16 | public static Class TYPE = RefClass.load(IShortcutService.class, "android.content.pm.IShortcutService"); 17 | 18 | public static final class Stub { 19 | public static Class TYPE = RefClass.load(Stub.class, "android.content.pm.IShortcutService$Stub"); 20 | 21 | @MethodParams({IBinder.class}) 22 | public static RefStaticMethod asInterface; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/LauncherApps.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.content.pm.PackageManager; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | import mirror.com.android.internal.os.UserManager; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class LauncherApps { 15 | 16 | public static Class TYPE = RefClass.load(LauncherApps.class, "android.content.pm.LauncherApps"); 17 | 18 | public static RefObject mPm; 19 | public static RefObject mService; 20 | public static RefObject mUserManager; 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/PackageParserNougat.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import mirror.MethodReflectParams; 4 | import mirror.RefClass; 5 | import mirror.RefStaticMethod; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | 11 | public class PackageParserNougat { 12 | public static Class TYPE = RefClass.load(PackageParserNougat.class, "android.content.pm.PackageParser"); 13 | @MethodReflectParams({"android.content.pm.PackageParser$Package", "int"}) 14 | public static RefStaticMethod collectCertificates; 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/PackageParserPie.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import mirror.MethodReflectParams; 4 | import mirror.RefClass; 5 | import mirror.RefStaticMethod; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | 11 | public class PackageParserPie { 12 | public static Class TYPE = RefClass.load(PackageParserPie.class, "android.content.pm.PackageParser"); 13 | @MethodReflectParams({"android.content.pm.PackageParser$Package", "boolean"}) 14 | public static RefStaticMethod collectCertificates; 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/PackageUserState.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefConstructor; 5 | 6 | public class PackageUserState { 7 | public static Class TYPE = RefClass.load(PackageUserState.class, "android.content.pm.PackageUserState"); 8 | public static RefConstructor ctor; 9 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/ParceledListSliceJBMR2.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.os.Parcelable; 4 | 5 | import java.util.List; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefConstructor; 9 | import mirror.RefMethod; 10 | import mirror.MethodParams; 11 | import mirror.RefStaticObject; 12 | 13 | /** 14 | * @author Lody 15 | */ 16 | 17 | public class ParceledListSliceJBMR2 { 18 | public static RefStaticObject CREATOR; 19 | public static Class TYPE = RefClass.load(ParceledListSliceJBMR2.class, "android.content.pm.ParceledListSlice"); 20 | @MethodParams({List.class}) 21 | public static RefConstructor ctor; 22 | public static RefMethod getList; 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/SigningInfo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | import android.content.pm.PackageParser; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | /** 9 | * Created by Milk on 4/16/21. 10 | * * ∧_∧ 11 | * (`・ω・∥ 12 | * 丶 つ0 13 | * しーJ 14 | * 此处无Bug 15 | */ 16 | public class SigningInfo { 17 | public static Class TYPE = RefClass.load(UserInfo.class, "android.content.pm.SigningInfo"); 18 | public static RefObject mSigningDetails; 19 | } 20 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/pm/UserInfo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.pm; 2 | 3 | 4 | import mirror.MethodParams; 5 | import mirror.RefClass; 6 | import mirror.RefConstructor; 7 | import mirror.RefStaticInt; 8 | 9 | public class UserInfo { 10 | public static Class TYPE = RefClass.load(UserInfo.class, "android.content.pm.UserInfo"); 11 | public static RefStaticInt FLAG_PRIMARY; 12 | @MethodParams({int.class, String.class, int.class}) 13 | public static RefConstructor ctor; 14 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/res/AssetManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.res; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefConstructor; 5 | import mirror.RefMethod; 6 | import mirror.MethodParams; 7 | 8 | /** 9 | * @author Lody 10 | */ 11 | 12 | public class AssetManager { 13 | public static Class TYPE = RefClass.load(AssetManager.class, android.content.res.AssetManager.class); 14 | public static RefConstructor ctor; 15 | @MethodParams(String.class) 16 | public static RefMethod addAssetPath; 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/content/res/CompatibilityInfo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.content.res; 2 | 3 | import android.content.pm.ApplicationInfo; 4 | import mirror.RefClass; 5 | import mirror.RefConstructor; 6 | import mirror.MethodParams; 7 | import mirror.RefStaticObject; 8 | 9 | public class CompatibilityInfo { 10 | public static Class TYPE = RefClass.load(CompatibilityInfo.class, "android.content.res.CompatibilityInfo"); 11 | @MethodParams({ApplicationInfo.class, int.class, int.class, boolean.class}) 12 | public static RefConstructor ctor; 13 | @MethodParams({ApplicationInfo.class, int.class, int.class, boolean.class, int.class}) 14 | public static RefConstructor ctorLG; 15 | public static RefStaticObject DEFAULT_COMPATIBILITY_INFO; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/ddm/DdmHandleAppName.java: -------------------------------------------------------------------------------- 1 | package mirror.android.ddm; 2 | 3 | import mirror.RefClass; 4 | import mirror.MethodParams; 5 | import mirror.RefStaticMethod; 6 | 7 | public class DdmHandleAppName { 8 | public static Class Class = RefClass.load(DdmHandleAppName.class, "android.ddm.DdmHandleAppName"); 9 | @MethodParams({String.class}) 10 | public static RefStaticMethod setAppName; 11 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/ddm/DdmHandleAppNameJBMR1.java: -------------------------------------------------------------------------------- 1 | package mirror.android.ddm; 2 | 3 | import mirror.RefClass; 4 | import mirror.MethodParams; 5 | import mirror.RefStaticMethod; 6 | 7 | public class DdmHandleAppNameJBMR1 { 8 | public static Class Class = RefClass.load(DdmHandleAppNameJBMR1.class, "android.ddm.DdmHandleAppName"); 9 | @MethodParams({String.class, int.class}) 10 | public static RefStaticMethod setAppName; 11 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/graphics/drawable/Icon.java: -------------------------------------------------------------------------------- 1 | package mirror.android.graphics.drawable; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | 9 | @TargetApi(Build.VERSION_CODES.M) 10 | public class Icon { 11 | public static final int TYPE_BITMAP = 1; 12 | public static final int TYPE_RESOURCE = 2; 13 | public static final int TYPE_DATA = 3; 14 | public static final int TYPE_URI = 4; 15 | 16 | public static Class TYPE = RefClass.load(Icon.class, android.graphics.drawable.Icon.class); 17 | public static RefObject mObj1; 18 | public static RefObject mString1; 19 | public static RefObject mType; 20 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/hardware/display/DisplayManagerGlobal.java: -------------------------------------------------------------------------------- 1 | package mirror.android.hardware.display; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | import mirror.RefStaticMethod; 8 | 9 | public class DisplayManagerGlobal { 10 | public static Class TYPE = RefClass.load(DisplayManagerGlobal.class, "android.hardware.display.DisplayManagerGlobal"); 11 | public static RefStaticMethod getInstance; 12 | public static RefObject mDm; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/hardware/display/IDisplayManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.hardware.display; 2 | 3 | import mirror.RefClass; 4 | 5 | public class IDisplayManager { 6 | public static Class TYPE = RefClass.load(IDisplayManager.class, "android.hardware.display.IDisplayManager"); 7 | } 8 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/hardware/fingerprint/IFingerprintService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.hardware.fingerprint; 2 | 3 | import android.os.*; 4 | 5 | import mirror.*; 6 | 7 | /** 8 | * Created by natsuki on 12/10/2017. 9 | */ 10 | 11 | public class IFingerprintService { 12 | 13 | public static Class TYPE = RefClass.load(IFingerprintService.class, "android.hardware.fingerprint.IFingerprintService"); 14 | 15 | public static class Stub { 16 | public static Class TYPE = RefClass.load(Stub.class, "android.hardware.fingerprint.IFingerprintService$Stub"); 17 | @MethodParams({IBinder.class}) 18 | public static RefStaticMethod asInterface; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/hardware/location/IContextHubService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.hardware.location; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | public class IContextHubService { 14 | public static Class TYPE = RefClass.load(IContextHubService.class, "android.hardware.location.IContextHubService"); 15 | 16 | public static class Stub { 17 | public static Class TYPE = RefClass.load(Stub.class, "android.hardware.location.IContextHubService$Stub"); 18 | @MethodParams({IBinder.class}) 19 | public static RefStaticMethod asInterface; 20 | } 21 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/hardware/usb/IUsbManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.hardware.usb; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IUsbManager { 11 | public static Class TYPE = RefClass.load(IUsbManager.class, "android.hardware.usb.IUsbManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(IUsbManager.Stub.class, "android.hardware.usb.IUsbManager$Stub"); 15 | 16 | @MethodParams({IBinder.class}) 17 | public static RefStaticMethod asInterface; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/hardware/usb/UsbManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.hardware.usb; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefObject; 5 | 6 | public class UsbManager { 7 | public static Class TYPE = RefClass.load(UsbManager.class, android.hardware.usb.UsbManager.class); 8 | 9 | public static RefObject mService; 10 | } 11 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/location/GpsStatus.java: -------------------------------------------------------------------------------- 1 | package mirror.android.location; 2 | 3 | import mirror.MethodParams; 4 | import mirror.RefClass; 5 | import mirror.RefMethod; 6 | 7 | public class GpsStatus { 8 | public static Class TYPE = RefClass.load(GpsStatus.class, android.location.GpsStatus.class); 9 | 10 | @MethodParams({int.class, int[].class, float[].class, float[].class, float[].class, int.class, int.class, int.class}) 11 | public static RefMethod setStatus; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/location/GpsStatusL.java: -------------------------------------------------------------------------------- 1 | package mirror.android.location; 2 | 3 | import mirror.MethodParams; 4 | import mirror.RefClass; 5 | import mirror.RefMethod; 6 | 7 | public class GpsStatusL { 8 | public static Class TYPE = RefClass.load(GpsStatusL.class, android.location.GpsStatus.class); 9 | 10 | @MethodParams({int.class, int[].class, float[].class, float[].class, float[].class, int[].class, int[].class, int[].class}) 11 | public static RefMethod setStatus; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/location/ILocationListener.java: -------------------------------------------------------------------------------- 1 | package mirror.android.location; 2 | 3 | import android.location.Location; 4 | import android.os.IBinder; 5 | import android.os.IInterface; 6 | 7 | import mirror.MethodParams; 8 | import mirror.RefClass; 9 | import mirror.RefMethod; 10 | import mirror.RefStaticMethod; 11 | 12 | 13 | /** 14 | * @author legency 15 | */ 16 | public class ILocationListener { 17 | public static Class TYPE = RefClass.load(ILocationListener.class, "android.location.ILocationListener"); 18 | public static class Stub { 19 | public static Class TYPE = RefClass.load(Stub.class, "android.location.ILocationListener$Stub"); 20 | @MethodParams({IBinder.class}) 21 | public static RefStaticMethod asInterface; 22 | } 23 | @MethodParams(Location.class) 24 | public static RefMethod onLocationChanged; 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/location/ILocationManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.location; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ILocationManager { 11 | public static Class TYPE = RefClass.load(ILocationManager.class, "android.location.ILocationManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.location.ILocationManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/location/LocationManagerQ.java: -------------------------------------------------------------------------------- 1 | package mirror.android.location; 2 | 3 | import android.util.ArrayMap; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class LocationManagerQ { 9 | public static Class TYPE = RefClass.load(LocationManagerQ.class, "android.location.LocationManager"); 10 | public static RefObject mGnssNmeaListeners; 11 | public static RefObject mGnssStatusListeners; 12 | public static RefObject mGpsNmeaListeners; 13 | public static RefObject mGpsStatusListeners; 14 | public static RefObject mListeners; 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/location/LocationRequestL.java: -------------------------------------------------------------------------------- 1 | package mirror.android.location; 2 | 3 | import mirror.RefBoolean; 4 | import mirror.RefClass; 5 | import mirror.RefMethod; 6 | import mirror.RefObject; 7 | 8 | public class LocationRequestL { 9 | public static Class TYPE = RefClass.load(LocationRequestL.class, "android.location.LocationRequest"); 10 | public static RefBoolean mHideFromAppOps; 11 | public static RefObject mWorkSource; 12 | public static RefObject mProvider; 13 | public static RefMethod getProvider; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/media/AudioManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.media; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticObject; 7 | import mirror.RefStaticMethod; 8 | 9 | public class AudioManager { 10 | public static Class TYPE = RefClass.load(AudioManager.class, android.media.AudioManager.class); 11 | public static RefStaticMethod getService; 12 | public static RefStaticObject sService; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/media/IAudioService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.media; 2 | import android.os.IBinder; 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.MethodParams; 7 | import mirror.RefStaticMethod; 8 | 9 | public class IAudioService { 10 | public static Class TYPE = RefClass.load(IAudioService.class, "android.media.IAudioService"); 11 | 12 | public static class Stub { 13 | public static Class TYPE = RefClass.load(Stub.class, "android.media.IAudioService$Stub"); 14 | @MethodParams({IBinder.class}) 15 | public static RefStaticMethod asInterface; 16 | } 17 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/media/IMediaRouterService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.media; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IMediaRouterService { 11 | public static Class TYPE = RefClass.load(IMediaRouterService.class, "android.media.IMediaRouterService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.media.IMediaRouterService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/media/MediaRouter.java: -------------------------------------------------------------------------------- 1 | package mirror.android.media; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | import mirror.RefStaticObject; 8 | 9 | public class MediaRouter { 10 | public static Class TYPE = RefClass.load(MediaRouter.class, android.media.MediaRouter.class); 11 | public static RefStaticObject sStatic; 12 | 13 | public static class Static { 14 | public static Class TYPE = RefClass.load(Static.class, "android.media.MediaRouter$Static"); 15 | public static RefObject mAudioService; 16 | } 17 | 18 | public static class StaticKitkat { 19 | public static Class TYPE = RefClass.load(StaticKitkat.class, "android.media.MediaRouter$Static"); 20 | public static RefObject mMediaRouterService; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/media/session/ISessionManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.media.session; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ISessionManager { 11 | public static Class TYPE = RefClass.load(ISessionManager.class, "android.media.session.ISessionManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.media.session.ISessionManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/net/IConnectivityManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.net; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | 11 | /** 12 | * @author Junelegency 13 | * 14 | */ 15 | public class IConnectivityManager { 16 | public static Class TYPE = RefClass.load(IConnectivityManager.class, "android.net.IConnectivityManager"); 17 | 18 | public static class Stub { 19 | public static Class TYPE = RefClass.load(Stub.class, "android.net.IConnectivityManager$Stub"); 20 | @MethodParams({IBinder.class}) 21 | public static RefStaticMethod asInterface; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/net/wifi/IWifiManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.net.wifi; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IWifiManager { 11 | public static Class TYPE = RefClass.load(IWifiManager.class, "android.net.wifi.IWifiManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.net.wifi.IWifiManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/net/wifi/WifiManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.net.wifi; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | import mirror.RefStaticObject; 8 | 9 | public class WifiManager { 10 | public static Class TYPE = RefClass.load(WifiManager.class, android.net.wifi.WifiManager.class); 11 | public static RefObject mService; 12 | public static RefStaticObject sService; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/net/wifi/WifiScanner.java: -------------------------------------------------------------------------------- 1 | package mirror.android.net.wifi; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefStaticObject; 5 | 6 | public final class WifiScanner { 7 | public static Class Class; 8 | public static RefStaticObject GET_AVAILABLE_CHANNELS_EXTRA; 9 | 10 | static { 11 | RefClass.load(WifiScanner.class, "android.net.wifi.WifiScanner"); 12 | } 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/net/wifi/WifiSsid.java: -------------------------------------------------------------------------------- 1 | package mirror.android.net.wifi; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | @TargetApi(Build.VERSION_CODES.KITKAT) 14 | public class WifiSsid { 15 | public static final Class TYPE = RefClass.load(WifiSsid.class, "android.net.wifi.WifiSsid"); 16 | public static RefStaticMethod createFromAsciiEncoded; 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/nfc/INfcAdapter.java: -------------------------------------------------------------------------------- 1 | package mirror.android.nfc; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class INfcAdapter { 11 | public static Class TYPE = RefClass.load(INfcAdapter.class, "android.nfc.INfcAdapter"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(INfcAdapter.Stub.class, "android.nfc.INfcAdapter$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/BaseBundle.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.Parcel; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | 9 | public class BaseBundle { 10 | public static Class TYPE = RefClass.load(BaseBundle.class, "android.os.BaseBundle"); 11 | public static RefObject mParcelledData; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/Build.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefStaticObject; 6 | 7 | public class Build { 8 | public static Class TYPE = RefClass.load(Build.class, android.os.Build.class); 9 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/Bundle.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.IBinder; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefMethod; 7 | import mirror.MethodParams; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | 13 | public class Bundle { 14 | public static Class TYPE = RefClass.load(Bundle.class, android.os.Bundle.class); 15 | 16 | @MethodParams({String.class, IBinder.class}) 17 | public static RefMethod putIBinder; 18 | 19 | @MethodParams({String.class}) 20 | public static RefMethod getIBinder; 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/BundleICS.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.Parcel; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | 9 | public class BundleICS { 10 | public static Class TYPE = RefClass.load(BundleICS.class, "android.os.Bundle"); 11 | public static RefObject mParcelledData; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/DropBoxManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class DropBoxManager { 9 | public static Class TYPE = RefClass.load(DropBoxManager.class, android.os.DropBoxManager.class); 10 | public static RefObject mService; 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/Handler.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | public class Handler { 8 | public static Class TYPE = RefClass.load(Handler.class, "android.os.Handler"); 9 | public static RefObject mCallback; 10 | } 11 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/IDeviceIdentifiersPolicyService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IDeviceIdentifiersPolicyService { 11 | public static Class TYPE = RefClass.load(IDeviceIdentifiersPolicyService.class, "android.os.IDeviceIdentifiersPolicyService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.os.IDeviceIdentifiersPolicyService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/INetworkManagementService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class INetworkManagementService { 11 | public static Class TYPE = RefClass.load(INetworkManagementService.class, "android.os.INetworkManagementService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.os.INetworkManagementService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/IPowerManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class IPowerManager { 15 | public static Class TYPE = RefClass.load(IPowerManager.class, "android.os.IPowerManager"); 16 | 17 | public static class Stub { 18 | public static Class TYPE = RefClass.load(Stub.class, "android.os.IPowerManager$Stub"); 19 | @MethodParams({IBinder.class}) 20 | public static RefStaticMethod asInterface; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/IUserManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IUserManager { 11 | public static Class TYPE = RefClass.load(IUserManager.class, "android.os.IUserManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.os.IUserManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/MemoryFile.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import java.io.FileDescriptor; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefMethod; 7 | 8 | /** 9 | * @author Lody 10 | */ 11 | public class MemoryFile { 12 | 13 | public static Class TYPE = RefClass.load(MemoryFile.class, android.os.MemoryFile.class); 14 | 15 | public static RefMethod getFileDescriptor; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/Message.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import mirror.MethodParams; 4 | import mirror.RefClass; 5 | import mirror.RefMethod; 6 | import mirror.RefStaticMethod; 7 | 8 | public class Message { 9 | public static Class TYPE = RefClass.load(Message.class, android.os.Message.class); 10 | @MethodParams({int.class}) 11 | public static RefStaticMethod updateCheckRecycle; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/Parcel.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefStaticInt; 5 | 6 | public class Parcel { 7 | public static Class TYPE = RefClass.load(Parcel.class, android.os.Parcel.class); 8 | 9 | public static RefStaticInt VAL_PARCELABLE; 10 | 11 | public static RefStaticInt VAL_PARCELABLEARRAY; 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/Process.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import mirror.RefClass; 4 | import mirror.MethodParams; 5 | import mirror.RefStaticMethod; 6 | 7 | public class Process { 8 | public static Class TYPE = RefClass.load(Process.class, android.os.Process.class); 9 | @MethodParams({String.class}) 10 | public static RefStaticMethod setArgV0; 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/ServiceManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import java.util.Map; 7 | 8 | import mirror.RefClass; 9 | import mirror.MethodParams; 10 | import mirror.RefStaticObject; 11 | import mirror.RefStaticMethod; 12 | 13 | public class ServiceManager { 14 | public static Class TYPE = RefClass.load(ServiceManager.class, "android.os.ServiceManager"); 15 | @MethodParams({String.class, IBinder.class}) 16 | public static RefStaticMethod addService; 17 | public static RefStaticMethod checkService; 18 | public static RefStaticMethod getIServiceManager; 19 | public static RefStaticMethod getService; 20 | public static RefStaticMethod listServices; 21 | public static RefStaticObject> sCache; 22 | public static RefStaticObject sServiceManager; 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/StrictMode.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefStaticInt; 6 | import mirror.RefStaticMethod; 7 | 8 | public class StrictMode { 9 | public static Class TYPE = RefClass.load(StrictMode.class, "android.os.StrictMode"); 10 | public static RefStaticInt sVmPolicyMask; 11 | 12 | public static RefStaticInt DETECT_VM_FILE_URI_EXPOSURE; 13 | 14 | public static RefStaticInt PENALTY_DEATH_ON_FILE_URI_EXPOSURE; 15 | 16 | public static RefStaticMethod disableDeathOnFileUriExposure; 17 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/health/SystemHealthManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os.health; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | import android.os.IInterface; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefObject; 9 | 10 | @TargetApi(Build.VERSION_CODES.N) 11 | public class SystemHealthManager { 12 | public static Class TYPE = RefClass.load(SystemHealthManager.class, android.os.health.SystemHealthManager.class); 13 | public static RefObject mBatteryStats; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/mount/IMountService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os.mount; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IMountService { 11 | public static Class TYPE = RefClass.load(IMountService.class, "android.os.storage.IMountService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.os.storage.IMountService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/storage/IStorageManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os.storage; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IStorageManager { 11 | public static Class Class = RefClass.load(IStorageManager.class, "android.os.storage.IStorageManager"); 12 | 13 | public static class Stub { 14 | public static Class Class = RefClass.load(Stub.class, "android.os.storage.IStorageManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/storage/StorageManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os.storage; 2 | 3 | import android.os.storage.StorageVolume; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefStaticMethod; 8 | 9 | /** 10 | * Created by Milk on 4/10/21. 11 | * * ∧_∧ 12 | * (`・ω・∥ 13 | * 丶 つ0 14 | * しーJ 15 | * 此处无Bug 16 | */ 17 | public class StorageManager { 18 | public static Class TYPE = RefClass.load(StorageManager.class, "android.os.storage.StorageManager"); 19 | @MethodParams({int.class, int.class}) 20 | public static RefStaticMethod getVolumeList; 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/os/storage/StorageVolume.java: -------------------------------------------------------------------------------- 1 | package mirror.android.os.storage; 2 | 3 | import java.io.File; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | /** 9 | * Created by Milk on 4/10/21. 10 | * * ∧_∧ 11 | * (`・ω・∥ 12 | * 丶 つ0 13 | * しーJ 14 | * 此处无Bug 15 | */ 16 | public class StorageVolume { 17 | public static Class TYPE = RefClass.load(StorageVolume.class, "android.os.storage.StorageVolume"); 18 | public static RefObject mPath; 19 | public static RefObject mInternalPath; 20 | } 21 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/renderscript/RenderScriptCacheDir.java: -------------------------------------------------------------------------------- 1 | package mirror.android.renderscript; 2 | 3 | 4 | import java.io.File; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class RenderScriptCacheDir { 11 | public static Class TYPE = RefClass.load(RenderScriptCacheDir.class, "android.renderscript.RenderScriptCacheDir"); 12 | @MethodParams({File.class}) 13 | public static RefStaticMethod setupDiskCache; 14 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/rms/HwSysResImplP.java: -------------------------------------------------------------------------------- 1 | package mirror.android.rms; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Map; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | 9 | public class HwSysResImplP { 10 | public static Class TYPE = RefClass.load(HwSysResImplP.class, "android.rms.HwSysResImpl"); 11 | public static RefObject>> mWhiteListMap; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/rms/resource/ReceiverResourceLP.java: -------------------------------------------------------------------------------- 1 | package mirror.android.rms.resource; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | public class ReceiverResourceLP { 8 | public static Class TYPE = RefClass.load(ReceiverResourceLP.class, "android.rms.resource.ReceiverResource"); 9 | public static RefObject mResourceConfig; 10 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/rms/resource/ReceiverResourceM.java: -------------------------------------------------------------------------------- 1 | package mirror.android.rms.resource; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | public class ReceiverResourceM { 8 | public static Class TYPE = RefClass.load(ReceiverResourceM.class, "android.rms.resource.ReceiverResource"); 9 | public static RefObject mWhiteList; 10 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/rms/resource/ReceiverResourceN.java: -------------------------------------------------------------------------------- 1 | package mirror.android.rms.resource; 2 | 3 | 4 | import java.util.List; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | 9 | public class ReceiverResourceN { 10 | public static Class TYPE = RefClass.load(ReceiverResourceN.class, "android.rms.resource.ReceiverResource"); 11 | public static RefObject> mWhiteList; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/rms/resource/ReceiverResourceO.java: -------------------------------------------------------------------------------- 1 | package mirror.android.rms.resource; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | 9 | public class ReceiverResourceO { 10 | public static Class TYPE = RefClass.load(ReceiverResourceO.class, "android.rms.resource.ReceiverResource"); 11 | public static RefObject>> mWhiteListMap; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/security/net/config/NetworkSecurityConfigProvider.java: -------------------------------------------------------------------------------- 1 | package mirror.android.security.net.config; 2 | 3 | import android.content.Context; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefStaticMethod; 8 | 9 | public class NetworkSecurityConfigProvider { 10 | public static Class TYPE = RefClass.load(NetworkSecurityConfigProvider.class, "android.security.net.config.NetworkSecurityConfigProvider"); 11 | 12 | @MethodParams({Context.class}) 13 | public static RefStaticMethod install; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/service/notification/StatusBarNotification.java: -------------------------------------------------------------------------------- 1 | package mirror.android.service.notification; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | 9 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) 10 | public class StatusBarNotification { 11 | public static Class TYPE = RefClass.load(StatusBarNotification.class, android.service.notification.StatusBarNotification.class); 12 | public static RefObject id; 13 | public static RefObject pkg; 14 | public static RefObject tag; 15 | public static RefObject opPkg; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/service/persistentdata/IPersistentDataBlockService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.service.persistentdata; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IPersistentDataBlockService { 11 | public static Class TYPE = RefClass.load(IPersistentDataBlockService.class, "android.service.persistentdata.IPersistentDataBlockService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.service.persistentdata.IPersistentDataBlockService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/CellIdentityCdma.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | import mirror.RefInt; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 15 | public class CellIdentityCdma { 16 | public static Class TYPE = RefClass.load(CellIdentityCdma.class, android.telephony.CellIdentityCdma.class); 17 | public static RefConstructor ctor; 18 | public static RefInt mNetworkId; 19 | public static RefInt mSystemId; 20 | public static RefInt mBasestationId; 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/CellIdentityGsm.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | import mirror.RefInt; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 15 | public class CellIdentityGsm { 16 | public static Class TYPE = RefClass.load(CellIdentityGsm.class, android.telephony.CellIdentityGsm.class); 17 | public static RefConstructor ctor; 18 | public static RefInt mMcc; 19 | public static RefInt mMnc; 20 | public static RefInt mLac; 21 | public static RefInt mCid; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/CellInfoCdma.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | import android.telephony.CellSignalStrengthCdma; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefConstructor; 9 | import mirror.RefObject; 10 | 11 | /** 12 | * @author Lody 13 | */ 14 | 15 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 16 | public class CellInfoCdma { 17 | public static Class TYPE = RefClass.load(CellInfoCdma.class, android.telephony.CellInfoCdma.class); 18 | public static RefConstructor ctor; 19 | public static RefObject mCellIdentityCdma; 20 | public static RefObject mCellSignalStrengthCdma; 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/CellInfoGsm.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | import mirror.RefObject; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 15 | public class CellInfoGsm { 16 | public static Class TYPE = RefClass.load(CellInfoGsm.class, android.telephony.CellInfoGsm.class); 17 | public static RefConstructor ctor; 18 | public static RefObject mCellIdentityGsm; 19 | public static RefObject mCellSignalStrengthGsm; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/CellSignalStrengthCdma.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | import mirror.RefInt; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 15 | public class CellSignalStrengthCdma { 16 | public static Class TYPE = RefClass.load(CellSignalStrengthCdma.class, android.telephony.CellSignalStrengthCdma.class); 17 | public static RefConstructor ctor; 18 | public static RefInt mCdmaDbm; 19 | public static RefInt mCdmaEcio; 20 | public static RefInt mEvdoDbm; 21 | public static RefInt mEvdoEcio; 22 | public static RefInt mEvdoSnr; 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/CellSignalStrengthGsm.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import android.annotation.TargetApi; 4 | import android.os.Build; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefConstructor; 8 | import mirror.RefInt; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 15 | public class CellSignalStrengthGsm { 16 | public static Class TYPE = RefClass.load(CellSignalStrengthGsm.class, android.telephony.CellSignalStrengthGsm.class); 17 | public static RefConstructor ctor; 18 | public static RefInt mSignalStrength; 19 | public static RefInt mBitErrorRate; 20 | } 21 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/NeighboringCellInfo.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefInt; 5 | 6 | /** 7 | * @author Lody 8 | */ 9 | 10 | public class NeighboringCellInfo { 11 | public static Class TYPE = RefClass.load(NeighboringCellInfo.class, android.telephony.NeighboringCellInfo.class); 12 | public static RefInt mLac; 13 | public static RefInt mCid; 14 | public static RefInt mRssi; 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/telephony/SmsManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.telephony; 2 | 3 | import mirror.MethodParams; 4 | import mirror.RefClass; 5 | import mirror.RefMethod; 6 | 7 | public class SmsManager { 8 | public static Class TYPE = RefClass.load(SmsManager.class, android.telephony.SmsManager.class); 9 | @MethodParams(boolean.class) 10 | public static RefMethod setAutoPersisting; 11 | public static RefMethod getAutoPersisting; 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/util/Singleton.java: -------------------------------------------------------------------------------- 1 | package mirror.android.util; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | import mirror.RefMethod; 7 | 8 | public class Singleton { 9 | public static Class TYPE = RefClass.load(Singleton.class, "android.util.Singleton"); 10 | public static RefMethod get; 11 | public static RefObject mInstance; 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/CompatibilityInfoHolder.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | 4 | import mirror.MethodReflectParams; 5 | import mirror.RefClass; 6 | import mirror.RefMethod; 7 | 8 | public class CompatibilityInfoHolder { 9 | public static Class Class = RefClass.load(CompatibilityInfoHolder.class, "android.view.CompatibilityInfoHolder"); 10 | @MethodReflectParams({"android.content.res.CompatibilityInfo"}) 11 | public static RefMethod set; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/Display.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticObject; 7 | 8 | public class Display { 9 | public static Class TYPE = RefClass.load(Display.class, android.view.Display.class); 10 | public static RefStaticObject sWindowManager; 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/DisplayAdjustments.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | 4 | import mirror.MethodReflectParams; 5 | import mirror.RefClass; 6 | import mirror.RefMethod; 7 | 8 | public class DisplayAdjustments { 9 | public static Class Class = RefClass.load(DisplayAdjustments.class, "android.view.DisplayAdjustments"); 10 | @MethodReflectParams({"android.content.res.CompatibilityInfo"}) 11 | public static RefMethod setCompatibilityInfo; 12 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/HardwareRenderer.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | 4 | import java.io.File; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class HardwareRenderer { 11 | public static Class TYPE = RefClass.load(HardwareRenderer.class, "android.view.HardwareRenderer"); 12 | @MethodParams({File.class}) 13 | public static RefStaticMethod setupDiskCache; 14 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/IAutoFillManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author 陈磊. 12 | */ 13 | 14 | public class IAutoFillManager { 15 | 16 | public static Class TYPE = RefClass.load(IAutoFillManager.class, "android.view.autofill.IAutoFillManager"); 17 | 18 | public static class Stub { 19 | public static Class TYPE = RefClass.load(Stub.class, "android.view.autofill.IAutoFillManager$Stub"); 20 | @MethodParams(IBinder.class) 21 | public static RefStaticMethod asInterface; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/IGraphicsStats.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IGraphicsStats { 11 | public static Class TYPE = RefClass.load(IGraphicsStats.class, "android.view.IGraphicsStats"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.view.IGraphicsStats$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/IWindowManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IWindowManager { 11 | public static Class TYPE = RefClass.load(IWindowManager.class, "android.view.IWindowManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.view.IWindowManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/RenderScript.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | import java.io.File; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefStaticMethod; 8 | 9 | public class RenderScript { 10 | public static Class TYPE = RefClass.load(RenderScript.class, android.renderscript.RenderScript.class); 11 | @MethodParams({File.class}) 12 | public static RefStaticMethod setupDiskCache; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/SurfaceControl.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import mirror.MethodParams; 6 | import mirror.RefClass; 7 | import mirror.RefStaticMethod; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | 13 | public class SurfaceControl { 14 | 15 | public static Class TYPE = RefClass.load(SurfaceControl.class, "android.view.SurfaceControl"); 16 | 17 | @MethodParams({int.class/*width*/, int.class/*height*/}) 18 | public static RefStaticMethod screnshot; 19 | } 20 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/ThreadedRenderer.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | 4 | import java.io.File; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ThreadedRenderer { 11 | public static Class TYPE = RefClass.load(ThreadedRenderer.class, "android.view.ThreadedRenderer"); 12 | @MethodParams({File.class}) 13 | public static RefStaticMethod setupDiskCache; 14 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/WindowManagerGlobal.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticInt; 7 | import mirror.RefStaticObject; 8 | 9 | public class WindowManagerGlobal { 10 | public static Class TYPE = RefClass.load(WindowManagerGlobal.class, "android.view.WindowManagerGlobal"); 11 | public static RefStaticObject sWindowManagerService; 12 | public static RefStaticInt ADD_PERMISSION_DENIED; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/view/accessibility/IAccessibilityManager.java: -------------------------------------------------------------------------------- 1 | package mirror.android.view.accessibility; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | public class IAccessibilityManager { 14 | public static Class TYPE = RefClass.load(IAccessibilityManager.class, "android.view.accessibility.IAccessibilityManager"); 15 | 16 | public static class Stub { 17 | public static Class TYPE = RefClass.load(IAccessibilityManager.Stub.class, "android.view.accessibility.IAccessibilityManager$Stub"); 18 | @MethodParams({IBinder.class}) 19 | public static RefStaticMethod asInterface; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/webkit/IWebViewUpdateService.java: -------------------------------------------------------------------------------- 1 | package mirror.android.webkit; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefMethod; 5 | 6 | /** 7 | * @author CodeHz 8 | */ 9 | 10 | public class IWebViewUpdateService { 11 | public static Class TYPE = RefClass.load(IWebViewUpdateService.class, "android.webkit.IWebViewUpdateService"); 12 | 13 | public static RefMethod getCurrentWebViewPackageName; 14 | public static RefMethod waitForAndGetProvider; 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/webkit/WebViewFactory.java: -------------------------------------------------------------------------------- 1 | package mirror.android.webkit; 2 | 3 | import mirror.RefBoolean; 4 | import mirror.RefClass; 5 | import mirror.RefStaticMethod; 6 | import mirror.RefStaticObject; 7 | 8 | /** 9 | * @author CodeHz 10 | */ 11 | 12 | public class WebViewFactory { 13 | public static Class TYPE = RefClass.load(WebViewFactory.class, "android.webkit.WebViewFactory"); 14 | public static RefStaticMethod getUpdateService; 15 | public static RefStaticObject sWebViewSupported; 16 | } 17 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/widget/RemoteViews.java: -------------------------------------------------------------------------------- 1 | package mirror.android.widget; 2 | 3 | import android.content.pm.ApplicationInfo; 4 | 5 | import java.util.ArrayList; 6 | 7 | import mirror.RefClass; 8 | import mirror.RefObject; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class RemoteViews { 15 | public static Class TYPE = RefClass.load(RemoteViews.class, android.widget.RemoteViews.class); 16 | public static RefObject mApplication; 17 | public static RefObject> mActions; 18 | public static RefObject mPackage; 19 | } 20 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/android/widget/Toast.java: -------------------------------------------------------------------------------- 1 | package mirror.android.widget; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticObject; 7 | 8 | public class Toast { 9 | public static Class TYPE = RefClass.load(Toast.class, android.widget.Toast.class); 10 | 11 | public static RefStaticObject sService; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/app/IAppOpsService.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IAppOpsService { 11 | public static Class TYPE = RefClass.load(IAppOpsService.class, "com.android.internal.app.IAppOpsService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.app.IAppOpsService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/app/IBatteryStats.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IBatteryStats { 11 | public static Class TYPE = RefClass.load(IBatteryStats.class, "com.android.internal.app.IBatteryStats"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(IBatteryStats.Stub.class, "com.android.internal.app.IBatteryStats$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/app/ISmtOpsService.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.app; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ISmtOpsService { 11 | public static Class TYPE = RefClass.load(ISmtOpsService.class, "com.android.internal.app.ISmtOpsService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.app.ISmtOpsService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/appwidget/IAppWidgetService.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.appwidget; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IAppWidgetService { 11 | public static Class TYPE = RefClass.load(IAppWidgetService.class, "com.android.internal.appwidget.IAppWidgetService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.appwidget.IAppWidgetService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/content/ReferrerIntent.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.content; 2 | 3 | import android.content.Intent; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefConstructor; 7 | import mirror.MethodParams; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | 13 | public class ReferrerIntent { 14 | public static Class TYPE = RefClass.load(ReferrerIntent.class, "com.android.internal.content.ReferrerIntent"); 15 | @MethodParams({Intent.class, String.class}) 16 | public static RefConstructor ctor; 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/os/IDropBoxManagerService.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IDropBoxManagerService { 11 | public static Class TYPE = RefClass.load(IDropBoxManagerService.class, "com.android.internal.os.IDropBoxManagerService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.os.IDropBoxManagerService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/os/IVibratorService.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IVibratorService { 11 | public static Class TYPE = RefClass.load(IVibratorService.class, "android.os.IVibratorService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.os.IVibratorService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/os/UserManager.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.os; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class UserManager { 11 | public static Class TYPE = RefClass.load(UserManager.class, "android.os.UserManager"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "android.os.IUserManager$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/policy/PhoneWindow.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.policy; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefStaticObject; 7 | 8 | public class PhoneWindow { 9 | public static Class TYPE; 10 | public static RefStaticObject sWindowManager; 11 | 12 | static { 13 | TYPE = RefClass.load(PhoneWindow.class, "com.android.internal.policy.impl.PhoneWindow$WindowManagerHolder"); 14 | if (TYPE == null) { 15 | TYPE = RefClass.load(PhoneWindow.class, "com.android.internal.policy.PhoneWindow$WindowManagerHolder"); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telecom/ITelecomService.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telecom; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ITelecomService { 11 | public static Class TYPE = RefClass.load(ITelecomService.class, "com.android.internal.telecom.ITelecomService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(ITelecomService.Stub.class, "com.android.internal.telecom.ITelecomService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/IHwTelephony.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import mirror.RefClass; 4 | 5 | 6 | public class IHwTelephony { 7 | public static Class TYPE = RefClass.load(ITelephony.class, "com.android.internal.telephony.IHwTelephony"); 8 | 9 | public static class Stub { 10 | public static Class TYPE = RefClass.load(ITelephony.Stub.class, "com.android.internal.telephony.IHwTelephony$Stub"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/IMms.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IMms { 11 | public static Class TYPE = RefClass.load(IMms.class, "com.android.internal.telephony.IMms"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.telephony.IMms$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/IPhoneSubInfo.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IPhoneSubInfo { 11 | public static Class TYPE = RefClass.load(IPhoneSubInfo.class, "com.android.internal.telephony.IPhoneSubInfo"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.telephony.IPhoneSubInfo$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/ISms.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ISms { 11 | public static Class TYPE = RefClass.load(ISms.class, "com.android.internal.telephony.ISms"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.telephony.ISms$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/ISub.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | /** 11 | * @author Lody 12 | */ 13 | 14 | public class ISub { 15 | public static Class TYPE = RefClass.load(ISub.class, "com.android.internal.telephony.ISub"); 16 | 17 | public static class Stub { 18 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.telephony.ISub$Stub"); 19 | @MethodParams({IBinder.class}) 20 | public static RefStaticMethod asInterface; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/ITelephony.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.RefClass; 7 | import mirror.MethodParams; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ITelephony { 11 | public static Class TYPE = RefClass.load(ITelephony.class, "com.android.internal.telephony.ITelephony"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(Stub.class, "com.android.internal.telephony.ITelephony$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/ITelephonyRegistry.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class ITelephonyRegistry { 11 | public static Class TYPE = RefClass.load(ITelephonyRegistry.class, "com.android.internal.telephony.ITelephonyRegistry"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(ITelephonyRegistry.Stub.class, "com.android.internal.telephony.ITelephonyRegistry$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/telephony/PhoneConstantsMtk.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.telephony; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefStaticInt; 5 | 6 | public class PhoneConstantsMtk { 7 | public static Class TYPE = RefClass.load(PhoneConstantsMtk.class, "com.android.internal.telephony.PhoneConstants"); 8 | public static RefStaticInt GEMINI_SIM_NUM; 9 | } 10 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/view/IInputMethodManager.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.view; 2 | 3 | import mirror.RefClass; 4 | 5 | public class IInputMethodManager { 6 | public static Class TYPE = RefClass.load(IInputMethodManager.class, "com.android.internal.view.IInputMethodManager"); 7 | } 8 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/com/android/internal/view/inputmethod/InputMethodManager.java: -------------------------------------------------------------------------------- 1 | package mirror.com.android.internal.view.inputmethod; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class InputMethodManager { 9 | public static Class TYPE = RefClass.load(InputMethodManager.class, android.view.inputmethod.InputMethodManager.class); 10 | public static RefObject mService; 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/dalvik/system/VMRuntime.java: -------------------------------------------------------------------------------- 1 | package mirror.dalvik.system; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefMethod; 5 | import mirror.MethodParams; 6 | import mirror.RefStaticMethod; 7 | 8 | /** 9 | * @author Lody 10 | */ 11 | 12 | public class VMRuntime { 13 | public static Class TYPE = RefClass.load(VMRuntime.class, "dalvik.system.VMRuntime"); 14 | public static RefStaticMethod getRuntime; 15 | @MethodParams({int.class}) 16 | public static RefMethod setTargetSdkVersion; 17 | public static RefMethod is64Bit; 18 | @MethodParams({String.class}) 19 | public static RefStaticMethod is64BitAbi; 20 | public static RefStaticMethod getCurrentInstructionSet; 21 | 22 | public static RefMethod isJavaDebuggable; 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/java/io/File.java: -------------------------------------------------------------------------------- 1 | package mirror.java.io; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefStaticObject; 5 | 6 | /** 7 | * Created by Milk on 4/9/21. 8 | * * ∧_∧ 9 | * (`・ω・∥ 10 | * 丶 つ0 11 | * しーJ 12 | * 此处无Bug 13 | */ 14 | public class File { 15 | public static Class TYPE = RefClass.load(mirror.java.io.File.class, "java.io.File"); 16 | public static RefStaticObject fs; 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/java/io/FileSystem.java: -------------------------------------------------------------------------------- 1 | package mirror.java.io; 2 | 3 | import mirror.RefClass; 4 | 5 | /** 6 | * Created by Milk on 4/9/21. 7 | * * ∧_∧ 8 | * (`・ω・∥ 9 | * 丶 つ0 10 | * しーJ 11 | * 此处无Bug 12 | */ 13 | public class FileSystem { 14 | public static Class TYPE = RefClass.load(mirror.java.io.FileSystem.class, "java.io.FileSystem"); 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/java/io/UnixFileSystem.java: -------------------------------------------------------------------------------- 1 | package mirror.java.io; 2 | 3 | import mirror.RefClass; 4 | 5 | /** 6 | * Created by Milk on 4/9/21. 7 | * * ∧_∧ 8 | * (`・ω・∥ 9 | * 丶 つ0 10 | * しーJ 11 | * 此处无Bug 12 | */ 13 | public class UnixFileSystem { 14 | public static Class TYPE = RefClass.load(UnixFileSystem.class, "java.io.UnixFileSystem"); 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/java/lang/ThreadGroup.java: -------------------------------------------------------------------------------- 1 | package mirror.java.lang; 2 | 3 | 4 | import java.util.List; 5 | 6 | import mirror.RefClass; 7 | import mirror.RefObject; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | public class ThreadGroup { 13 | public static Class TYPE = RefClass.load(ThreadGroup.class, java.lang.ThreadGroup.class); 14 | public static RefObject> groups; 15 | public static RefObject parent; 16 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/java/lang/ThreadGroupN.java: -------------------------------------------------------------------------------- 1 | package mirror.java.lang; 2 | 3 | 4 | import mirror.RefClass; 5 | import mirror.RefObject; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | public class ThreadGroupN { 11 | public static Class Class = RefClass.load(ThreadGroupN.class, java.lang.ThreadGroup.class); 12 | public static RefObject ngroups; 13 | public static RefObject groups; 14 | public static RefObject parent; 15 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/libcore/io/ForwardingOs.java: -------------------------------------------------------------------------------- 1 | package mirror.libcore.io; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefObject; 5 | 6 | /** 7 | * @author Lody 8 | */ 9 | 10 | public class ForwardingOs { 11 | public static Class TYPE = RefClass.load(ForwardingOs.class, "libcore.io.ForwardingOs"); 12 | public static RefObject os; 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/libcore/io/Libcore.java: -------------------------------------------------------------------------------- 1 | package mirror.libcore.io; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefStaticObject; 5 | 6 | /** 7 | * @author Lody 8 | */ 9 | 10 | public class Libcore { 11 | public static Class TYPE = RefClass.load(Libcore.class, "libcore.io.Libcore"); 12 | 13 | public static RefStaticObject os; 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/libcore/io/Os.java: -------------------------------------------------------------------------------- 1 | package mirror.libcore.io; 2 | 3 | import mirror.RefClass; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | 9 | public class Os { 10 | public static Class TYPE = RefClass.load(Os.class, "libcore.io.Os"); 11 | } 12 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/oem/HwApiCacheManagerEx.java: -------------------------------------------------------------------------------- 1 | package mirror.oem; 2 | 3 | import android.content.pm.PackageManager; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | import mirror.RefStaticMethod; 8 | 9 | public class HwApiCacheManagerEx { 10 | public static Class TYPE = RefClass.load(HwApiCacheManagerEx.class, "huawei.android.app.HwApiCacheMangerEx"); 11 | public static RefStaticMethod getDefault; 12 | public static RefObject mPkg; 13 | } -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/oem/HwFrameworkFactory.java: -------------------------------------------------------------------------------- 1 | package mirror.oem; 2 | 3 | import mirror.RefClass; 4 | import mirror.RefStaticMethod; 5 | 6 | public class HwFrameworkFactory { 7 | public static Class TYPE = RefClass.load(HwFrameworkFactory.class, "android.common.HwFrameworkFactory"); 8 | public static RefStaticMethod getHwApiCacheManagerEx; 9 | } 10 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/oem/IFlymePermissionService.java: -------------------------------------------------------------------------------- 1 | package mirror.oem; 2 | 3 | import android.os.IBinder; 4 | import android.os.IInterface; 5 | 6 | import mirror.MethodParams; 7 | import mirror.RefClass; 8 | import mirror.RefStaticMethod; 9 | 10 | public class IFlymePermissionService { 11 | public static Class TYPE = RefClass.load(IFlymePermissionService.class, "meizu.security.IFlymePermissionService"); 12 | 13 | public static class Stub { 14 | public static Class TYPE = RefClass.load(IFlymePermissionService.Stub.class, "meizu.security.IFlymePermissionService$Stub"); 15 | @MethodParams({IBinder.class}) 16 | public static RefStaticMethod asInterface; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Bcore/src/main/java/mirror/oem/ZTEILocationManager.java: -------------------------------------------------------------------------------- 1 | package mirror.oem; 2 | 3 | import android.os.IInterface; 4 | 5 | import mirror.RefClass; 6 | import mirror.RefObject; 7 | 8 | public class ZTEILocationManager { 9 | public static Class TYPE = RefClass.load(ZTEILocationManager.class, "com.zte.security.ZTEILocationManager"); 10 | 11 | public static RefObject mILocationManager; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/client/ClientConfiguration.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.client; 2 | 3 | /** 4 | * Created by Milk on 5/4/21. 5 | * * ∧_∧ 6 | * (`・ω・∥ 7 | * 丶 つ0 8 | * しーJ 9 | * 此处无Bug 10 | */ 11 | public abstract class ClientConfiguration { 12 | 13 | public boolean isHideRoot() { 14 | return false; 15 | } 16 | 17 | public boolean isHideXposed() { 18 | return false; 19 | } 20 | 21 | public abstract String getHostPackageName(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/client/hook/AppLifecycleCallback.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.client.hook; 2 | 3 | /** 4 | * Created by Milk on 5/5/21. 5 | * * ∧_∧ 6 | * (`・ω・∥ 7 | * 丶 つ0 8 | * しーJ 9 | * 此处无Bug 10 | */ 11 | public interface AppLifecycleCallback { 12 | } 13 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/client/hook/IInjectHook.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.client.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/client/hook/MethodHook.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.client.hook; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | /** 6 | * Created by Milk on 3/30/21. 7 | * * ∧_∧ 8 | * (`・ω・∥ 9 | * 丶 つ0 10 | * しーJ 11 | * 此处无Bug 12 | */ 13 | public abstract class MethodHook { 14 | protected abstract String getMethodName(); 15 | 16 | protected Object afterHook(Object result) throws Throwable { 17 | return result; 18 | } 19 | 20 | protected Object beforeHook(Object who, Method method, Object[] args) throws Throwable { 21 | return null; 22 | } 23 | 24 | protected abstract Object hook(Object who, Method method, Object[] args) throws Throwable; 25 | } 26 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/client/hook/ResultStaticMethodProxy.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.client.hook; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | 9 | public class ResultStaticMethodProxy extends MethodHook { 10 | 11 | Object mResult; 12 | String mName; 13 | 14 | public ResultStaticMethodProxy(String name, Object result) { 15 | mResult = result; 16 | mName = name; 17 | } 18 | 19 | public Object getResult() { 20 | return mResult; 21 | } 22 | 23 | @Override 24 | protected String getMethodName() { 25 | return mName; 26 | } 27 | 28 | @Override 29 | protected Object hook(Object who, Method method, Object[] args) throws Throwable { 30 | return mResult; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/client/hook/proxies/context/providers/VContentProvider.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.client.hook.proxies.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 VContentProvider { 14 | IInterface wrapper(final IInterface contentProviderProxy, final String appPkg); 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/server/ISystemService.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.server; 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/server/am/UserSpace.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.server.am; 2 | 3 | /** 4 | * Created by Milk on 4/25/21. 5 | * * ∧_∧ 6 | * (`・ω・∥ 7 | * 丶 つ0 8 | * しーJ 9 | * 此处无Bug 10 | */ 11 | public class UserSpace { 12 | public final ActiveServices mActiveServices = new ActiveServices(); 13 | public final ActivityStack mStack = new ActivityStack(); 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/server/pm/PackageMonitor.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.server.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, int userId); 13 | 14 | void onPackageInstalled(String packageName, int userId); 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/server/pm/installer/Executor.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.server.pm.installer; 2 | 3 | import top.niunaijun.blackbox.entity.pm.InstallOption; 4 | import top.niunaijun.blackbox.server.pm.BPackageSettings; 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/server/pm/installer/RemoveAppExecutor.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.server.pm.installer; 2 | 3 | import top.niunaijun.blackbox.BEnvironment; 4 | import top.niunaijun.blackbox.entity.pm.InstallOption; 5 | import top.niunaijun.blackbox.server.pm.BPackageSettings; 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/server/user/BUserStatus.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.server.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/utils/ClassUtils.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.utils; 2 | 3 | /** 4 | * @author Lody 5 | * 6 | */ 7 | public class ClassUtils { 8 | 9 | public static boolean isClassExist(String className) { 10 | try { 11 | Class.forName(className); 12 | return true; 13 | } catch (ClassNotFoundException e) { 14 | return false; 15 | } 16 | } 17 | 18 | public static void fixArgs(Class[] types, Object[] args) { 19 | for (int i = 0; i < types.length; i++) { 20 | if (types[i] == int.class && args[i] == null) { 21 | args[i] = 0; 22 | } else if (types[i] == boolean.class && args[i] == null) { 23 | args[i] = false; 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /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/HackAppUtils.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.utils; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public class HackAppUtils { 8 | 9 | /** 10 | * Enable the Log output of QQ. 11 | * 12 | * @param packageName package name 13 | * @param classLoader class loader 14 | */ 15 | public static void enableQQLogOutput(String packageName, ClassLoader classLoader) { 16 | if ("com.tencent.mobileqq".equals(packageName)) { 17 | try { 18 | Reflector.on("com.tencent.qphone.base.util.QLog", true, classLoader) 19 | .field("UIN_REPORTLOG_LEVEL") 20 | .set(100); 21 | } catch (Exception e) { 22 | e.printStackTrace(); 23 | // ignore 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /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 mirror.android.app.ApplicationThreadNative; 7 | import mirror.android.app.IApplicationThreadOreo; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | 13 | public class ApplicationThreadCompat { 14 | 15 | public static IInterface asInterface(IBinder binder) { 16 | if (BuildCompat.isOreo()) { 17 | return IApplicationThreadOreo.Stub.asInterface.call(binder); 18 | } 19 | return ApplicationThreadNative.asInterface.call(binder); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ObjectsCompat.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox.utils.compat; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public class ObjectsCompat { 8 | 9 | /** 10 | * Null-safe equivalent of {@code a.equals(b)}. 11 | */ 12 | public static boolean equals(Object a, Object b) { 13 | return (a == null) ? (b == null) : a.equals(b); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Bcore/src/main/java/top/niunaijun/jnihook/jni/JniHook.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.jnihook.jni; 2 | 3 | /** 4 | * Created by Milk on 3/7/21. 5 | * * ∧_∧ 6 | * (`・ω・∥ 7 | * 丶 つ0 8 | * しーJ 9 | * 此处无Bug 10 | */ 11 | public class JniHook { 12 | 13 | public static native void nativeOffset(); 14 | 15 | public static native void nativeOffset2(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Bcore/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI := armeabi armeabi-v7a x86 2 | APP_PLATFORM := android-14 3 | APP_STL := c++_static 4 | APP_OPTIM := release 5 | VA_ROOT := $(call my-dir) 6 | NDK_MODULE_PATH := $(NDK_MODULE_PATH):$(VA_ROOT) -------------------------------------------------------------------------------- /Bcore/src/main/jni/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/jni/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/jni/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 VmCore::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/jni/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/jni/Hook/RuntimeHook.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Milk on 5/5/21. 3 | // 4 | 5 | #include "RuntimeHook.h" 6 | #import "JniHook/JniHook.h" 7 | 8 | HOOK_JNI(jstring, nativeLoad, JNIEnv *env, jobject obj, jstring name, jobject class_loader) { 9 | const char * nameC = env->GetStringUTFChars(name, JNI_FALSE); 10 | ALOGD("nativeLoad: %s", nameC); 11 | jstring result = orig_nativeLoad(env, obj, name, class_loader); 12 | env->ReleaseStringUTFChars(name, nameC); 13 | return result; 14 | } 15 | 16 | void RuntimeHook::init(JNIEnv *env) { 17 | const char *className = "java/lang/Runtime"; 18 | JniHook::HookJniFun(env, className, "nativeLoad", "(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/String;", 19 | (void *) new_nativeLoad, 20 | (void **) (&orig_nativeLoad), true); 21 | } 22 | -------------------------------------------------------------------------------- /Bcore/src/main/jni/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/jni/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/jni/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/jni/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 | 13 | using namespace std; 14 | 15 | class IO { 16 | public: 17 | static void init(JNIEnv *env); 18 | 19 | struct RelocateInfo { 20 | const char *targetPath; 21 | const char *relocatePath; 22 | }; 23 | 24 | static void addRule(const char *targetPath, const char *relocatePath); 25 | 26 | static jstring redirectPath(JNIEnv *env, jstring path); 27 | 28 | static jobject redirectPath(JNIEnv *env, jobject path); 29 | 30 | static const char *redirectPath(const char *__path); 31 | }; 32 | 33 | 34 | #endif //VIRTUALM_IO_H 35 | -------------------------------------------------------------------------------- /Bcore/src/main/jni/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 | #define HOOK_JNI(ret, func, ...) \ 9 | ret (*orig_##func)(__VA_ARGS__); \ 10 | ret new_##func(__VA_ARGS__) 11 | 12 | class JniHook { 13 | public: 14 | static void InitJniHook(JNIEnv *env, int api_level); 15 | static void HookJniFun(JNIEnv *env, const char *class_name, const char *method_name, const char *sign, void * new_fun, void ** orig_fun, 16 | bool is_static); 17 | static void HookJniFun(JNIEnv *env, jobject java_method, void *new_fun, void **orig_fun, bool is_static); 18 | }; 19 | 20 | #endif //VIRTUAL_APP_JNIHOOK_H 21 | -------------------------------------------------------------------------------- /Bcore/src/main/jni/Log.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define TAG "VmCore" 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/jni/VmCore.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/client/VMCore" 11 | 12 | class VmCore { 13 | public: 14 | static int getCallingUid(JNIEnv *env, int orig); 15 | }; 16 | 17 | 18 | #endif //VIRTUALM_VMCORE_H 19 | -------------------------------------------------------------------------------- /Bcore/src/main/res/drawable/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/Bcore/src/main/res/drawable/ic_launcher.png -------------------------------------------------------------------------------- /Bcore/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | :black 4 | -------------------------------------------------------------------------------- /Bcore/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /Bcore/src/main/res/xml/filepath.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Bcore/src/test/java/top/niunaijun/blackbox/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox; 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/xposed/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Bcore/xposed/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 28 5 | buildToolsVersion "28.0.2" 6 | 7 | defaultConfig { 8 | minSdkVersion 21 9 | targetSdkVersion 28 10 | versionCode 1 11 | versionName "1.0" 12 | 13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 14 | consumerProguardFiles "consumer-rules.pro" 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation 'com.jakewharton.android.repackaged:dalvik-dx:9.0.0_r3' 28 | implementation 'com.swift.sandhook:hooklib:4.2.0' 29 | } -------------------------------------------------------------------------------- /Bcore/xposed/src/androidTest/java/top/niunaijun/xposed/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.xposed; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("top.niunaijun.xposed.test", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /Bcore/xposed/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | / 5 | -------------------------------------------------------------------------------- /Bcore/xposed/src/main/java/com/android/internal/util/XmlUtils.java: -------------------------------------------------------------------------------- 1 | package com.android.internal.util; 2 | 3 | import org.xmlpull.v1.XmlPullParserException; 4 | 5 | import java.io.InputStream; 6 | import java.util.HashMap; 7 | 8 | public class XmlUtils { 9 | 10 | public static final HashMap readMapXml(InputStream in) throws XmlPullParserException, java.io.IOException { 11 | return null; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/xposed/src/main/java/com/swift/sandhook/xposedcompat/hookstub/CallOriginCallBack.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.xposedcompat.hookstub; 2 | 3 | public interface CallOriginCallBack { 4 | long call(long... args) throws Throwable; 5 | } 6 | -------------------------------------------------------------------------------- /Bcore/xposed/src/main/java/com/swift/sandhook/xposedcompat/methodgen/ErrorCatch.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.xposedcompat.methodgen; 2 | 3 | import android.util.Log; 4 | 5 | import com.swift.sandhook.SandHook; 6 | import com.swift.sandhook.xposedcompat.XposedCompat; 7 | 8 | import java.lang.reflect.Member; 9 | import java.lang.reflect.Method; 10 | 11 | public class ErrorCatch { 12 | 13 | public static Object callOriginError(Member originMethod, Method backupMethod, Object thiz, Object[] args) throws Throwable { 14 | if (XposedCompat.retryWhenCallOriginError) { 15 | Log.w("SandHook", "method <" + originMethod.toString() + "> use invoke to call origin!"); 16 | return SandHook.callOriginMethod(originMethod, backupMethod, thiz, args); 17 | } else { 18 | return null; 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Bcore/xposed/src/main/java/com/swift/sandhook/xposedcompat/methodgen/HookMaker.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.xposedcompat.methodgen; 2 | 3 | import java.lang.reflect.Member; 4 | import java.lang.reflect.Method; 5 | 6 | import de.robv.android.xposed.XposedBridge; 7 | 8 | public interface HookMaker { 9 | void start(Member member, XposedBridge.AdditionalHookInfo hookInfo, 10 | ClassLoader appClassLoader, String dexDirPath) throws Exception; 11 | Method getHookMethod(); 12 | Method getBackupMethod(); 13 | Method getCallBackupMethod(); 14 | } 15 | -------------------------------------------------------------------------------- /Bcore/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 */ interface IXposedMod {} 5 | -------------------------------------------------------------------------------- /Bcore/xposed/src/main/java/de/robv/android/xposed/callbacks/IXUnhook.java: -------------------------------------------------------------------------------- 1 | package de.robv.android.xposed.callbacks; 2 | 3 | import de.robv.android.xposed.IXposedHookZygoteInit; 4 | 5 | /** 6 | * Interface for objects that can be used to remove callbacks. 7 | * 8 | *

Just like hooking methods etc., unhooking applies only to the current process. 9 | * In other process (or when the app is removed from memory and then restarted), the hook will still 10 | * be active. The Zygote process (see {@link IXposedHookZygoteInit}) is an exception, the hook won't 11 | * be inherited by any future processes forked from it in the future. 12 | * 13 | * @param The class of the callback. 14 | */ 15 | public interface IXUnhook { 16 | /** 17 | * Returns the callback that has been registered. 18 | */ 19 | T getCallback(); 20 | 21 | /** 22 | * Removes the callback. 23 | */ 24 | void unhook(); 25 | } 26 | -------------------------------------------------------------------------------- /Bcore/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/xposed/src/test/java/top/niunaijun/xposed/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package top.niunaijun.xposed; 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 | } -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/androidTest/java/top/niunaijun/blackbox/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("top.niunaijun.blackbox", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /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/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/java/top/niunaijun/blackboxa/util/ToastEx.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackboxa.util 2 | 3 | import android.content.Context 4 | import android.widget.Toast 5 | import androidx.viewbinding.ViewBinding 6 | import com.google.android.material.snackbar.Snackbar 7 | 8 | /** 9 | * 10 | * @Description: 11 | * @Author: wukaicheng 12 | * @CreateDate: 2021/5/2 0:13 13 | */ 14 | 15 | fun Context.toast(msg:String){ 16 | Toast.makeText(this,msg,Toast.LENGTH_LONG).show() 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/top/niunaijun/blackboxa/view/apps/AppsAdapter.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackboxa.view.apps 2 | 3 | import android.view.ViewGroup 4 | import top.niunaijun.blackboxa.bean.AppInfo 5 | import top.niunaijun.blackboxa.databinding.ItemAppBinding 6 | import top.niunaijun.blackboxa.util.inflateBinding 7 | import top.niunaijun.blackboxa.view.base.BaseAdapter 8 | 9 | /** 10 | * 11 | * @Description: 软件显示界面适配器 12 | * @Author: wukaicheng 13 | * @CreateDate: 2021/4/29 21:52 14 | */ 15 | 16 | class AppsAdapter : BaseAdapter() { 17 | override fun getViewBinding(parent: ViewGroup): ItemAppBinding { 18 | return inflateBinding(getLayoutInflater(parent)) 19 | 20 | } 21 | 22 | override fun initView(binding: ItemAppBinding, position: Int, data: AppInfo) { 23 | binding.icon.setImageDrawable(data.icon) 24 | binding.name.text = data.name 25 | 26 | } 27 | } -------------------------------------------------------------------------------- /app/src/main/java/top/niunaijun/blackboxa/view/apps/AppsFactory.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackboxa.view.apps 2 | 3 | import androidx.lifecycle.ViewModel 4 | import androidx.lifecycle.ViewModelProvider 5 | import top.niunaijun.blackboxa.data.AppsRepository 6 | 7 | /** 8 | * 9 | * @Description: 10 | * @Author: wukaicheng 11 | * @CreateDate: 2021/4/29 22:36 12 | */ 13 | @Suppress("UNCHECKED_CAST") 14 | class AppsFactory(private val appsRepository: AppsRepository) : ViewModelProvider.NewInstanceFactory() { 15 | 16 | override fun create(modelClass: Class): T { 17 | return AppsViewModel(appsRepository) as T 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/top/niunaijun/blackboxa/view/base/BaseViewModel.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackboxa.view.base 2 | 3 | import androidx.lifecycle.ViewModel 4 | import androidx.lifecycle.viewModelScope 5 | import kotlinx.coroutines.* 6 | 7 | /** 8 | * 9 | * @Description: 10 | * @Author: wukaicheng 11 | * @CreateDate: 2021/4/29 23:33 12 | */ 13 | open class BaseViewModel : ViewModel() { 14 | 15 | fun launchOnUI(block: suspend CoroutineScope.() -> Unit) { 16 | viewModelScope.launch { 17 | withContext(Dispatchers.IO) { 18 | try { 19 | block() 20 | } catch (e: Throwable) { 21 | e.printStackTrace() 22 | } 23 | 24 | } 25 | } 26 | } 27 | 28 | 29 | override fun onCleared() { 30 | super.onCleared() 31 | viewModelScope.cancel() 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /app/src/main/java/top/niunaijun/blackboxa/view/list/ListFactory.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackboxa.view.list 2 | 3 | import android.app.Application 4 | import android.content.Context 5 | import androidx.lifecycle.ViewModel 6 | import androidx.lifecycle.ViewModelProvider 7 | import top.niunaijun.blackboxa.data.AppsRepository 8 | 9 | /** 10 | * 11 | * @Description: 12 | * @Author: wukaicheng 13 | * @CreateDate: 2021/4/29 22:36 14 | */ 15 | @Suppress("UNCHECKED_CAST") 16 | class ListFactory(private val appsRepository: AppsRepository,private val context: Application) : ViewModelProvider.NewInstanceFactory() { 17 | 18 | override fun create(modelClass: Class): T { 19 | return ListViewModel(appsRepository,context) as T 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/top/niunaijun/blackboxa/view/xp/XpFactory.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackboxa.view.xp 2 | 3 | import androidx.lifecycle.ViewModel 4 | import androidx.lifecycle.ViewModelProvider 5 | import top.niunaijun.blackboxa.data.XpRepository 6 | 7 | /** 8 | * 9 | * @Description: 10 | * @Author: wukaicheng 11 | * @CreateDate: 2021/5/2 20:56 12 | */ 13 | @Suppress("UNCHECKED_CAST") 14 | class XpFactory(private val repo:XpRepository): ViewModelProvider.NewInstanceFactory() { 15 | override fun create(modelClass: Class): T { 16 | return XpViewModel(repo) as T 17 | } 18 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_add.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_search.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-hdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-hdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-mdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-mdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-xhdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-xhdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-xxhdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/drawable-xxhdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/base_empty.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_apps.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_app.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_viewpager.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_switch.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_list.xml: -------------------------------------------------------------------------------- 1 | 2 |

4 | 5 | 9 | 10 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_xp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F3F3F 4 | #3F3F3F 5 | #3F3F3F 6 | #ffffff 7 | #212121 8 | #757575 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 手动选择 3 | 选择应用 4 | 已安装应用 5 | 已安装模块 6 | 空空如也 7 | 过滤 8 | 开源地址 9 | XP管理 10 | 交流群 11 | -------------------------------------------------------------------------------- /app/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/test/java/top/niunaijun/blackbox/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.niunaijun.blackbox 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/banner.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat May 01 00:08:13 CST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':Bcore:xposed' 2 | include ':Bcore' 3 | include ':app' 4 | rootProject.name = "BlackBox" -------------------------------------------------------------------------------- /virtualm.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/404nofoundx/BBox/9f7cc12b4a4dead23f590c1da4951ad55a38e6d6/virtualm.jks --------------------------------------------------------------------------------