├── .gitignore ├── CHINESE.md ├── Logo.png ├── README.md ├── README.md.old ├── VirtualApp ├── .gitignore ├── VAConfig.gradle ├── app │ ├── .gitignore │ ├── build.gradle │ ├── libs │ │ ├── TencentLocationSDK_v6.1.2_r1df4baaa_170627_1056.jar │ │ ├── TencentMapSDK_Raster_v_1.2.8_e45bcd0.jar │ │ ├── TencentMapSearch_v1.1.7.3207904.jar │ │ └── securitysdk-v2--standard-4.0.12.2477.jar │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ ├── OaceOaT8w5Xda6wa │ │ └── magic.mgc │ │ ├── java │ │ └── io │ │ │ └── virtualapp │ │ │ ├── App.java │ │ │ ├── AppNameConstants.java │ │ │ ├── PackageReceiver.java │ │ │ ├── VCommends.java │ │ │ ├── abs │ │ │ ├── BasePresenter.java │ │ │ ├── BaseView.java │ │ │ ├── Callback.java │ │ │ ├── Value.java │ │ │ ├── nestedadapter │ │ │ │ ├── RecyclerViewAdapterWrapper.java │ │ │ │ └── SmartRecyclerAdapter.java │ │ │ ├── percent │ │ │ │ └── PercentLinearLayout.java │ │ │ ├── reflect │ │ │ │ └── ReflectException.java │ │ │ └── ui │ │ │ │ ├── BaseAdapterPlus.java │ │ │ │ ├── VActivity.java │ │ │ │ ├── VFragment.java │ │ │ │ └── VUiKit.java │ │ │ ├── delegate │ │ │ ├── MyAppRequestListener.java │ │ │ ├── MyComponentDelegate.java │ │ │ └── MyTaskDescDelegate.java │ │ │ ├── effects │ │ │ ├── ExplosionAnimator.java │ │ │ └── ExplosionField.java │ │ │ ├── home │ │ │ ├── AppSettingActivity.java │ │ │ ├── BackHomeActivity.java │ │ │ ├── HomeActivity.java │ │ │ ├── HomeContract.java │ │ │ ├── HomePresenterImpl.java │ │ │ ├── ListAppActivity.java │ │ │ ├── ListAppContract.java │ │ │ ├── ListAppFragment.java │ │ │ ├── ListAppPresenterImpl.java │ │ │ ├── PermissionRequestActivity.java │ │ │ ├── adapters │ │ │ │ ├── AppLocationAdapter.java │ │ │ │ ├── AppPagerAdapter.java │ │ │ │ ├── CloneAppListAdapter.java │ │ │ │ ├── DeviceAdapter.java │ │ │ │ ├── DevicePagerAdapter.java │ │ │ │ ├── LaunchpadAdapter.java │ │ │ │ └── decorations │ │ │ │ │ └── ItemOffsetDecoration.java │ │ │ ├── device │ │ │ │ ├── DeviceDetailActiivty.java │ │ │ │ ├── DeviceFragment.java │ │ │ │ └── DeviceSettingsActivity.java │ │ │ ├── location │ │ │ │ ├── ChooseLocationActivity.java │ │ │ │ └── LocationSettingsActivity.java │ │ │ ├── models │ │ │ │ ├── AddAppButton.java │ │ │ │ ├── AppData.java │ │ │ │ ├── AppInfo.java │ │ │ │ ├── AppInfoLite.java │ │ │ │ ├── DeviceData.java │ │ │ │ ├── EmptyAppData.java │ │ │ │ ├── LocationData.java │ │ │ │ ├── MultiplePackageAppData.java │ │ │ │ ├── PackageAppData.java │ │ │ │ └── SettingsData.java │ │ │ ├── platform │ │ │ │ ├── PlatformInfo.java │ │ │ │ └── WechatPlatformInfo.java │ │ │ └── repo │ │ │ │ ├── AppDataSource.java │ │ │ │ ├── AppRepository.java │ │ │ │ └── PackageAppDataStorage.java │ │ │ ├── provider │ │ │ ├── PathConfig.java │ │ │ └── SafetyProvider.java │ │ │ ├── splash │ │ │ └── SplashActivity.java │ │ │ ├── utils │ │ │ ├── AnimUtils.java │ │ │ ├── IBinderTool.java │ │ │ ├── PackageUtils.java │ │ │ └── StringUtils.java │ │ │ ├── vs │ │ │ └── VSManagerActivity.java │ │ │ └── widgets │ │ │ ├── BallGridBeatIndicator.java │ │ │ ├── BallPulseIndicator.java │ │ │ ├── BaseView.java │ │ │ ├── CardStackAdapter.java │ │ │ ├── CardStackLayout.java │ │ │ ├── CircularAnim.java │ │ │ ├── DragSelectRecyclerView.java │ │ │ ├── DragSelectRecyclerViewAdapter.java │ │ │ ├── EatBeansView.java │ │ │ ├── Indicator.java │ │ │ ├── LabelView.java │ │ │ ├── LauncherIconView.java │ │ │ ├── ListViewPlus.java │ │ │ ├── LoadingIndicatorView.java │ │ │ ├── MarqueeTextView.java │ │ │ ├── MaterialRippleLayout.java │ │ │ ├── RippleButton.java │ │ │ ├── ShadowProperty.java │ │ │ ├── ShadowViewDrawable.java │ │ │ ├── Shimmer.java │ │ │ ├── ShimmerViewBase.java │ │ │ ├── ShimmerViewHelper.java │ │ │ ├── SquareCardView.java │ │ │ ├── TwoGearsView.java │ │ │ ├── ViewHelper.java │ │ │ └── fittext │ │ │ ├── BaseTextView.java │ │ │ ├── FitTextHelper.java │ │ │ └── FitTextView.java │ │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_add.png │ │ ├── ic_add_circle.png │ │ ├── ic_check.png │ │ ├── ic_crash.png │ │ ├── ic_menu.png │ │ ├── ic_no_check.png │ │ └── ic_shortcut.png │ │ ├── drawable-xhdpi │ │ ├── bg_white.9.png │ │ ├── map_mock_gray.png │ │ ├── map_mock_start.png │ │ ├── more_menu.png │ │ └── more_menu_down.png │ │ ├── drawable-xxhdpi │ │ ├── ic_about.png │ │ ├── ic_account.png │ │ ├── ic_device.png │ │ ├── ic_google.png │ │ ├── ic_location.png │ │ ├── ic_notification.png │ │ ├── ic_settings.png │ │ ├── ic_speed_up.png │ │ ├── ic_vs.png │ │ ├── ic_wifi.png │ │ ├── map_collect.png │ │ ├── map_input.png │ │ ├── map_input2.png │ │ ├── map_loc1.png │ │ ├── map_loc2.png │ │ ├── map_no_collect.png │ │ ├── map_postion_green.png │ │ ├── map_select_location.png │ │ └── map_stop.png │ │ ├── drawable │ │ ├── blue_circle.xml │ │ ├── fab_bg.xml │ │ ├── gray_rect.xml │ │ ├── home_bg.xml │ │ ├── ic_search_black_24dp.xml │ │ ├── ic_search_white_24dp.xml │ │ ├── icon_bg.xml │ │ ├── sel_clone_app_btn.xml │ │ ├── sel_guide_btn.xml │ │ ├── selector_collect_star.xml │ │ ├── selector_map_input.xml │ │ ├── selector_map_loc.xml │ │ ├── selector_mock.xml │ │ ├── selector_more_menu.xml │ │ ├── selector_text_color.xml │ │ ├── selector_text_green.xml │ │ ├── shape_clone_app_btn.xml │ │ ├── shape_clone_app_btn_pressed.xml │ │ └── white_rect.xml │ │ ├── layout │ │ ├── activity_app_setting.xml │ │ ├── activity_clone_app.xml │ │ ├── activity_home.xml │ │ ├── activity_install.xml │ │ ├── activity_loading.xml │ │ ├── activity_location_settings.xml │ │ ├── activity_marker.xml │ │ ├── activity_mock_device.xml │ │ ├── activity_mock_devices.xml │ │ ├── activity_mock_location.xml │ │ ├── activity_splash.xml │ │ ├── activity_users.xml │ │ ├── content_toolbar.xml │ │ ├── dialog_change_loc.xml │ │ ├── fragment_list_app.xml │ │ ├── fragment_list_settings.xml │ │ ├── item_app.xml │ │ ├── item_clone_app.xml │ │ ├── item_launcher_app.xml │ │ ├── item_location_app.xml │ │ └── item_user.xml │ │ ├── menu │ │ ├── map_menu.xml │ │ ├── marktet_map.xml │ │ ├── menu_device.xml │ │ └── user_menu.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-ldpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── fitTextView.xml │ │ ├── ids.xml │ │ ├── integers.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ └── usb_llvision_device_filter.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── lib │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── 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 │ │ │ ├── lody │ │ │ └── virtual │ │ │ │ ├── client │ │ │ │ └── IVClient.aidl │ │ │ │ ├── os │ │ │ │ └── VUserInfo.aidl │ │ │ │ ├── remote │ │ │ │ ├── AppRunningProcessInfo.aidl │ │ │ │ ├── AppTaskInfo.aidl │ │ │ │ ├── BadgerInfo.aidl │ │ │ │ ├── ClientConfig.aidl │ │ │ │ ├── InstallOptions.aidl │ │ │ │ ├── InstallResult.aidl │ │ │ │ ├── InstalledAppInfo.aidl │ │ │ │ ├── IntentSenderData.aidl │ │ │ │ ├── PendingResultData.aidl │ │ │ │ ├── Problem.aidl │ │ │ │ ├── ReceiverInfo.aidl │ │ │ │ ├── ServiceResult.aidl │ │ │ │ ├── VDeviceConfig.aidl │ │ │ │ ├── VJobWorkItem.aidl │ │ │ │ ├── VParceledListSlice.aidl │ │ │ │ └── vloc │ │ │ │ │ ├── VCell.aidl │ │ │ │ │ ├── VLocation.aidl │ │ │ │ │ └── VWifi.aidl │ │ │ │ └── server │ │ │ │ ├── IBinderDelegateService.aidl │ │ │ │ ├── IPackageInstaller.aidl │ │ │ │ ├── IPackageInstallerSession.aidl │ │ │ │ ├── IRequestPermissionsResult.aidl │ │ │ │ ├── interfaces │ │ │ │ ├── IAccountManager.aidl │ │ │ │ ├── IActivityManager.aidl │ │ │ │ ├── IAppManager.aidl │ │ │ │ ├── IContentService.aidl │ │ │ │ ├── IDeviceManager.aidl │ │ │ │ ├── IIntentFilterObserver.aidl │ │ │ │ ├── IJobService.aidl │ │ │ │ ├── INotificationManager.aidl │ │ │ │ ├── IPackageManager.aidl │ │ │ │ ├── IPackageObserver.aidl │ │ │ │ ├── IProcessObserver.aidl │ │ │ │ ├── IServiceFetcher.aidl │ │ │ │ ├── IUserManager.aidl │ │ │ │ ├── IVirtualLocationManager.aidl │ │ │ │ └── IVirtualStorageService.aidl │ │ │ │ └── pm │ │ │ │ └── installer │ │ │ │ ├── SessionInfo.aidl │ │ │ │ └── SessionParams.aidl │ │ │ └── xdja │ │ │ ├── activitycounter │ │ │ ├── IActivityCounterService.aidl │ │ │ └── IForegroundInterface.aidl │ │ │ └── zs │ │ │ ├── IAppPermission.aidl │ │ │ ├── IAppPermissionCallback.aidl │ │ │ ├── IController.aidl │ │ │ ├── IControllerServiceCallback.aidl │ │ │ ├── IInstallerSetting.aidl │ │ │ ├── INotificationCallback.aidl │ │ │ ├── IOnPrimaryClipChangedListener.aidl │ │ │ ├── IServiceKeepAlive.aidl │ │ │ ├── IToastCallback.aidl │ │ │ ├── IUiCallback.aidl │ │ │ ├── IVSCallback.aidl │ │ │ ├── IVSKeyCallback.aidl │ │ │ ├── IVSafekey.aidl │ │ │ ├── IVSafekeyCkmsManager.aidl │ │ │ ├── IWaterMark.aidl │ │ │ └── WaterMarkInfo.aidl │ │ ├── assets │ │ └── default_configs │ │ │ └── com.mxtech.videoplayer.ad │ │ │ └── shared_prefs │ │ │ └── com.mxtech.videoplayer.ad_preferences.xml │ │ ├── java │ │ ├── android │ │ │ ├── content │ │ │ │ ├── SyncInfo.java │ │ │ │ ├── SyncStatusInfo.java │ │ │ │ └── pm │ │ │ │ │ └── PackageParser.java │ │ │ ├── location │ │ │ │ └── LocationRequest.java │ │ │ └── os │ │ │ │ └── ParcelableException.java │ │ ├── com │ │ │ ├── lody │ │ │ │ └── virtual │ │ │ │ │ ├── Build.java │ │ │ │ │ ├── GmsSupport.java │ │ │ │ │ ├── client │ │ │ │ │ ├── DexOverride.java │ │ │ │ │ ├── LinuxCompat.java │ │ │ │ │ ├── NativeEngine.java │ │ │ │ │ ├── VClient.java │ │ │ │ │ ├── badger │ │ │ │ │ │ ├── BadgerManager.java │ │ │ │ │ │ ├── BroadcastBadger1.java │ │ │ │ │ │ ├── BroadcastBadger2.java │ │ │ │ │ │ └── IBadger.java │ │ │ │ │ ├── core │ │ │ │ │ │ ├── ANRWatchDog.java │ │ │ │ │ │ ├── AppCallback.java │ │ │ │ │ │ ├── AppDefaultConfig.java │ │ │ │ │ │ ├── CrashHandler.java │ │ │ │ │ │ ├── InvocationStubManager.java │ │ │ │ │ │ ├── ServiceLocalManager.java │ │ │ │ │ │ ├── SettingConfig.java │ │ │ │ │ │ ├── SettingHandler.java │ │ │ │ │ │ └── VirtualCore.java │ │ │ │ │ ├── env │ │ │ │ │ │ ├── Constants.java │ │ │ │ │ │ ├── DeadServerException.java │ │ │ │ │ │ ├── GPSStateline.java │ │ │ │ │ │ ├── SpecialComponentList.java │ │ │ │ │ │ ├── VirtualGPSSatalines.java │ │ │ │ │ │ └── VirtualRuntime.java │ │ │ │ │ ├── fixer │ │ │ │ │ │ ├── ActivityFixer.java │ │ │ │ │ │ ├── ComponentFixer.java │ │ │ │ │ │ └── ContextFixer.java │ │ │ │ │ ├── hook │ │ │ │ │ │ ├── annotations │ │ │ │ │ │ │ ├── Inject.java │ │ │ │ │ │ │ ├── LogInvocation.java │ │ │ │ │ │ │ └── SkipInject.java │ │ │ │ │ │ ├── base │ │ │ │ │ │ │ ├── AutoResultStaticMethodProxy.java │ │ │ │ │ │ │ ├── BinderInvocationProxy.java │ │ │ │ │ │ │ ├── BinderInvocationStub.java │ │ │ │ │ │ │ ├── MethodBox.java │ │ │ │ │ │ │ ├── MethodInvocationProxy.java │ │ │ │ │ │ │ ├── MethodInvocationStub.java │ │ │ │ │ │ │ ├── MethodProxy.java │ │ │ │ │ │ │ ├── ReplaceCallingPkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceLastPkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceLastUidMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceLastUserIdMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceSequencePkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceSpecPkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceUidMethodProxy.java │ │ │ │ │ │ │ ├── ResultBinderMethodProxy.java │ │ │ │ │ │ │ ├── ResultStaticMethodProxy.java │ │ │ │ │ │ │ └── StaticMethodProxy.java │ │ │ │ │ │ ├── delegate │ │ │ │ │ │ │ ├── AppInstrumentation.java │ │ │ │ │ │ │ ├── ComponentDelegate.java │ │ │ │ │ │ │ ├── InstrumentationDelegate.java │ │ │ │ │ │ │ ├── PhoneInfoDelegate.java │ │ │ │ │ │ │ └── TaskDescriptionDelegate.java │ │ │ │ │ │ ├── providers │ │ │ │ │ │ │ ├── BadgeProviderHook.java │ │ │ │ │ │ │ ├── DocumentHook.java │ │ │ │ │ │ │ ├── DownloadProviderHook.java │ │ │ │ │ │ │ ├── ExternalProviderHook.java │ │ │ │ │ │ │ ├── InternalProviderHook.java │ │ │ │ │ │ │ ├── ProviderHook.java │ │ │ │ │ │ │ └── SettingsProviderHook.java │ │ │ │ │ │ ├── proxies │ │ │ │ │ │ │ ├── accessibility │ │ │ │ │ │ │ │ └── AccessibilityManagerStub.java │ │ │ │ │ │ │ ├── account │ │ │ │ │ │ │ │ └── AccountManagerStub.java │ │ │ │ │ │ │ ├── alarm │ │ │ │ │ │ │ │ └── AlarmManagerStub.java │ │ │ │ │ │ │ ├── am │ │ │ │ │ │ │ │ ├── ActivityManagerStub.java │ │ │ │ │ │ │ │ ├── ActivityTaskManagerStub.java │ │ │ │ │ │ │ │ ├── HCallbackStub.java │ │ │ │ │ │ │ │ └── MethodProxies.java │ │ │ │ │ │ │ ├── app │ │ │ │ │ │ │ │ └── WallpaperManagerStub.java │ │ │ │ │ │ │ ├── appops │ │ │ │ │ │ │ │ ├── AppOpsManagerStub.java │ │ │ │ │ │ │ │ ├── FlymePermissionServiceStub.java │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── SmtOpsManagerStub.java │ │ │ │ │ │ │ ├── appwidget │ │ │ │ │ │ │ │ └── AppWidgetManagerStub.java │ │ │ │ │ │ │ ├── audio │ │ │ │ │ │ │ │ └── AudioManagerStub.java │ │ │ │ │ │ │ ├── backup │ │ │ │ │ │ │ │ └── BackupManagerStub.java │ │ │ │ │ │ │ ├── battery_stats │ │ │ │ │ │ │ │ └── BatteryStatsHub.java │ │ │ │ │ │ │ ├── bluetooth │ │ │ │ │ │ │ │ ├── BluetoothManagerStub.java │ │ │ │ │ │ │ │ └── BluetoothStub.java │ │ │ │ │ │ │ ├── clipboard │ │ │ │ │ │ │ │ └── ClipBoardStub.java │ │ │ │ │ │ │ ├── connectivity │ │ │ │ │ │ │ │ ├── ConnectivityStub.java │ │ │ │ │ │ │ │ └── MethodProxies.java │ │ │ │ │ │ │ ├── content │ │ │ │ │ │ │ │ ├── ContentServiceStub.java │ │ │ │ │ │ │ │ └── MethodProxies.java │ │ │ │ │ │ │ ├── context_hub │ │ │ │ │ │ │ │ └── ContextHubServiceStub.java │ │ │ │ │ │ │ ├── dev_identifiers_policy │ │ │ │ │ │ │ │ └── DeviceIdentifiersPolicyServiceHub.java │ │ │ │ │ │ │ ├── devicepolicy │ │ │ │ │ │ │ │ └── DevicePolicyManagerStub.java │ │ │ │ │ │ │ ├── display │ │ │ │ │ │ │ │ └── DisplayStub.java │ │ │ │ │ │ │ ├── dropbox │ │ │ │ │ │ │ │ └── DropBoxManagerStub.java │ │ │ │ │ │ │ ├── fingerprint │ │ │ │ │ │ │ │ └── FingerprintManagerStub.java │ │ │ │ │ │ │ ├── graphics │ │ │ │ │ │ │ │ └── GraphicsStatsStub.java │ │ │ │ │ │ │ ├── imms │ │ │ │ │ │ │ │ └── MmsStub.java │ │ │ │ │ │ │ ├── input │ │ │ │ │ │ │ │ ├── InputMethodManagerStub.java │ │ │ │ │ │ │ │ └── MethodProxies.java │ │ │ │ │ │ │ ├── isms │ │ │ │ │ │ │ │ └── ISmsStub.java │ │ │ │ │ │ │ ├── isub │ │ │ │ │ │ │ │ └── ISubStub.java │ │ │ │ │ │ │ ├── job │ │ │ │ │ │ │ │ └── JobServiceStub.java │ │ │ │ │ │ │ ├── libcore │ │ │ │ │ │ │ │ ├── LibCoreStub.java │ │ │ │ │ │ │ │ └── MethodProxies.java │ │ │ │ │ │ │ ├── location │ │ │ │ │ │ │ │ ├── GPSListenerThread.java │ │ │ │ │ │ │ │ ├── GPSStatusListenerThread.java │ │ │ │ │ │ │ │ ├── LocationManagerStub.java │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── MockLocationHelper.java │ │ │ │ │ │ │ ├── media │ │ │ │ │ │ │ │ ├── router │ │ │ │ │ │ │ │ │ └── MediaRouterServiceStub.java │ │ │ │ │ │ │ │ └── session │ │ │ │ │ │ │ │ │ └── SessionManagerStub.java │ │ │ │ │ │ │ ├── mount │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── MountServiceStub.java │ │ │ │ │ │ │ ├── network │ │ │ │ │ │ │ │ └── NetworkManagementStub.java │ │ │ │ │ │ │ ├── nfc │ │ │ │ │ │ │ │ └── NfcAdapterStub.java │ │ │ │ │ │ │ ├── notification │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── NotificationManagerStub.java │ │ │ │ │ │ │ ├── persistent_data_block │ │ │ │ │ │ │ │ └── PersistentDataBlockServiceStub.java │ │ │ │ │ │ │ ├── phonesubinfo │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── PhoneSubInfoStub.java │ │ │ │ │ │ │ ├── pm │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ ├── PackageManagerStub.java │ │ │ │ │ │ │ │ └── ShortcutServiceStub.java │ │ │ │ │ │ │ ├── power │ │ │ │ │ │ │ │ └── PowerManagerStub.java │ │ │ │ │ │ │ ├── restriction │ │ │ │ │ │ │ │ └── RestrictionStub.java │ │ │ │ │ │ │ ├── role │ │ │ │ │ │ │ │ └── RoleStub.java │ │ │ │ │ │ │ ├── search │ │ │ │ │ │ │ │ └── SearchManagerStub.java │ │ │ │ │ │ │ ├── service │ │ │ │ │ │ │ │ └── ServiceManagerStub.java │ │ │ │ │ │ │ ├── storage_stats │ │ │ │ │ │ │ │ └── StorageStatsStub.java │ │ │ │ │ │ │ ├── system │ │ │ │ │ │ │ │ ├── LockSettingsStub.java │ │ │ │ │ │ │ │ ├── SystemUpdateStub.java │ │ │ │ │ │ │ │ └── WifiScannerStub.java │ │ │ │ │ │ │ ├── telecom │ │ │ │ │ │ │ │ └── TelecomManagerStub.java │ │ │ │ │ │ │ ├── telephony │ │ │ │ │ │ │ │ ├── HwTelephonyStub.java │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ ├── TelephonyRegistryStub.java │ │ │ │ │ │ │ │ └── TelephonyStub.java │ │ │ │ │ │ │ ├── usage │ │ │ │ │ │ │ │ └── UsageStatsManagerStub.java │ │ │ │ │ │ │ ├── usb │ │ │ │ │ │ │ │ └── UsbManagerStub.java │ │ │ │ │ │ │ ├── user │ │ │ │ │ │ │ │ └── UserManagerStub.java │ │ │ │ │ │ │ ├── vibrator │ │ │ │ │ │ │ │ └── VibratorStub.java │ │ │ │ │ │ │ ├── view │ │ │ │ │ │ │ │ └── AutoFillManagerStub.java │ │ │ │ │ │ │ ├── wifi │ │ │ │ │ │ │ │ └── WifiManagerStub.java │ │ │ │ │ │ │ └── window │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ ├── WindowManagerStub.java │ │ │ │ │ │ │ │ └── session │ │ │ │ │ │ │ │ ├── BaseMethodProxy.java │ │ │ │ │ │ │ │ └── WindowSessionPatch.java │ │ │ │ │ │ ├── secondary │ │ │ │ │ │ │ ├── HackAppUtils.java │ │ │ │ │ │ │ ├── ProxyServiceFactory.java │ │ │ │ │ │ │ ├── ServiceConnectionDelegate.java │ │ │ │ │ │ │ ├── StubBinder.java │ │ │ │ │ │ │ └── VAContentProviderProxy.java │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ └── MethodParameterUtils.java │ │ │ │ │ ├── interfaces │ │ │ │ │ │ └── IInjector.java │ │ │ │ │ ├── ipc │ │ │ │ │ │ ├── LocalProxyUtils.java │ │ │ │ │ │ ├── ProviderCall.java │ │ │ │ │ │ ├── ServiceManagerNative.java │ │ │ │ │ │ ├── VAccountManager.java │ │ │ │ │ │ ├── VActivityManager.java │ │ │ │ │ │ ├── VContentManager.java │ │ │ │ │ │ ├── VDeviceManager.java │ │ │ │ │ │ ├── VJobScheduler.java │ │ │ │ │ │ ├── VLocationManager.java │ │ │ │ │ │ ├── VNotificationManager.java │ │ │ │ │ │ ├── VPackageManager.java │ │ │ │ │ │ ├── VirtualLocationManager.java │ │ │ │ │ │ └── VirtualStorageManager.java │ │ │ │ │ ├── natives │ │ │ │ │ │ └── NativeMethods.java │ │ │ │ │ ├── service │ │ │ │ │ │ ├── ServiceManager.java │ │ │ │ │ │ └── ServiceRecord.java │ │ │ │ │ └── stub │ │ │ │ │ │ ├── AmsTask.java │ │ │ │ │ │ ├── ChooseAccountTypeActivity.java │ │ │ │ │ │ ├── ChooseTypeAndAccountActivity.java │ │ │ │ │ │ ├── ChooserActivity.java │ │ │ │ │ │ ├── ContentProviderProxy.java │ │ │ │ │ │ ├── HiddenForeNotification.java │ │ │ │ │ │ ├── InstallerActivity.java │ │ │ │ │ │ ├── InstallerSetting.java │ │ │ │ │ │ ├── KeepAliveService.java │ │ │ │ │ │ ├── OutsideProxyContentProvider.java │ │ │ │ │ │ ├── RequestPermissionsActivity.java │ │ │ │ │ │ ├── ResolverActivity.java │ │ │ │ │ │ ├── ShadowActivity.java │ │ │ │ │ │ ├── ShadowContentProvider.java │ │ │ │ │ │ ├── ShadowDialogActivity.java │ │ │ │ │ │ ├── ShadowJobService.java │ │ │ │ │ │ ├── ShadowJobWorkService.java │ │ │ │ │ │ ├── ShadowNfcDispatcher.java │ │ │ │ │ │ ├── ShadowPendingActivity.java │ │ │ │ │ │ ├── ShadowPendingReceiver.java │ │ │ │ │ │ ├── ShadowPendingService.java │ │ │ │ │ │ ├── ShadowService.java │ │ │ │ │ │ ├── ShortcutHandleActivity.java │ │ │ │ │ │ ├── StubManifest.java │ │ │ │ │ │ ├── TechListChooserActivity.java │ │ │ │ │ │ ├── UnInstallerActivity.java │ │ │ │ │ │ ├── WindowPreviewActivity.java │ │ │ │ │ │ └── usb │ │ │ │ │ │ ├── DeviceFilter.java │ │ │ │ │ │ ├── ShadowUsbActivity.java │ │ │ │ │ │ ├── UsbListChooserActivity.java │ │ │ │ │ │ └── XmlUtils.java │ │ │ │ │ ├── helper │ │ │ │ │ ├── AvoidRecursive.java │ │ │ │ │ ├── DexOptimizer.java │ │ │ │ │ ├── Keep.java │ │ │ │ │ ├── MultiAvoidRecursive.java │ │ │ │ │ ├── ParcelHelper.java │ │ │ │ │ ├── PersistenceLayer.java │ │ │ │ │ ├── collection │ │ │ │ │ │ ├── ArrayMap.java │ │ │ │ │ │ ├── ArraySet.java │ │ │ │ │ │ ├── ContainerHelpers.java │ │ │ │ │ │ ├── IntArray.java │ │ │ │ │ │ ├── MapCollections.java │ │ │ │ │ │ ├── SimpleArrayMap.java │ │ │ │ │ │ └── SparseArray.java │ │ │ │ │ ├── compat │ │ │ │ │ │ ├── AccountManagerCompat.java │ │ │ │ │ │ ├── ActivityManagerCompat.java │ │ │ │ │ │ ├── ApplicationThreadCompat.java │ │ │ │ │ │ ├── BuildCompat.java │ │ │ │ │ │ ├── BundleCompat.java │ │ │ │ │ │ ├── ContentProviderCompat.java │ │ │ │ │ │ ├── ContentResolverCompat.java │ │ │ │ │ │ ├── IApplicationThreadCompat.java │ │ │ │ │ │ ├── IntentCompat.java │ │ │ │ │ │ ├── JobWorkItemCompat.java │ │ │ │ │ │ ├── NativeLibraryHelperCompat.java │ │ │ │ │ │ ├── NotificationChannelCompat.java │ │ │ │ │ │ ├── ObjectsCompat.java │ │ │ │ │ │ ├── PackageParserCompat.java │ │ │ │ │ │ ├── ParceledListSliceCompat.java │ │ │ │ │ │ ├── PermissionCompat.java │ │ │ │ │ │ ├── StorageManagerCompat.java │ │ │ │ │ │ ├── StrictModeCompat.java │ │ │ │ │ │ └── SystemPropertiesCompat.java │ │ │ │ │ ├── dedex │ │ │ │ │ │ ├── DataReader.java │ │ │ │ │ │ ├── Dex.java │ │ │ │ │ │ ├── Elf.java │ │ │ │ │ │ ├── Oat.java │ │ │ │ │ │ └── Vdex.java │ │ │ │ │ └── utils │ │ │ │ │ │ ├── ArrayUtils.java │ │ │ │ │ │ ├── AtomicFile.java │ │ │ │ │ │ ├── BitmapUtils.java │ │ │ │ │ │ ├── ClassUtils.java │ │ │ │ │ │ ├── ComponentUtils.java │ │ │ │ │ │ ├── DrawableUtils.java │ │ │ │ │ │ ├── EncodeUtils.java │ │ │ │ │ │ ├── FastXmlSerializer.java │ │ │ │ │ │ ├── FileUtils.java │ │ │ │ │ │ ├── IInterfaceUtils.java │ │ │ │ │ │ ├── MD5Utils.java │ │ │ │ │ │ ├── MediaFileUtil.java │ │ │ │ │ │ ├── PropertiesUtils.java │ │ │ │ │ │ ├── Reflect.java │ │ │ │ │ │ ├── ReflectException.java │ │ │ │ │ │ ├── SchedulerTask.java │ │ │ │ │ │ ├── SignaturesUtils.java │ │ │ │ │ │ ├── Singleton.java │ │ │ │ │ │ ├── VLog.java │ │ │ │ │ │ ├── XmlSerializerAndParser.java │ │ │ │ │ │ └── marks │ │ │ │ │ │ ├── FakeDeviceMark.java │ │ │ │ │ │ └── FakeLocMark.java │ │ │ │ │ ├── oem │ │ │ │ │ └── OemPermissionHelper.java │ │ │ │ │ ├── open │ │ │ │ │ └── MultiAppHelper.java │ │ │ │ │ ├── os │ │ │ │ │ ├── BackgroundThread.java │ │ │ │ │ ├── VBinder.java │ │ │ │ │ ├── VEnvironment.java │ │ │ │ │ ├── VUserHandle.java │ │ │ │ │ ├── VUserInfo.java │ │ │ │ │ └── VUserManager.java │ │ │ │ │ ├── remote │ │ │ │ │ ├── AppRunningProcessInfo.java │ │ │ │ │ ├── AppTaskInfo.java │ │ │ │ │ ├── BadgerInfo.java │ │ │ │ │ ├── BroadcastIntentData.java │ │ │ │ │ ├── ClientConfig.java │ │ │ │ │ ├── InstallOptions.java │ │ │ │ │ ├── InstallResult.java │ │ │ │ │ ├── InstalledAppInfo.java │ │ │ │ │ ├── IntentSenderData.java │ │ │ │ │ ├── IntentSenderExtData.java │ │ │ │ │ ├── PendingResultData.java │ │ │ │ │ ├── Problem.java │ │ │ │ │ ├── ReceiverInfo.java │ │ │ │ │ ├── ServiceResult.java │ │ │ │ │ ├── SettingRuleInfo.java │ │ │ │ │ ├── StubActivityRecord.java │ │ │ │ │ ├── SyncInfo.java │ │ │ │ │ ├── VDeviceConfig.java │ │ │ │ │ ├── VJobWorkItem.java │ │ │ │ │ ├── VParceledListSlice.java │ │ │ │ │ └── vloc │ │ │ │ │ │ ├── VCell.java │ │ │ │ │ │ ├── VLocation.java │ │ │ │ │ │ └── VWifi.java │ │ │ │ │ └── server │ │ │ │ │ ├── BinderProvider.java │ │ │ │ │ ├── ServiceCache.java │ │ │ │ │ ├── accounts │ │ │ │ │ ├── AccountAndUser.java │ │ │ │ │ ├── RegisteredServicesParser.java │ │ │ │ │ ├── VAccount.java │ │ │ │ │ ├── VAccountManagerService.java │ │ │ │ │ └── VAccountVisibility.java │ │ │ │ │ ├── am │ │ │ │ │ ├── ActiveServices.java │ │ │ │ │ ├── ActivityRecord.java │ │ │ │ │ ├── ActivityStack.java │ │ │ │ │ ├── AppBindRecord.java │ │ │ │ │ ├── AttributeCache.java │ │ │ │ │ ├── BroadcastSystem.java │ │ │ │ │ ├── ConnectionRecord.java │ │ │ │ │ ├── LaunchingActivity.java │ │ │ │ │ ├── PendingNewIntent.java │ │ │ │ │ ├── ProcessMap.java │ │ │ │ │ ├── ProcessRecord.java │ │ │ │ │ ├── ServiceRecord.java │ │ │ │ │ ├── TaskRecord.java │ │ │ │ │ ├── UidSystem.java │ │ │ │ │ └── VActivityManagerService.java │ │ │ │ │ ├── bit64 │ │ │ │ │ └── V64BitHelper.java │ │ │ │ │ ├── content │ │ │ │ │ ├── SyncAdaptersCache.java │ │ │ │ │ ├── SyncManager.java │ │ │ │ │ ├── SyncOperation.java │ │ │ │ │ ├── SyncQueue.java │ │ │ │ │ ├── SyncStorageEngine.java │ │ │ │ │ ├── VContentService.java │ │ │ │ │ ├── VSyncInfo.java │ │ │ │ │ └── VSyncRecord.java │ │ │ │ │ ├── device │ │ │ │ │ ├── DeviceInfoPersistenceLayer.java │ │ │ │ │ └── VDeviceManagerService.java │ │ │ │ │ ├── job │ │ │ │ │ └── VJobSchedulerService.java │ │ │ │ │ ├── location │ │ │ │ │ └── VirtualLocationService.java │ │ │ │ │ ├── memory │ │ │ │ │ ├── MappedMemoryRegion.java │ │ │ │ │ ├── MemoryRegionParser.java │ │ │ │ │ ├── MemoryScanEngine.java │ │ │ │ │ ├── MemoryValue.java │ │ │ │ │ └── ProcessMemory.java │ │ │ │ │ ├── notification │ │ │ │ │ ├── NotificationCompat.java │ │ │ │ │ ├── NotificationCompatCompatV14.java │ │ │ │ │ ├── NotificationCompatCompatV21.java │ │ │ │ │ ├── NotificationFixer.java │ │ │ │ │ ├── PendIntentCompat.java │ │ │ │ │ ├── ReflectionActionCompat.java │ │ │ │ │ ├── RemoteViewsFixer.java │ │ │ │ │ ├── VNotificationManagerService.java │ │ │ │ │ └── WidthCompat.java │ │ │ │ │ ├── pm │ │ │ │ │ ├── AppChangedCallbackList.java │ │ │ │ │ ├── ComponentState.java │ │ │ │ │ ├── ComponentStateManager.java │ │ │ │ │ ├── FastImmutableArraySet.java │ │ │ │ │ ├── IAppChangedCallback.java │ │ │ │ │ ├── IntentResolver.java │ │ │ │ │ ├── OatHelper.java │ │ │ │ │ ├── PackageCacheManager.java │ │ │ │ │ ├── PackagePersistenceLayer.java │ │ │ │ │ ├── PackageSetting.java │ │ │ │ │ ├── PackageUserState.java │ │ │ │ │ ├── PrivilegeAppOptimizer.java │ │ │ │ │ ├── ProviderIntentResolver.java │ │ │ │ │ ├── VAppManagerService.java │ │ │ │ │ ├── VPackageManagerService.java │ │ │ │ │ ├── VUserManagerService.java │ │ │ │ │ ├── installer │ │ │ │ │ │ ├── FileBridge.java │ │ │ │ │ │ ├── PackageHelper.java │ │ │ │ │ │ ├── PackageInstallInfo.java │ │ │ │ │ │ ├── PackageInstallObserver.java │ │ │ │ │ │ ├── PackageInstallerSession.java │ │ │ │ │ │ ├── SessionInfo.java │ │ │ │ │ │ ├── SessionParams.java │ │ │ │ │ │ └── VPackageInstallerService.java │ │ │ │ │ ├── legacy │ │ │ │ │ │ └── PackageSettingV1.java │ │ │ │ │ └── parser │ │ │ │ │ │ ├── PackageParserEx.java │ │ │ │ │ │ └── VPackage.java │ │ │ │ │ ├── secondary │ │ │ │ │ ├── BinderDelegateService.java │ │ │ │ │ └── FakeIdentityBinder.java │ │ │ │ │ └── vs │ │ │ │ │ ├── VSConfig.java │ │ │ │ │ ├── VSPersistenceLayer.java │ │ │ │ │ └── VirtualStorageService.java │ │ │ └── xdja │ │ │ │ ├── activitycounter │ │ │ │ ├── ActivityCounterManager.java │ │ │ │ ├── ActivityCounterService.java │ │ │ │ ├── BaseCounterManager.java │ │ │ │ ├── CounterCallbackManager.java │ │ │ │ ├── FloatIconBallManager.java │ │ │ │ └── ScreenLockManager.java │ │ │ │ ├── call │ │ │ │ ├── CallLogObserver.java │ │ │ │ ├── DialerActivity.java │ │ │ │ ├── PhoneCallReceiver.java │ │ │ │ └── PhoneCallService.java │ │ │ │ ├── ckms │ │ │ │ └── TokenProvider.java │ │ │ │ ├── lxf │ │ │ │ └── vpntest │ │ │ │ │ └── MyVpnService.java │ │ │ │ ├── mms │ │ │ │ ├── LaunchConversationActivity.java │ │ │ │ ├── NoConfirmationSmsSendService.java │ │ │ │ ├── SmsConstants.java │ │ │ │ ├── SmsObserver.java │ │ │ │ └── receiver │ │ │ │ │ ├── MmsWapPushDeliverReceiver.java │ │ │ │ │ ├── ProxyReceiver.java │ │ │ │ │ ├── SmsDeliverReceiver.java │ │ │ │ │ └── SmsReceiver.java │ │ │ │ ├── monitor │ │ │ │ └── MediaObserver.java │ │ │ │ ├── safeclient │ │ │ │ └── TunVpnService.java │ │ │ │ ├── tun │ │ │ │ └── TunVpnService.java │ │ │ │ ├── tunvpn │ │ │ │ └── core │ │ │ │ │ └── TunVpnService.java │ │ │ │ ├── utils │ │ │ │ ├── PackagePermissionManager.java │ │ │ │ ├── SignatureVerify.java │ │ │ │ └── Stirrer.java │ │ │ │ └── zs │ │ │ │ ├── BoxProvider.java │ │ │ │ ├── DataCleanManager.java │ │ │ │ ├── InstallerSettingManager.java │ │ │ │ ├── InstallerSettingService.java │ │ │ │ ├── LoadModules.java │ │ │ │ ├── MobileInfoUtil.java │ │ │ │ ├── NotificationListener.java │ │ │ │ ├── ProviderInfoUtil.java │ │ │ │ ├── UacProxyActivity.java │ │ │ │ ├── VAppPermissionManager.java │ │ │ │ ├── VAppPermissionManagerService.java │ │ │ │ ├── VSafekeyCkmsManager.java │ │ │ │ ├── VSafekeyCkmsManagerService.java │ │ │ │ ├── VSafekeyManager.java │ │ │ │ ├── VSafekeyManagerService.java │ │ │ │ ├── VServiceKeepAliveManager.java │ │ │ │ ├── VServiceKeepAliveService.java │ │ │ │ ├── VWaterMarkManager.java │ │ │ │ ├── VWaterMarkService.java │ │ │ │ ├── WaterMarkInfo.java │ │ │ │ ├── controllerManager.java │ │ │ │ ├── controllerService.java │ │ │ │ ├── exceptionRecorder.java │ │ │ │ └── netstrategy │ │ │ │ ├── NetStrategyPersistenceLayer.java │ │ │ │ └── TurnOnOffNetPersistenceLayer.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 │ │ │ │ │ └── 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 │ │ │ ├── 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 │ │ │ └── lang │ │ │ │ ├── ThreadGroup.java │ │ │ │ └── ThreadGroupN.java │ │ │ ├── libcore │ │ │ └── io │ │ │ │ ├── ForwardingOs.java │ │ │ │ ├── Libcore.java │ │ │ │ └── Os.java │ │ │ └── oem │ │ │ ├── HwApiCacheManagerEx.java │ │ │ ├── HwFrameworkFactory.java │ │ │ ├── IFlymePermissionService.java │ │ │ └── ZTEILocationManager.java │ │ ├── jni │ │ ├── Android.mk │ │ ├── Application.mk │ │ ├── Foundation │ │ │ ├── IORelocator.cpp │ │ │ ├── IORelocator.h │ │ │ ├── IORelocator64.cpp │ │ │ ├── Log.h │ │ │ ├── MapsRedirector.cpp │ │ │ ├── MapsRedirector.h │ │ │ ├── SandboxFs.cpp │ │ │ ├── SandboxFs.h │ │ │ ├── Symbol.cpp │ │ │ ├── Symbol.h │ │ │ ├── VMHook.cpp │ │ │ ├── VMHook.h │ │ │ ├── canonicalize_md.c │ │ │ ├── canonicalize_md.h │ │ │ ├── fake_dlfcn.cpp │ │ │ ├── fake_dlfcn.h │ │ │ └── syscall │ │ │ │ ├── BinarySyscallFinder.cpp │ │ │ │ └── BinarySyscallFinder.h │ │ ├── Jni │ │ │ ├── Helper.cpp │ │ │ ├── Helper.h │ │ │ ├── VAJni.cpp │ │ │ └── VAJni.h │ │ ├── Substrate │ │ │ ├── And64InlineHook.cpp │ │ │ ├── And64InlineHook.hpp │ │ │ ├── Buffer.hpp │ │ │ ├── CydiaSubstrate.h │ │ │ ├── SubstrateARM.hpp │ │ │ ├── SubstrateDebug.cpp │ │ │ ├── SubstrateDebug.hpp │ │ │ ├── SubstrateHook.cpp │ │ │ ├── SubstrateHook.h │ │ │ ├── SubstrateLog.hpp │ │ │ ├── SubstratePosixMemory.cpp │ │ │ ├── SubstrateX86.hpp │ │ │ ├── hde64.c │ │ │ ├── hde64.h │ │ │ └── table64.h │ │ ├── safekey │ │ │ ├── safekey_jni.cpp │ │ │ └── safekey_jni.h │ │ ├── transparentED │ │ │ ├── EncryptFile.cpp │ │ │ ├── EncryptFile.h │ │ │ ├── IgnoreFile.cpp │ │ │ ├── IgnoreFile.h │ │ │ ├── TemplateFile.cpp │ │ │ ├── TemplateFile.h │ │ │ ├── commond.sh │ │ │ ├── ctr │ │ │ │ ├── SpookyV2.cpp │ │ │ │ ├── SpookyV2.h │ │ │ │ ├── caesar_cipher.cpp │ │ │ │ ├── caesar_cipher.h │ │ │ │ ├── crypter.cpp │ │ │ │ ├── crypter.h │ │ │ │ ├── ctr.cpp │ │ │ │ ├── ctr.h │ │ │ │ ├── rng.cpp │ │ │ │ ├── rng.h │ │ │ │ ├── sm4.c │ │ │ │ ├── sm4.h │ │ │ │ ├── sm4_cipher.cpp │ │ │ │ ├── sm4_cipher.h │ │ │ │ ├── test_ctr.cpp │ │ │ │ ├── util.cpp │ │ │ │ └── util.h │ │ │ ├── encryptInfoMgr.cpp │ │ │ ├── encryptInfoMgr.h │ │ │ ├── ff_Recognizer.cpp │ │ │ ├── ff_Recognizer.h │ │ │ ├── fileCoder1.cpp │ │ │ ├── fileCoder1.h │ │ │ ├── originalInterface.cpp │ │ │ ├── originalInterface.h │ │ │ ├── virtualFileSystem.cpp │ │ │ └── virtualFileSystem.h │ │ └── utils │ │ │ ├── Autolock.h │ │ │ ├── Makefile │ │ │ ├── RefBase.h │ │ │ ├── StrongPointer.h │ │ │ ├── SuperStrongPointer.h │ │ │ ├── atomicVessel.h │ │ │ ├── controllerManagerNative.cpp │ │ │ ├── controllerManagerNative.h │ │ │ ├── main.cpp │ │ │ ├── md5.c │ │ │ ├── md5.h │ │ │ ├── mylog.h │ │ │ ├── releaser.h │ │ │ ├── timeStamp.h │ │ │ ├── utils.cpp │ │ │ ├── utils.h │ │ │ ├── zJNIEnv.cpp │ │ │ ├── zJNIEnv.h │ │ │ ├── zMd5.cpp │ │ │ ├── zMd5.h │ │ │ └── zString.h │ │ ├── jniLibs │ │ ├── armeabi-v7a │ │ │ ├── libmyfile.so │ │ │ └── libtencentloc.so │ │ └── armeabi │ │ │ ├── libmyfile.so │ │ │ └── libtencentloc.so │ │ └── res │ │ ├── anim │ │ └── imageroate.xml │ │ ├── drawable-xxhdpi │ │ ├── btn_del_cancle.xml │ │ ├── btn_install_finish_open.xml │ │ ├── btn_install_goon.xml │ │ ├── btn_install_quit.xml │ │ ├── ic_install_check.png │ │ ├── ic_install_finish.png │ │ ├── ic_install_ing.png │ │ ├── shape_corners.xml │ │ ├── shape_del_cancle.xml │ │ ├── shape_del_cancle_press.xml │ │ ├── shape_install_cancle.xml │ │ ├── shape_install_cancle_press.xml │ │ ├── shape_install_finish_open.xml │ │ ├── shape_install_finish_open_press.xml │ │ ├── shape_install_goon.xml │ │ ├── shape_install_goon_press.xml │ │ ├── shape_install_ing.xml │ │ └── toast_install_border.9.png │ │ ├── layout │ │ ├── activity_preview.xml │ │ ├── app_not_authorized.xml │ │ ├── choose_account_row.xml │ │ ├── choose_account_type.xml │ │ ├── choose_type_and_account.xml │ │ ├── custom_installer.xml │ │ ├── custom_installer_del.xml │ │ ├── custom_notification.xml │ │ ├── custom_notification_lite.xml │ │ ├── custom_uninstaller.xml │ │ ├── resolve_list_item.xml │ │ └── toast_install_del.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values │ │ ├── dimens.xml │ │ ├── integer.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── nfc_tech_filter.xml │ │ └── usb_llvision_device_filter.xml ├── libaar ├── libaar_pro ├── libsandhook │ ├── .gitignore │ ├── build.gradle │ ├── libs │ │ └── dalvik-dx-9.0.0_r3.jar │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── cpp │ │ ├── Android.mk │ │ ├── Application.mk │ │ ├── CMakeLists.txt │ │ ├── art │ │ │ ├── art_compiler_options.cpp │ │ │ └── art_method.cpp │ │ ├── casts │ │ │ ├── cast_art_method.cpp │ │ │ └── cast_compiler_options.cpp │ │ ├── includes │ │ │ ├── arch.h │ │ │ ├── arch_base.h │ │ │ ├── art_compiler_options.h │ │ │ ├── art_jit.h │ │ │ ├── art_method.h │ │ │ ├── art_runtime.h │ │ │ ├── cast.h │ │ │ ├── cast_art_method.h │ │ │ ├── cast_compiler_options.h │ │ │ ├── dlfcn_nougat.h │ │ │ ├── elf_util.h │ │ │ ├── hide_api.h │ │ │ ├── inst.h │ │ │ ├── log.h │ │ │ ├── native_hook.h │ │ │ ├── never_call.h │ │ │ ├── offset.h │ │ │ ├── sandhook.h │ │ │ ├── trampoline.h │ │ │ ├── trampoline_manager.h │ │ │ └── utils.h │ │ ├── inst │ │ │ ├── insts_arm32.cpp │ │ │ └── insts_arm64.cpp │ │ ├── nativehook │ │ │ └── native_hook.cpp │ │ ├── sandhook.cpp │ │ ├── trampoline │ │ │ ├── arch │ │ │ │ ├── arm32.S │ │ │ │ └── arm64.S │ │ │ ├── trampoline.cpp │ │ │ └── trampoline_manager.cpp │ │ └── utils │ │ │ ├── dlfcn_nougat.cpp │ │ │ ├── elf_util.cpp │ │ │ ├── hide_api.cpp │ │ │ ├── lock.h │ │ │ ├── offset.cpp │ │ │ └── utils.cpp │ │ └── java │ │ ├── andhook │ │ ├── SandXposed.java │ │ └── lib │ │ │ ├── IXposedHookCmdInit.java │ │ │ ├── IXposedHookInitPackageResources.java │ │ │ ├── IXposedHookLoadPackage.java │ │ │ ├── IXposedHookZygoteInit.java │ │ │ ├── IXposedMod.java │ │ │ ├── SELinuxHelper.java │ │ │ ├── XC_MethodHook.java │ │ │ ├── XC_MethodReplacement.java │ │ │ ├── XSharedPreferences.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 │ │ │ └── utils │ │ │ ├── ArrayUtils.java │ │ │ ├── ClassUtils.java │ │ │ ├── JavaVersion.java │ │ │ ├── MemberUtils.java │ │ │ └── SystemUtils.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 │ │ ├── ArtMethodSizeTest.java │ │ ├── ClassNeverCall.java │ │ ├── HookLog.java │ │ ├── PendingHookHandler.java │ │ ├── SandHook.java │ │ ├── SandHookConfig.java │ │ ├── SandHookMethodResolver.java │ │ ├── annotation │ │ ├── HookClass.java │ │ ├── HookMethod.java │ │ ├── HookMethodBackup.java │ │ ├── HookMode.java │ │ ├── HookReflectClass.java │ │ ├── MethodParams.java │ │ ├── MethodReflectParams.java │ │ ├── Param.java │ │ ├── SkipParamCheck.java │ │ └── ThisObject.java │ │ ├── blacklist │ │ └── HookBlackList.java │ │ ├── utils │ │ ├── ArtDexOptimizer.java │ │ ├── ClassStatusUtils.java │ │ ├── FileUtils.java │ │ ├── ParamWrapper.java │ │ ├── ReflectionUtils.java │ │ └── Unsafe.java │ │ ├── wrapper │ │ ├── HookErrorException.java │ │ ├── HookWrapper.java │ │ └── StubMethodsFactory.java │ │ └── xposedcompat │ │ ├── XposedCompat.java │ │ ├── classloaders │ │ └── ComposeClassLoader.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 └── settings.gradle └── doc ├── css ├── google-fonts.css ├── prettify.css └── style.css ├── index.html └── js ├── jquery.localScroll.min.js ├── jquery.localscroll-1.2.7.js ├── jquery.min.js ├── jquery.scrollTo-1.4.3.1.js ├── jquery.scrollTo.min.js ├── layout.js └── prettify └── prettify.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | .idea 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | 35 | # Intellij 36 | *.iml 37 | .idea/workspace.xml 38 | 39 | # Keystore files 40 | *.jks 41 | .externalNativeBuild 42 | -------------------------------------------------------------------------------- /Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/Logo.png -------------------------------------------------------------------------------- /VirtualApp/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .idea 7 | .DS_Store 8 | /build 9 | /captures 10 | -------------------------------------------------------------------------------- /VirtualApp/VAConfig.gradle: -------------------------------------------------------------------------------- 1 | ext { 2 | if (project.hasProperty('appid')) { 3 | PACKAGE_NAME_32BIT = appid 4 | } else { 5 | PACKAGE_NAME_32BIT = 'io.busniess.va' 6 | } 7 | 8 | PACKAGE_NAME_ARM64 = 'io.virtualapp.addon.arm64' 9 | PERMISSION_PREFIX = PACKAGE_NAME_32BIT 10 | AUTHORITY64_PREFIX = PACKAGE_NAME_ARM64 11 | 12 | VERSION = '3.3.0' 13 | VERSION_CODE = 180080914 14 | } 15 | -------------------------------------------------------------------------------- /VirtualApp/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /VirtualApp/app/libs/TencentLocationSDK_v6.1.2_r1df4baaa_170627_1056.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/libs/TencentLocationSDK_v6.1.2_r1df4baaa_170627_1056.jar -------------------------------------------------------------------------------- /VirtualApp/app/libs/TencentMapSDK_Raster_v_1.2.8_e45bcd0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/libs/TencentMapSDK_Raster_v_1.2.8_e45bcd0.jar -------------------------------------------------------------------------------- /VirtualApp/app/libs/TencentMapSearch_v1.1.7.3207904.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/libs/TencentMapSearch_v1.1.7.3207904.jar -------------------------------------------------------------------------------- /VirtualApp/app/libs/securitysdk-v2--standard-4.0.12.2477.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/libs/securitysdk-v2--standard-4.0.12.2477.jar -------------------------------------------------------------------------------- /VirtualApp/app/src/main/assets/OaceOaT8w5Xda6wa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/assets/OaceOaT8w5Xda6wa -------------------------------------------------------------------------------- /VirtualApp/app/src/main/assets/magic.mgc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/assets/magic.mgc -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/AppNameConstants.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | public class AppNameConstants { 7 | 8 | public static final String 穿越火线 = "com.tencent.tmgp.cf"; 9 | 10 | public static final String 刺激战场 = "com.tencent.tmgp.pubgmhd"; 11 | } 12 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/PackageReceiver.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | public class PackageReceiver extends BroadcastReceiver { 8 | 9 | @Override 10 | public void onReceive(final Context context, Intent intent) { 11 | 12 | } 13 | } -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/abs/BasePresenter.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.abs; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | public interface BasePresenter { 7 | void start(); 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/abs/BaseView.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.abs; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | 6 | /** 7 | * @author Lody 8 | */ 9 | public interface BaseView { 10 | Activity getActivity(); 11 | Context getContext(); 12 | void setPresenter(T presenter); 13 | } 14 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/abs/Callback.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.abs; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public interface Callback { 8 | void callback(T result); 9 | } 10 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/abs/Value.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.abs; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public class Value { 8 | public T val; 9 | } 10 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/abs/reflect/ReflectException.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.abs.reflect; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | public class ReflectException extends RuntimeException { 7 | 8 | private static final long serialVersionUID = 663038727503637969L; 9 | 10 | public ReflectException(Throwable cause) { 11 | super(cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/home/ListAppContract.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.home; 2 | 3 | import java.util.List; 4 | 5 | import io.virtualapp.abs.BasePresenter; 6 | import io.virtualapp.abs.BaseView; 7 | import io.virtualapp.home.models.AppInfo; 8 | 9 | /** 10 | * @author Lody 11 | * @version 1.0 12 | */ 13 | /*package*/ class ListAppContract { 14 | interface ListAppView extends BaseView { 15 | 16 | void startLoading(); 17 | 18 | void loadFinish(List infoList); 19 | } 20 | 21 | interface ListAppPresenter extends BasePresenter { 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/home/models/AppInfo.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.home.models; 2 | 3 | import android.graphics.drawable.Drawable; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | 9 | public class AppInfo { 10 | public String packageName; 11 | public String path; 12 | public boolean cloneMode; 13 | public Drawable icon; 14 | public CharSequence name; 15 | public int cloneCount; 16 | public int targetSdkVersion; 17 | public String[] requestedPermissions; 18 | } 19 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/home/models/DeviceData.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.home.models; 2 | 3 | import android.content.Context; 4 | 5 | import com.lody.virtual.client.ipc.VDeviceManager; 6 | import com.lody.virtual.remote.InstalledAppInfo; 7 | import com.lody.virtual.remote.VDeviceConfig; 8 | 9 | public class DeviceData extends SettingsData { 10 | public DeviceData(Context context, InstalledAppInfo installedAppInfo, int userId) { 11 | super(context, installedAppInfo, userId); 12 | } 13 | 14 | public boolean isMocking() { 15 | return VDeviceManager.get().isEnable(userId); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/home/platform/PlatformInfo.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.home.platform; 2 | 3 | import android.content.pm.PackageInfo; 4 | 5 | import java.util.Collections; 6 | import java.util.HashSet; 7 | import java.util.Set; 8 | 9 | /** 10 | * @author Lody 11 | */ 12 | public abstract class PlatformInfo { 13 | 14 | private final Set platformPkgs = new HashSet<>(); 15 | 16 | public PlatformInfo(String... pkgs) { 17 | Collections.addAll(platformPkgs, pkgs); 18 | } 19 | 20 | public abstract boolean relyOnPlatform(PackageInfo info); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/provider/PathConfig.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.provider; 2 | 3 | 4 | /** 5 | * Created by geyao on 2019/5/22. 6 | */ 7 | 8 | public class PathConfig { 9 | /** 10 | * 11 | */ 12 | public static final String CONTENT_URI = "content://" + "io.virtualapp" + ".engine.provider"; 13 | } 14 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/vs/VSManagerActivity.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.vs; 2 | 3 | import io.virtualapp.abs.ui.VActivity; 4 | 5 | /** 6 | * @author Lody 7 | * 8 | * 9 | * 10 | */ 11 | public class VSManagerActivity extends VActivity { 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/widgets/ShimmerViewBase.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.widgets; 2 | 3 | public interface ShimmerViewBase { 4 | 5 | float getGradientX(); 6 | 7 | void setGradientX(float gradientX); 8 | 9 | boolean isShimmering(); 10 | 11 | void setShimmering(boolean isShimmering); 12 | 13 | boolean isSetUp(); 14 | 15 | void setAnimationSetupCallback(ShimmerViewHelper.AnimationSetupCallback callback); 16 | 17 | int getPrimaryColor(); 18 | 19 | void setPrimaryColor(int primaryColor); 20 | 21 | int getReflectionColor(); 22 | 23 | void setReflectionColor(int reflectionColor); 24 | } -------------------------------------------------------------------------------- /VirtualApp/app/src/main/java/io/virtualapp/widgets/ViewHelper.java: -------------------------------------------------------------------------------- 1 | package io.virtualapp.widgets; 2 | 3 | import io.virtualapp.App; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | public class ViewHelper { 9 | 10 | public static int dip2px(float dpValue) { 11 | final float scale = App.getApp().getResources().getDisplayMetrics().density; 12 | return (int) (dpValue * scale + 0.5f); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-hdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-hdpi/ic_add.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-hdpi/ic_add_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-hdpi/ic_add_circle.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-hdpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-hdpi/ic_check.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-hdpi/ic_crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-hdpi/ic_crash.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-hdpi/ic_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-hdpi/ic_menu.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-hdpi/ic_no_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-hdpi/ic_no_check.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-hdpi/ic_shortcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-hdpi/ic_shortcut.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xhdpi/bg_white.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xhdpi/bg_white.9.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xhdpi/map_mock_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xhdpi/map_mock_gray.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xhdpi/map_mock_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xhdpi/map_mock_start.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xhdpi/more_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xhdpi/more_menu.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xhdpi/more_menu_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xhdpi/more_menu_down.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_about.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_account.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_device.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_google.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_location.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_notification.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_settings.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_speed_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_speed_up.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_vs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_vs.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/ic_wifi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/ic_wifi.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_collect.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_input.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_input2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_input2.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_loc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_loc1.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_loc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_loc2.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_no_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_no_collect.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_postion_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_postion_green.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_select_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_select_location.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable-xxhdpi/map_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/drawable-xxhdpi/map_stop.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/blue_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/gray_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/home_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/ic_search_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/ic_search_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/icon_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/sel_clone_app_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/sel_guide_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 16 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/selector_collect_star.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/selector_map_input.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/selector_map_loc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/selector_mock.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/selector_more_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/selector_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/selector_text_green.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/shape_clone_app_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/shape_clone_app_btn_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/drawable/white_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/layout/activity_location_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 14 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/layout/activity_users.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/layout/fragment_list_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/menu/map_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 13 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/menu/marktet_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 12 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/menu/menu_device.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 12 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/menu/user_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/mipmap-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/mipmap-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/values/fitTextView.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /VirtualApp/app/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -2 4 | -------------------------------------------------------------------------------- /VirtualApp/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /VirtualApp/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Dec 11 20:02:35 CST 2018 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-4.6-all.zip 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | .externalNativeBuild/ 3 | obj/ 4 | .cxx/ 5 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/android/app/IActivityManager/ContentProviderHolder.aidl: -------------------------------------------------------------------------------- 1 | // ContentProviderHolder.aidl 2 | package android.app.IActivityManager; 3 | 4 | parcelable ContentProviderHolder; -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/android/app/job/JobWorkItem.aidl: -------------------------------------------------------------------------------- 1 | // JobWorkItem.aidl 2 | package android.app.job; 3 | 4 | parcelable JobWorkItem; 5 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/android/content/ISyncStatusObserver.aidl: -------------------------------------------------------------------------------- 1 | package android.content; 2 | 3 | 4 | interface ISyncStatusObserver { 5 | void onStatusChanged(int which); 6 | } 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/android/content/SyncStatusInfo.aidl: -------------------------------------------------------------------------------- 1 | package android.content; 2 | 3 | parcelable SyncStatusInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/os/VUserInfo.aidl: -------------------------------------------------------------------------------- 1 | // VUserInfo.aidl 2 | package com.lody.virtual.os; 3 | 4 | parcelable VUserInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/AppRunningProcessInfo.aidl: -------------------------------------------------------------------------------- 1 | // AppRunningProcessInfo.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable AppRunningProcessInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/AppTaskInfo.aidl: -------------------------------------------------------------------------------- 1 | // AppTaskInfo.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable AppTaskInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/BadgerInfo.aidl: -------------------------------------------------------------------------------- 1 | // BadgerInfo.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable BadgerInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/ClientConfig.aidl: -------------------------------------------------------------------------------- 1 | // ClientConfig.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable ClientConfig; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/InstallOptions.aidl: -------------------------------------------------------------------------------- 1 | // InstallOptions.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable InstallOptions; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/InstallResult.aidl: -------------------------------------------------------------------------------- 1 | // InstallResult.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable InstallResult; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/InstalledAppInfo.aidl: -------------------------------------------------------------------------------- 1 | // AppSetting.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable InstalledAppInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/IntentSenderData.aidl: -------------------------------------------------------------------------------- 1 | // IntentSenderData.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable IntentSenderData; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/PendingResultData.aidl: -------------------------------------------------------------------------------- 1 | // PendingResultData.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable PendingResultData; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/Problem.aidl: -------------------------------------------------------------------------------- 1 | // Problem.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable Problem; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/ReceiverInfo.aidl: -------------------------------------------------------------------------------- 1 | // ReceiverInfo.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable ReceiverInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/ServiceResult.aidl: -------------------------------------------------------------------------------- 1 | // ServiceResult.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable ServiceResult; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/VDeviceConfig.aidl: -------------------------------------------------------------------------------- 1 | // VDeviceConfig.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable VDeviceConfig; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/VJobWorkItem.aidl: -------------------------------------------------------------------------------- 1 | // VJobWorkItem.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable VJobWorkItem; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/VParceledListSlice.aidl: -------------------------------------------------------------------------------- 1 | // VParceledListSlice.aidl 2 | package com.lody.virtual.remote; 3 | 4 | parcelable VParceledListSlice; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/vloc/VCell.aidl: -------------------------------------------------------------------------------- 1 | // VCell.aidl 2 | package com.lody.virtual.remote.vloc; 3 | 4 | parcelable VCell; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/vloc/VLocation.aidl: -------------------------------------------------------------------------------- 1 | // VLocation.aidl 2 | package com.lody.virtual.remote.vloc; 3 | 4 | parcelable VLocation; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/remote/vloc/VWifi.aidl: -------------------------------------------------------------------------------- 1 | // VWifi.aidl 2 | package com.lody.virtual.remote.vloc; 3 | 4 | parcelable VWifi; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/IBinderDelegateService.aidl: -------------------------------------------------------------------------------- 1 | // IBinderDelegateService.aidl 2 | package com.lody.virtual.server; 3 | 4 | import android.content.ComponentName; 5 | 6 | interface IBinderDelegateService { 7 | 8 | ComponentName getComponent(); 9 | 10 | IBinder getService(); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/IPackageInstallerSession.aidl: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.server; 2 | 3 | import android.content.IntentSender; 4 | import android.os.ParcelFileDescriptor; 5 | 6 | interface IPackageInstallerSession { 7 | void setClientProgress(float progress); 8 | void addClientProgress(float progress); 9 | 10 | String[] getNames(); 11 | ParcelFileDescriptor openWrite(String name, long offsetBytes, long lengthBytes); 12 | ParcelFileDescriptor openRead(String name); 13 | void close(); 14 | void commit(in IntentSender statusReceiver); 15 | void abandon(); 16 | } 17 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/IRequestPermissionsResult.aidl: -------------------------------------------------------------------------------- 1 | // IRequestPermissionsResult.aidl 2 | package com.lody.virtual.server; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IRequestPermissionsResult { 7 | boolean onResult(int requestCode,in String[] permissions,in int[] grantResults); 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/interfaces/IDeviceManager.aidl: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.server.interfaces; 2 | 3 | import android.os.RemoteException; 4 | import java.util.List; 5 | import com.lody.virtual.remote.VDeviceConfig; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | interface IDeviceManager{ 11 | 12 | VDeviceConfig getDeviceConfig(int userId); 13 | 14 | void updateDeviceConfig(int userId,in VDeviceConfig config); 15 | 16 | boolean isEnable(int userId); 17 | 18 | void setEnable(int userId, boolean enable); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/interfaces/IIntentFilterObserver.aidl: -------------------------------------------------------------------------------- 1 | // IIntentFilterObserver.aidl 2 | package com.lody.virtual.server.interfaces; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IIntentFilterObserver { 7 | /** 8 | * Demonstrates some basic types that you can use as parameters 9 | * and return values in AIDL. 10 | */ 11 | 12 | Intent filter(in Intent intent); 13 | void setCallBack(IBinder callBack); 14 | IBinder getCallBack(); 15 | } 16 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/interfaces/IPackageObserver.aidl: -------------------------------------------------------------------------------- 1 | // IPackageObserver.aidl 2 | package com.lody.virtual.server.interfaces; 3 | 4 | interface IPackageObserver { 5 | void onPackageInstalled(in String packageName); 6 | void onPackageUninstalled(in String packageName); 7 | void onPackageUpdate(in String packageName); 8 | void onPackageInstalledAsUser(in int userId, in String packageName); 9 | void onPackageUninstalledAsUser(in int userId, in String packageName); 10 | void onPackageUpdateAsUser(in int userId, in String packageName); 11 | } 12 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/interfaces/IProcessObserver.aidl: -------------------------------------------------------------------------------- 1 | // IProcessObserver.aidl 2 | package com.lody.virtual.server.interfaces; 3 | 4 | interface IProcessObserver { 5 | void onProcessCreated(in String pkg, in String processName); 6 | 7 | void onProcessDied(in String pkg, in String processName); 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/interfaces/IServiceFetcher.aidl: -------------------------------------------------------------------------------- 1 | // IServiceFetcher.aidl 2 | package com.lody.virtual.server.interfaces; 3 | 4 | interface IServiceFetcher { 5 | IBinder getService(String name); 6 | void addService(String name,in IBinder service); 7 | void removeService(String name); 8 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/interfaces/IVirtualStorageService.aidl: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.server.interfaces; 2 | 3 | import android.os.RemoteException; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | interface IVirtualStorageService{ 9 | 10 | void setVirtualStorage(String packageName, int userId, String vsPath); 11 | 12 | String getVirtualStorage(String packageName, int userId); 13 | 14 | void setVirtualStorageState(String packageName, int userId, boolean enable); 15 | 16 | boolean isVirtualStorageEnable(String packageName, int userId); 17 | } 18 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/pm/installer/SessionInfo.aidl: -------------------------------------------------------------------------------- 1 | // SessionInfo.aidl 2 | package com.lody.virtual.server.pm.installer; 3 | 4 | parcelable SessionInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/lody/virtual/server/pm/installer/SessionParams.aidl: -------------------------------------------------------------------------------- 1 | // SessionParams.aidl 2 | package com.lody.virtual.server.pm.installer; 3 | 4 | parcelable SessionParams; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/activitycounter/IActivityCounterService.aidl: -------------------------------------------------------------------------------- 1 | // IActivityCounterService.aidl 2 | package com.xdja.activitycounter; 3 | import com.xdja.activitycounter.IForegroundInterface; 4 | // Declare any non-default types here with import statements 5 | 6 | interface IActivityCounterService { 7 | void activityCountAdd(String pkg,String name,int pid); 8 | void activityCountReduce(String pkg,String name,int pid); 9 | void cleanProcess(int pid); 10 | void cleanPackage(String pkg); 11 | boolean isForeGroundApp(String pkg); 12 | boolean isForeGround(); 13 | void registerCallback(IForegroundInterface vsCallback); 14 | void unregisterCallback(); 15 | } 16 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/activitycounter/IForegroundInterface.aidl: -------------------------------------------------------------------------------- 1 | // IForegroundInterface.aidl 2 | package com.xdja.activitycounter; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IForegroundInterface { 7 | 8 | void isForeground(boolean is); 9 | void screenChanged(int state); 10 | } 11 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IAppPermissionCallback.aidl: -------------------------------------------------------------------------------- 1 | // IAppPermissionCallback.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IAppPermissionCallback { 7 | void onPermissionTrigger(in String appPackageName,in String permissionName); 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IControllerServiceCallback.aidl: -------------------------------------------------------------------------------- 1 | // IControllerServiceCallback.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IControllerServiceCallback { 7 | void appStart(String packageName); 8 | void appStop(String packageName); 9 | void appProcessStart(String packageName, String processName, int pid); 10 | void appProcessStop(String packageName, String processName, int pid); 11 | } 12 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IInstallerSetting.aidl: -------------------------------------------------------------------------------- 1 | // IInstallerSetting.aidl 2 | package com.xdja.zs; 3 | 4 | interface IInstallerSetting { 5 | List getSystemApps(); 6 | void setSystemApps(in List list); 7 | void addSystemApp(String packagename); 8 | void removeSystemApp(String packagename); 9 | boolean isSystemApp(String pkg); 10 | } 11 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/INotificationCallback.aidl: -------------------------------------------------------------------------------- 1 | package com.xdja.zs; 2 | 3 | // Declare any non-default types here with import statements 4 | 5 | interface INotificationCallback { 6 | void addNotification(String packageName, int notificationCount); 7 | void cancelAllNotification(String packageName); 8 | void cancelNotification(String packageName, int notificationCount); 9 | } 10 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IOnPrimaryClipChangedListener.aidl: -------------------------------------------------------------------------------- 1 | // IOnPrimaryClipChangedListener.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IOnPrimaryClipChangedListener { 7 | void dispatchPrimaryClipChanged(); 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IServiceKeepAlive.aidl: -------------------------------------------------------------------------------- 1 | // IServiceKeepAlive.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IServiceKeepAlive { 7 | void scheduleRunKeepAliveService(String pkgName, int userId); 8 | void scheduleUpdateKeepAliveList(String pkgName, int action); 9 | boolean inKeepAliveServiceList(String pkgName); 10 | } 11 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IToastCallback.aidl: -------------------------------------------------------------------------------- 1 | // IToastCallback.aidl 2 | package com.xdja.zs; 3 | 4 | interface IToastCallback { 5 | void showToast(); 6 | } 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IUiCallback.aidl: -------------------------------------------------------------------------------- 1 | // IUiCallback.aid 2 | package com.xdja.zs; 3 | 4 | interface IUiCallback { 5 | void onAppOpened(in String packageName, in int userId); 6 | boolean isLaunched(in String packageName, in int userId); 7 | } 8 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IVSCallback.aidl: -------------------------------------------------------------------------------- 1 | // IVSCallback.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IVSCallback { 7 | void visitSafeKeyError(int error); 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IVSKeyCallback.aidl: -------------------------------------------------------------------------------- 1 | // IVSKeyCallback.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | interface IVSKeyCallback { 7 | byte[] encryptKey(in byte[] key,int keylen); 8 | byte[] decryptKey(in byte[] key, int seckeylen); 9 | } 10 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IVSafekey.aidl: -------------------------------------------------------------------------------- 1 | // IVSafekey.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | import com.xdja.zs.IVSCallback; 6 | 7 | interface IVSafekey { 8 | boolean checkCardState(); 9 | String getCardId(); 10 | int getPinTryCount(); 11 | byte[] encryptKey(in byte[] key, int keylen); 12 | byte[] decryptKey(in byte[] seckey, int seckeylen); 13 | byte[] getRandom(int len); 14 | void registerCallback(IVSCallback vsCallback); 15 | void unregisterCallback(); 16 | int initSafekeyCard(); 17 | } 18 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IVSafekeyCkmsManager.aidl: -------------------------------------------------------------------------------- 1 | // IVSafekeyCkmsManager.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | import com.xdja.zs.IVSKeyCallback; 6 | 7 | interface IVSafekeyCkmsManager { 8 | byte[] ckmsencryptKey(in byte[] key,int keylen); 9 | byte[] ckmsdecryptKey(in byte[] seckey,int seckeylen); 10 | void registerCallback(IVSKeyCallback ivsKeyCallback); 11 | void unregisterCallback(); 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/IWaterMark.aidl: -------------------------------------------------------------------------------- 1 | // IWaterMark.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | import com.xdja.zs.WaterMarkInfo; 6 | 7 | interface IWaterMark { 8 | /** 9 | * 设置水印信息 10 | */ 11 | void setWaterMark(in WaterMarkInfo waterMark); 12 | 13 | /** 14 | * 获取水印信息 15 | */ 16 | WaterMarkInfo getWaterMark(); 17 | } 18 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/aidl/com/xdja/zs/WaterMarkInfo.aidl: -------------------------------------------------------------------------------- 1 | // IWaterMarkInfo.aidl 2 | package com.xdja.zs; 3 | 4 | // Declare any non-default types here with import statements 5 | 6 | import com.xdja.zs.WaterMarkInfo; 7 | 8 | parcelable WaterMarkInfo; -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/assets/default_configs/com.mxtech.videoplayer.ad/shared_prefs/com.mxtech.videoplayer.ad_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %2Fstorage%2Femulated%2F0:!%2Fstorage%2Femulated%2F0%2FNotifications:!%2Fstorage%2Femulated%2F0%2FRingtones 5 | 6 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/Build.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual; 2 | 3 | /** 4 | * 5 | * Version info of VirtualApp project. 6 | * 7 | * @author Lody 8 | * 9 | */ 10 | @SuppressWarnings("unused") 11 | public class Build { 12 | 13 | public static final String VERSION_NAME = BuildConfig.VA_VERSION_NAME; 14 | 15 | public static final int VERSION_CODE = BuildConfig.VERSION_CODE; 16 | } 17 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/DexOverride.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | public class DexOverride { 7 | public String originDexPath; 8 | public String newDexPath; 9 | public String originOdexPath; 10 | public String newOdexPath; 11 | 12 | public DexOverride(String originDexPath, String newDexPath, String originOdexPath, String newOdexPath) { 13 | this.originDexPath = originDexPath; 14 | this.newDexPath = newDexPath; 15 | this.originOdexPath = originOdexPath; 16 | this.newOdexPath = newOdexPath; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/badger/IBadger.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.badger; 2 | 3 | import android.content.Intent; 4 | 5 | import com.lody.virtual.remote.BadgerInfo; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | public interface IBadger { 11 | 12 | String getAction(); 13 | 14 | BadgerInfo handleBadger(Intent intent); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/core/CrashHandler.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.core; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public interface CrashHandler extends Thread.UncaughtExceptionHandler{ 8 | 9 | } 10 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/core/SettingHandler.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.core; 2 | 3 | import java.io.File; 4 | 5 | public interface SettingHandler { 6 | boolean isDisableDlOpen(String packageName, String apkPath); 7 | 8 | boolean isUseRealDataDir(String packageName); 9 | 10 | boolean isDisableNotCopyApk(String packageName, File apkPath); 11 | 12 | boolean isUseOwnLibraryFiles(String packageName, String apkPath); 13 | } 14 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/annotations/Inject.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author Lody 10 | * 11 | */ 12 | @Target(ElementType.TYPE) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface Inject { 15 | Class value(); 16 | } 17 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/annotations/SkipInject.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author Lody 10 | * 11 | */ 12 | @Target(ElementType.TYPE) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface SkipInject { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/base/ReplaceCallingPkgMethodProxy.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.base; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | import com.lody.virtual.client.hook.utils.MethodParameterUtils; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | 11 | public class ReplaceCallingPkgMethodProxy extends StaticMethodProxy { 12 | 13 | public ReplaceCallingPkgMethodProxy(String name) { 14 | super(name); 15 | } 16 | 17 | @Override 18 | public boolean beforeCall(Object who, Method method, Object... args) { 19 | MethodParameterUtils.replaceFirstAppPkg(args); 20 | return super.beforeCall(who, method, args); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/base/ReplaceLastPkgMethodProxy.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.base; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | import com.lody.virtual.client.hook.utils.MethodParameterUtils; 6 | 7 | /** 8 | * @author Lody 9 | */ 10 | 11 | public class ReplaceLastPkgMethodProxy extends StaticMethodProxy { 12 | 13 | public ReplaceLastPkgMethodProxy(String name) { 14 | super(name); 15 | } 16 | 17 | @Override 18 | public boolean beforeCall(Object who, Method method, Object... args) { 19 | MethodParameterUtils.replaceLastAppPkg(args); 20 | return super.beforeCall(who, method, args); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/base/ResultStaticMethodProxy.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.base; 2 | 3 | import java.lang.reflect.Method; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | 9 | public class ResultStaticMethodProxy extends StaticMethodProxy { 10 | 11 | Object mResult; 12 | 13 | public ResultStaticMethodProxy(String name, Object result) { 14 | super(name); 15 | mResult = result; 16 | } 17 | 18 | public Object getResult() { 19 | return mResult; 20 | } 21 | 22 | @Override 23 | public Object call(Object who, Method method, Object... args) throws Throwable { 24 | return mResult; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/base/StaticMethodProxy.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.base; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public class StaticMethodProxy extends MethodProxy { 8 | 9 | private String mName; 10 | 11 | public StaticMethodProxy(String name) { 12 | this.mName = name; 13 | } 14 | 15 | @Override 16 | public String getMethodName() { 17 | return mName; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/delegate/ComponentDelegate.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.delegate; 2 | 3 | 4 | import com.lody.virtual.client.core.AppCallback; 5 | 6 | /** 7 | * @deprecated 8 | * @see AppCallback 9 | */ 10 | public interface ComponentDelegate extends AppCallback { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/delegate/TaskDescriptionDelegate.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.delegate; 2 | 3 | import android.annotation.TargetApi; 4 | import android.app.Activity; 5 | import android.app.ActivityManager; 6 | import android.os.Build; 7 | 8 | public interface TaskDescriptionDelegate { 9 | public ActivityManager.TaskDescription getTaskDescription(ActivityManager.TaskDescription oldTaskDescription); 10 | } 11 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/providers/InternalProviderHook.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.hook.providers; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public class InternalProviderHook extends ProviderHook { 8 | 9 | public InternalProviderHook(Object base) { 10 | super(base); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/interfaces/IInjector.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.interfaces; 2 | 3 | /** 4 | * @author Lody 5 | * 6 | * The Objects who implemention this interface will be able to inject other object. 7 | * 8 | */ 9 | public interface IInjector { 10 | 11 | /** 12 | * 13 | * Do injection. 14 | * 15 | * @throws Throwable if inject failed 16 | */ 17 | void inject() throws Throwable; 18 | 19 | /** 20 | * Check if the injection has bad. 21 | * 22 | * @return If the injection has bad 23 | */ 24 | boolean isEnvBad(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/client/stub/usb/XmlUtils.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.client.stub.usb; 2 | 3 | import org.xmlpull.v1.XmlPullParser; 4 | import org.xmlpull.v1.XmlPullParserException; 5 | 6 | import java.io.IOException; 7 | 8 | class XmlUtils { 9 | public static final void nextElement(XmlPullParser parser) throws XmlPullParserException, IOException { 10 | int type; 11 | while ((type = parser.next()) != parser.START_TAG 12 | && type != parser.END_DOCUMENT) { 13 | ; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/AvoidRecursive.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | public class AvoidRecursive { 7 | 8 | private boolean mCalling = false; 9 | 10 | public boolean beginCall() { 11 | if (mCalling) { 12 | return false; 13 | } 14 | mCalling = true; 15 | return true; 16 | } 17 | 18 | public void finishCall() { 19 | mCalling = false; 20 | } 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/compat/ApplicationThreadCompat.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.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 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/compat/ObjectsCompat.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.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 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/EncodeUtils.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.utils; 2 | 3 | import android.util.Base64; 4 | 5 | /** 6 | * @author Lody 7 | */ 8 | public class EncodeUtils { 9 | 10 | public static String decodeBase64(String base64) { 11 | return new String(Base64.decode(base64, Base64.DEFAULT)); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/IInterfaceUtils.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.utils; 2 | 3 | import android.os.IInterface; 4 | 5 | import com.lody.virtual.client.core.VirtualCore; 6 | 7 | public class IInterfaceUtils { 8 | public static boolean isAlive(IInterface binder) { 9 | if (binder == null) { 10 | return false; 11 | } 12 | return binder.asBinder().isBinderAlive(); 13 | } 14 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/ReflectException.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.utils; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | public class ReflectException extends RuntimeException { 7 | 8 | public ReflectException(String message, Throwable cause) { 9 | super(message, cause); 10 | } 11 | 12 | public ReflectException(Throwable cause) { 13 | super(cause); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/Singleton.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.utils; 2 | 3 | /** 4 | * Singleton helper class for lazily initialization. 5 | * 6 | * Modeled after frameworks/base/include/utils/Singleton.h 7 | * 8 | * @hide 9 | */ 10 | public abstract class Singleton { 11 | private T mInstance; 12 | 13 | protected abstract T create(); 14 | 15 | public final T get() { 16 | if (mInstance == null) { 17 | synchronized (this) { 18 | if (mInstance == null) { 19 | mInstance = create(); 20 | } 21 | } 22 | } 23 | return mInstance; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/XmlSerializerAndParser.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.utils; 2 | 3 | import org.xmlpull.v1.XmlPullParser; 4 | import org.xmlpull.v1.XmlPullParserException; 5 | import org.xmlpull.v1.XmlSerializer; 6 | 7 | import java.io.IOException; 8 | 9 | public interface XmlSerializerAndParser { 10 | void writeAsXml(T item, XmlSerializer out) throws IOException; 11 | T createFromXml(XmlPullParser parser) throws IOException, XmlPullParserException; 12 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/marks/FakeDeviceMark.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.utils.marks; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.SOURCE) 11 | public @interface FakeDeviceMark { 12 | String value() default ""; 13 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/marks/FakeLocMark.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.helper.utils.marks; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.SOURCE) 11 | public @interface FakeLocMark { 12 | String value() default ""; 13 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/server/am/PendingNewIntent.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.server.am; 2 | 3 | import android.content.Intent; 4 | 5 | public class PendingNewIntent { 6 | public int userId; 7 | public ActivityRecord sourceRecord; 8 | public Intent intent; 9 | 10 | public PendingNewIntent(int userId, ActivityRecord sourceRecord, Intent intent) { 11 | this.userId = userId; 12 | this.sourceRecord = sourceRecord; 13 | this.intent = intent; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/server/pm/IAppChangedCallback.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.server.pm; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | public interface IAppChangedCallback { 7 | void onCallback(boolean removed); 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/lody/virtual/server/pm/installer/PackageInstallInfo.java: -------------------------------------------------------------------------------- 1 | package com.lody.virtual.server.pm.installer; 2 | 3 | /** 4 | * @author Lody 5 | */ 6 | 7 | public class PackageInstallInfo { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/call/DialerActivity.java: -------------------------------------------------------------------------------- 1 | package com.xdja.call; 2 | 3 | 4 | import android.app.Activity; 5 | 6 | public class DialerActivity extends Activity { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/mms/LaunchConversationActivity.java: -------------------------------------------------------------------------------- 1 | package com.xdja.mms; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | 7 | public class LaunchConversationActivity extends Activity { 8 | 9 | @Override 10 | protected void onCreate(@Nullable Bundle savedInstanceState) { 11 | super.onCreate(savedInstanceState); 12 | //只用来设置默认短信应用 13 | finish(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/mms/SmsConstants.java: -------------------------------------------------------------------------------- 1 | package com.xdja.mms; 2 | 3 | public interface SmsConstants { 4 | String DEFAULT_SMS_APP_SETTING = "sms_default_application"; 5 | } 6 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/mms/receiver/MmsWapPushDeliverReceiver.java: -------------------------------------------------------------------------------- 1 | package com.xdja.mms.receiver; 2 | 3 | public class MmsWapPushDeliverReceiver extends ProxyReceiver { 4 | } 5 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/mms/receiver/SmsDeliverReceiver.java: -------------------------------------------------------------------------------- 1 | package com.xdja.mms.receiver; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | 6 | public final class SmsDeliverReceiver extends ProxyReceiver { 7 | @Override 8 | public void onReceive(Context context, Intent intent) { 9 | super.onReceive(context, intent); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/safeclient/TunVpnService.java: -------------------------------------------------------------------------------- 1 | package com.xdja.safeclient; 2 | 3 | import android.net.VpnService; 4 | 5 | /** 6 | * @Date 19-4-30 09 7 | * @Author lxf@xdja.com 8 | * @Descrip: 9 | */ 10 | public class TunVpnService extends VpnService { 11 | //add com.xdja.tun.TunVpnService into AndroidManifest.xml 12 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/tun/TunVpnService.java: -------------------------------------------------------------------------------- 1 | package com.xdja.tun; 2 | 3 | import android.net.VpnService; 4 | 5 | /** 6 | * @Date 19-4-30 09 7 | * @Author lxf@xdja.com 8 | * @Descrip: 9 | */ 10 | public class TunVpnService extends VpnService { 11 | //add com.xdja.tun.TunVpnService into AndroidManifest.xml 12 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/java/com/xdja/tunvpn/core/TunVpnService.java: -------------------------------------------------------------------------------- 1 | package com.xdja.tunvpn.core; 2 | 3 | import android.net.VpnService; 4 | 5 | /** 6 | * @Date 19-4-30 09 7 | * @Author lxf@xdja.com 8 | * @Descrip: 9 | */ 10 | public class TunVpnService extends VpnService { 11 | //add com.xdja.tun.TunVpnService into AndroidManifest.xml 12 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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.RefStaticObject; 7 | 8 | /** 9 | * @author Lody 10 | */ 11 | 12 | public class ContentResolver { 13 | public static Class TYPE = RefClass.load(ContentResolver.class, android.content.ContentResolver.class); 14 | public static RefStaticObject sContentService; 15 | } 16 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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.class, "android.content.pm.ILauncherApps$Stub"); 15 | public static RefStaticMethod asInterface; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | } -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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 | -------------------------------------------------------------------------------- /VirtualApp/lib/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) -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Foundation/Log.h: -------------------------------------------------------------------------------- 1 | // 2 | // VirtualApp Native Project 3 | // 4 | 5 | #ifndef VIRTUALAPP_LOG_H 6 | #define VIRTUALAPP_LOG_H 7 | 8 | #include 9 | 10 | #define TAG "V++" 11 | 12 | #define ALOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG ,__VA_ARGS__) 13 | #define ALOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG ,__VA_ARGS__) 14 | #define ALOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG ,__VA_ARGS__) 15 | #define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG ,__VA_ARGS__) 16 | 17 | #endif //VIRTUALAPP_LOG_H 18 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Foundation/MapsRedirector.h: -------------------------------------------------------------------------------- 1 | #ifndef MAPS_REDIRECTOR_H 2 | #define MAPS_REDIRECTOR_H 3 | 4 | int redirect_proc_maps(const char *const pathname, const int flags, const int mode); 5 | 6 | #endif // MAPS_REDIRECTOR_H -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Foundation/canonicalize_md.h: -------------------------------------------------------------------------------- 1 | // 2 | // VirtualApp Native Project 3 | // 4 | 5 | #ifndef FOUNDATION_PATH 6 | #define FOUNDATION_PATH 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | extern "C" const char * 16 | canonicalize_path(const char *original, char *resolved, size_t len); 17 | 18 | #endif // FOUNDATION_PATH 19 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Foundation/fake_dlfcn.h: -------------------------------------------------------------------------------- 1 | #ifndef DLFCN_H 2 | #define DLFCN_H 3 | 4 | void *fake_dlopen(const char *libpath, int flags); 5 | 6 | void *fake_dlsym(void *handle, const char *name); 7 | 8 | int fake_dlclose(void *handle); 9 | 10 | #endif -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Foundation/syscall/BinarySyscallFinder.h: -------------------------------------------------------------------------------- 1 | #ifndef BINARY_SYSCALL_FINDER_H 2 | #define BINARY_SYSCALL_FINDER_H 3 | 4 | #include 5 | 6 | #define BREAK_FIND_SYSCALL 0 7 | #define CONTINUE_FIND_SYSCALL 1 8 | 9 | void findSyscalls(const char *path, bool (*callback)(const char *, int, void *)); 10 | 11 | #endif //BINARY_SYSCALL_FINDER_H 12 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Jni/Helper.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include "Helper.h" 4 | 5 | ScopeUtfString::ScopeUtfString(jstring j_str) { 6 | _j_str = j_str; 7 | _c_str = getEnv()->GetStringUTFChars(j_str, NULL); 8 | } 9 | 10 | ScopeUtfString::~ScopeUtfString() { 11 | getEnv()->ReleaseStringUTFChars(_j_str, _c_str); 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Jni/Helper.h: -------------------------------------------------------------------------------- 1 | // 2 | // VirtualApp Native Project 3 | // 4 | 5 | #ifndef NDK_HELPER 6 | #define NDK_HELPER 7 | 8 | #include "VAJni.h" 9 | 10 | class ScopeUtfString { 11 | public: 12 | ScopeUtfString(jstring j_str); 13 | 14 | const char *c_str() { 15 | return _c_str; 16 | } 17 | 18 | ~ScopeUtfString(); 19 | 20 | private: 21 | jstring _j_str; 22 | const char *_c_str; 23 | }; 24 | 25 | #endif //NDK_HELPER 26 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/Substrate/SubstrateHook.h: -------------------------------------------------------------------------------- 1 | #ifndef __SUBSTRATEHOOK_H__ 2 | #define __SUBSTRATEHOOK_H__ 3 | 4 | 5 | #include 6 | 7 | #define _extern extern "C" __attribute__((__visibility__("default"))) 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | void MSHookFunction(void *symbol, void *replace, void **result); 14 | 15 | #ifdef __cplusplus 16 | } 17 | #endif 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/transparentED/commond.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm enc* 4 | rm des* 5 | rm log* 6 | 7 | for i in {1..100} 8 | #for i in {1..1} 9 | do 10 | echo $i times test begin ... 11 | ./e_test -mt org.jpg enc$i.xdja > log$i.txt 2>&1 12 | ./e_test -de enc$i.xdja des$i.jpg > /dev/null 2>&1 13 | echo $i times test end 14 | done 15 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/transparentED/encryptInfoMgr.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by zhangsong on 17-12-15. 3 | // 4 | 5 | #ifndef VIRTUALAPP_ENCRYPTINFOMGR_H 6 | #define VIRTUALAPP_ENCRYPTINFOMGR_H 7 | 8 | class EncryptInfo; 9 | class fileCoder; 10 | 11 | EncryptInfo * getEI(int version, EncryptInfo * ei = 0); 12 | fileCoder * getFC(int version, EncryptInfo * ei); 13 | 14 | #endif //VIRTUALAPP_ENCRYPTINFOMGR_H -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/utils/Makefile: -------------------------------------------------------------------------------- 1 | ssptest: main.o 2 | g++ main.o -o ssptest -lpthread -m32 -DHOST 3 | 4 | main.o: 5 | g++ -c main.cpp -o main.o -std=c++11 -m32 -DHOST 6 | 7 | clean: 8 | rm ssptest *.o 9 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/utils/zJNIEnv.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by zhangsong on 18-1-23. 3 | // 4 | 5 | #ifndef VIRTUALAPP_ZJNIENV_H 6 | #define VIRTUALAPP_ZJNIENV_H 7 | 8 | 9 | #include 10 | 11 | class zJNIEnv { 12 | private: 13 | static _JavaVM * _jvm; 14 | public: 15 | static void initial(_JavaVM *vm); 16 | 17 | private: 18 | bool isAttached; 19 | JNIEnv* _jniEnv; 20 | 21 | public: 22 | zJNIEnv(); 23 | virtual ~zJNIEnv(); 24 | 25 | JNIEnv* get() { return _jniEnv; } 26 | }; 27 | 28 | 29 | #endif //VIRTUALAPP_ZJNIENV_H 30 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/utils/zMd5.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by zhangsong on 18-1-27. 3 | // 4 | 5 | #include "zMd5.h" 6 | 7 | zMd5::zMd5() { 8 | memset(signature, 0, 16); 9 | } 10 | 11 | zMd5::~zMd5() { 12 | 13 | } 14 | 15 | char* zMd5::getSig(char * buf, int len) { 16 | if(buf == NULL || len <= 0) 17 | { 18 | 19 | } 20 | else { 21 | MD5Init(&ctx); 22 | MD5Update(&ctx, (unsigned char *)buf, (unsigned)len); 23 | MD5Final(signature, &ctx); 24 | } 25 | 26 | char * tmp = output.getBuf(); 27 | for(int i = 0; i < 16; i++) 28 | { 29 | sprintf(tmp + i*2, "%02X", signature[i]); 30 | } 31 | 32 | return tmp; 33 | } -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jni/utils/zMd5.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by zhangsong on 18-1-27. 3 | // 4 | 5 | #ifndef VIRTUALAPP_ZMD5_H 6 | #define VIRTUALAPP_ZMD5_H 7 | 8 | #include "md5.h" 9 | #include "zString.h" 10 | 11 | class zMd5 { 12 | private: 13 | MD5_CTX ctx; 14 | unsigned char signature[16]; 15 | zString output; 16 | 17 | public: 18 | zMd5(); 19 | virtual ~zMd5(); 20 | 21 | char * getSig(char * buf, int len); 22 | }; 23 | 24 | 25 | #endif //VIRTUALAPP_ZMD5_H 26 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jniLibs/armeabi-v7a/libmyfile.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/jniLibs/armeabi-v7a/libmyfile.so -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jniLibs/armeabi-v7a/libtencentloc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/jniLibs/armeabi-v7a/libtencentloc.so -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jniLibs/armeabi/libmyfile.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/jniLibs/armeabi/libmyfile.so -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/jniLibs/armeabi/libtencentloc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/jniLibs/armeabi/libtencentloc.so -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/anim/imageroate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/btn_del_cancle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/btn_install_finish_open.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/btn_install_goon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/btn_install_quit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/ic_install_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/res/drawable-xxhdpi/ic_install_check.png -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/ic_install_finish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/res/drawable-xxhdpi/ic_install_finish.png -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/ic_install_ing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/res/drawable-xxhdpi/ic_install_ing.png -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_corners.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_del_cancle.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_del_cancle_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_install_cancle.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_install_cancle_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_install_finish_open.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_install_finish_open_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_install_goon.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_install_goon_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/shape_install_ing.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/drawable-xxhdpi/toast_install_border.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/lib/src/main/res/drawable-xxhdpi/toast_install_border.9.png -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/layout/custom_notification_lite.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | -------------------------------------------------------------------------------- /VirtualApp/lib/src/main/res/values/integer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 4 | -------------------------------------------------------------------------------- /VirtualApp/libaar_pro: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | COMMIT=`git log --abbrev-commit --pretty=format:%h -n 1` 3 | 4 | if [ -e ./libva.aar ]; then 5 | rm -rf ./libva.aar 6 | fi 7 | ./gradlew lib:clean; 8 | ./gradlew lib:assembleRelease -Pappid="com.xdja.safetybox" -Pcommit="$COMMIT" 9 | cp ./lib/build/outputs/aar/lib-release.aar libva.aar 10 | 11 | if [ -e ./libva_pro.aar ]; then 12 | rm -rf ./libva_pro.aar 13 | fi 14 | ./gradlew lib:clean; 15 | ./gradlew lib:assembleRelease -Pappid="com.xdja.safetybox.pro" -Pcommit="$COMMIT" 16 | cp ./lib/build/outputs/aar/lib-release.aar libva_pro.aar 17 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/libs/dalvik-dx-9.0.0_r3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TR-TECH-GUIDE/VirtualApp/17482eb8010084f5f9c5fa26929d804807e19d2c/VirtualApp/libsandhook/libs/dalvik-dx-9.0.0_r3.jar -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI := armeabi-v7a 2 | APP_PLATFORM := android-19 3 | APP_STL := c++_static 4 | APP_OPTIM := release -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/art_jit.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by 甘尧 on 2019/2/23. 3 | // 4 | 5 | #ifndef SANDHOOK_ART_JIT_H 6 | #define SANDHOOK_ART_JIT_H 7 | 8 | namespace art { 9 | namespace jit { 10 | 11 | //7.0 - 9.0 12 | class JitCompiler { 13 | public: 14 | virtual ~JitCompiler(); 15 | std::unique_ptr compilerOptions; 16 | }; 17 | 18 | class Jit { 19 | public: 20 | //void* getCompilerOptions(); 21 | }; 22 | 23 | 24 | 25 | }; 26 | } 27 | 28 | #endif //SANDHOOK_ART_JIT_H 29 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/art_runtime.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by 甘尧 on 2019/2/23. 3 | // 4 | 5 | #ifndef SANDHOOK_ART_RUNTIME_H 6 | #define SANDHOOK_ART_RUNTIME_H 7 | 8 | #include "art_jit.h" 9 | 10 | namespace art { 11 | class Runtime { 12 | 13 | public: 14 | jit::Jit* getJit(); 15 | }; 16 | } 17 | 18 | #endif //SANDHOOK_ART_RUNTIME_H 19 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/cast_compiler_options.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by 甘尧 on 2019/1/12. 3 | // 4 | 5 | #ifndef SANDHOOK_CAST_COMPILER_OPTIONS_H 6 | #define SANDHOOK_CAST_COMPILER_OPTIONS_H 7 | 8 | #include "cast.h" 9 | #include "art_compiler_options.h" 10 | 11 | namespace SandHook { 12 | 13 | class CastCompilerOptions { 14 | public: 15 | static void init(JNIEnv *jniEnv); 16 | static IMember* inlineMaxCodeUnits; 17 | }; 18 | 19 | 20 | } 21 | 22 | #endif //SANDHOOK_CAST_COMPILER_OPTIONS_H 23 | 24 | 25 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/dlfcn_nougat.h: -------------------------------------------------------------------------------- 1 | #ifndef DLFCN_NOUGAT_H 2 | #define DLFCN_NOUGAT_H 3 | 4 | //see implementation in https://tech.meituan.com/2017/07/20/android-remote-debug.html 5 | extern "C" { 6 | int fake_dlclose(void *handle); 7 | 8 | void *fake_dlopen(const char *filename, int flags); 9 | 10 | void *fake_dlsym(void *handle, const char *name); 11 | 12 | const char *fake_dlerror(); 13 | 14 | void *getSymCompat(const char *filename, const char *name); 15 | } 16 | 17 | #endif //DLFCN_NOUGAT_H 18 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/log.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by SwiftGan on 2019/2/15. 3 | // 4 | 5 | #ifndef SANDHOOK_LOG_H 6 | #define SANDHOOK_LOG_H 7 | 8 | #include "android/log.h" 9 | 10 | #define TAG "SandHook-Native" 11 | 12 | #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__) 13 | #define LOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__) 14 | #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__) 15 | 16 | #endif //SANDHOOK_LOG_H 17 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/native_hook.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by SwiftGan on 2019/4/12. 3 | // 4 | 5 | #ifndef SANDHOOK_NATIVE_HOOK_H 6 | #define SANDHOOK_NATIVE_HOOK_H 7 | 8 | #include "sandhook.h" 9 | 10 | namespace SandHook { 11 | 12 | class NativeHook { 13 | public: 14 | static bool hookDex2oat(bool disableDex2oat); 15 | }; 16 | 17 | } 18 | 19 | #endif //SANDHOOK_NATIVE_HOOK_H 20 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/never_call.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by swift on 2019/6/3. 3 | // 4 | 5 | #ifndef SANDHOOK_NEVER_CALL_H 6 | #define SANDHOOK_NEVER_CALL_H 7 | 8 | #include 9 | 10 | extern "C" 11 | JNIEXPORT void JNICALL 12 | Java_com_swift_sandhook_ClassNeverCall_neverCallNative(JNIEnv *env, jobject instance); 13 | 14 | #endif //SANDHOOK_NEVER_CALL_H 15 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/cpp/includes/sandhook.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by SwiftGan on 2019/4/12. 3 | // 4 | 5 | #ifndef SANDHOOK_SANDHOOK_H 6 | #define SANDHOOK_SANDHOOK_H 7 | 8 | #include 9 | 10 | extern "C" 11 | JNIEXPORT bool nativeHookNoBackup(void* origin, void* hook); 12 | 13 | extern "C" 14 | JNIEXPORT void* findSym(const char *elf, const char *sym_name); 15 | 16 | #endif //SANDHOOK_SANDHOOK_H 17 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/andhook/lib/IXposedMod.java: -------------------------------------------------------------------------------- 1 | package andhook.lib; 2 | 3 | /** Marker interface for Xposed modules. Cannot be implemented directly. */ 4 | /* package */ interface IXposedMod {} 5 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/andhook/lib/callbacks/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Contains the base classes for callbacks. 3 | * 4 | *

For historical reasons, {@link andhook.lib.XC_MethodHook} and 5 | * {@link andhook.lib.XC_MethodReplacement} are directly in the 6 | * {@code de.robv.android.xposed} package. 7 | */ 8 | package andhook.lib.callbacks; 9 | 10 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/andhook/lib/utils/ArrayUtils.java: -------------------------------------------------------------------------------- 1 | package andhook.lib.utils; 2 | 3 | public class ArrayUtils { 4 | public static final Class[] EMPTY_CLASS_ARRAY = new Class[0]; 5 | public static boolean isSameLength(Object[] array1, Object[] array2) { 6 | if ((array1 == null && array2 != null && array2.length > 0) || 7 | (array2 == null && array1 != null && array1.length > 0) || 8 | (array1 != null && array2 != null && array1.length != array2.length)) { 9 | return false; 10 | } 11 | return true; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/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 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/ArtMethodSizeTest.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook; 2 | 3 | public class ArtMethodSizeTest { 4 | public final static void method1(){} 5 | public final static void method2(){} 6 | } 7 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/ClassNeverCall.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook; 2 | 3 | import android.util.Log; 4 | 5 | public class ClassNeverCall { 6 | private void neverCall() {} 7 | private void neverCall2() { 8 | Log.e("ClassNeverCall", "ClassNeverCall2"); 9 | } 10 | private static void neverCallStatic() {} 11 | private native void neverCallNative(); 12 | private native void neverCallNative2(); 13 | } 14 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/HookClass.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.TYPE}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface HookClass { 11 | Class value(); 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/HookMethod.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.METHOD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface HookMethod { 11 | String value() default ""; 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/HookMethodBackup.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.METHOD,ElementType.FIELD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface HookMethodBackup { 11 | String value() default ""; 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/HookMode.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.METHOD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface HookMode { 11 | 12 | int AUTO = 0; 13 | int INLINE = 1; 14 | int REPLACE = 2; 15 | 16 | int value() default AUTO; 17 | } 18 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/HookReflectClass.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.TYPE}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface HookReflectClass { 11 | String value(); 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/MethodParams.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.METHOD,ElementType.FIELD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface MethodParams { 11 | Class[] value(); 12 | } -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/Param.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.PARAMETER}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Param { 11 | String value() default ""; 12 | } 13 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/SkipParamCheck.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.METHOD, ElementType.FIELD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface SkipParamCheck { 11 | } 12 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/annotation/ThisObject.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.annotation; 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.PARAMETER}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface ThisObject { 11 | } 12 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/src/main/java/com/swift/sandhook/wrapper/HookErrorException.java: -------------------------------------------------------------------------------- 1 | package com.swift.sandhook.wrapper; 2 | 3 | public class HookErrorException extends Exception { 4 | public HookErrorException(String s) { 5 | super(s); 6 | } 7 | 8 | public HookErrorException(String message, Throwable cause) { 9 | super(message, cause); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/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 | -------------------------------------------------------------------------------- /VirtualApp/libsandhook/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 andhook.lib.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 | -------------------------------------------------------------------------------- /VirtualApp/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':lib', ':app' 2 | //, ':libsandhook' -------------------------------------------------------------------------------- /doc/css/google-fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Raleway'; 3 | font-style: normal; 4 | font-weight: 300; 5 | src: local('Raleway Light'), local('Raleway-Light'), url(http://fonts.gstatic.com/s/raleway/v12/-_Ctzj9b56b8RgXW8FArifk_vArhqVIZ0nv9q090hN8.woff2) format('woff2'); 6 | } 7 | @font-face { 8 | font-family: 'Raleway'; 9 | font-style: normal; 10 | font-weight: 700; 11 | src: local('Raleway Bold'), local('Raleway-Bold'), url(http://fonts.gstatic.com/s/raleway/v12/JbtMzqLaYbbbCL9X6EvaI_k_vArhqVIZ0nv9q090hN8.woff2) format('woff2'); 12 | } 13 | --------------------------------------------------------------------------------