gitextract_bfy_ta4s/ ├── .gitignore ├── README.md ├── README_eng.md ├── VirtualApp/ │ ├── .gitignore │ ├── 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 │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── OaceOaT8w5Xda6wa │ │ ├── java/ │ │ │ └── io/ │ │ │ └── virtualapp/ │ │ │ ├── VApp.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 │ │ │ │ ├── MyPhoneInfoDelegate.java │ │ │ │ └── MyTaskDescriptionDelegate.java │ │ │ ├── effects/ │ │ │ │ ├── ExplosionAnimator.java │ │ │ │ └── ExplosionField.java │ │ │ ├── home/ │ │ │ │ ├── FlurryROMCollector.java │ │ │ │ ├── HomeActivity.java │ │ │ │ ├── HomeContract.java │ │ │ │ ├── HomePresenterImpl.java │ │ │ │ ├── ListAppActivity.java │ │ │ │ ├── ListAppContract.java │ │ │ │ ├── ListAppFragment.java │ │ │ │ ├── ListAppPresenterImpl.java │ │ │ │ ├── LoadingActivity.java │ │ │ │ ├── adapters/ │ │ │ │ │ ├── AppLocationAdapter.java │ │ │ │ │ ├── AppPagerAdapter.java │ │ │ │ │ ├── CloneAppListAdapter.java │ │ │ │ │ ├── LaunchpadAdapter.java │ │ │ │ │ └── decorations/ │ │ │ │ │ └── ItemOffsetDecoration.java │ │ │ │ ├── location/ │ │ │ │ │ ├── MarkerActivity.java │ │ │ │ │ └── VirtualLocationSettings.java │ │ │ │ ├── models/ │ │ │ │ │ ├── AddAppButton.java │ │ │ │ │ ├── AppData.java │ │ │ │ │ ├── AppInfo.java │ │ │ │ │ ├── AppInfoLite.java │ │ │ │ │ ├── EmptyAppData.java │ │ │ │ │ ├── LocationData.java │ │ │ │ │ ├── MultiplePackageAppData.java │ │ │ │ │ └── PackageAppData.java │ │ │ │ ├── platform/ │ │ │ │ │ ├── PlatformInfo.java │ │ │ │ │ └── WechatPlatformInfo.java │ │ │ │ └── repo/ │ │ │ │ ├── AppDataSource.java │ │ │ │ ├── AppRepository.java │ │ │ │ └── PackageAppDataStorage.java │ │ │ ├── splash/ │ │ │ │ └── SplashActivity.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 │ │ │ ├── LoadingIndicatorView.java │ │ │ ├── MarqueeTextView.java │ │ │ ├── MaterialRippleLayout.java │ │ │ ├── RippleButton.java │ │ │ ├── ShadowProperty.java │ │ │ ├── ShadowViewDrawable.java │ │ │ ├── Shimmer.java │ │ │ ├── ShimmerViewBase.java │ │ │ ├── ShimmerViewHelper.java │ │ │ ├── TwoGearsView.java │ │ │ ├── ViewHelper.java │ │ │ └── fittext/ │ │ │ ├── BaseTextView.java │ │ │ ├── FitTextHelper.java │ │ │ └── FitTextView.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── blue_circle.xml │ │ │ ├── fab_bg.xml │ │ │ ├── home_bg.xml │ │ │ ├── icon_bg.xml │ │ │ ├── sel_clone_app_btn.xml │ │ │ ├── sel_guide_btn.xml │ │ │ ├── shape_clone_app_btn.xml │ │ │ └── shape_clone_app_btn_pressed.xml │ │ ├── layout/ │ │ │ ├── activity_clone_app.xml │ │ │ ├── activity_home.xml │ │ │ ├── activity_install.xml │ │ │ ├── activity_loading.xml │ │ │ ├── activity_location_settings.xml │ │ │ ├── activity_marker.xml │ │ │ ├── activity_splash.xml │ │ │ ├── activity_users.xml │ │ │ ├── content_toolbar.xml │ │ │ ├── fragment_list_app.xml │ │ │ ├── item_app.xml │ │ │ ├── item_clone_app.xml │ │ │ ├── item_launcher_app.xml │ │ │ ├── item_location_app.xml │ │ │ └── item_user.xml │ │ ├── menu/ │ │ │ ├── marktet_map.xml │ │ │ └── user_menu.xml │ │ ├── values/ │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── fitTextView.xml │ │ │ ├── ids.xml │ │ │ ├── integers.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ └── values-zh-rTW/ │ │ └── strings.xml │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.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 │ │ │ │ │ └── job/ │ │ │ │ │ ├── IJobCallback.aidl │ │ │ │ │ └── IJobService.aidl │ │ │ │ ├── content/ │ │ │ │ │ ├── IIntentReceiver.aidl │ │ │ │ │ ├── ISyncAdapter.aidl │ │ │ │ │ ├── ISyncContext.aidl │ │ │ │ │ ├── ISyncStatusObserver.aidl │ │ │ │ │ └── pm/ │ │ │ │ │ ├── IPackageDataObserver.aidl │ │ │ │ │ ├── IPackageDeleteObserver2.aidl │ │ │ │ │ ├── IPackageInstallObserver.aidl │ │ │ │ │ ├── IPackageInstallObserver2.aidl │ │ │ │ │ ├── IPackageInstallerCallback.aidl │ │ │ │ │ └── IPackageInstallerSession.aidl │ │ │ │ ├── location/ │ │ │ │ │ └── ILocationListener.aidl │ │ │ │ └── net/ │ │ │ │ ├── IConnectivityManager.aidl │ │ │ │ └── wifi/ │ │ │ │ └── IWifiScanner.aidl │ │ │ └── com/ │ │ │ └── lody/ │ │ │ └── virtual/ │ │ │ ├── client/ │ │ │ │ └── IVClient.aidl │ │ │ ├── os/ │ │ │ │ └── VUserInfo.aidl │ │ │ ├── remote/ │ │ │ │ ├── AppTaskInfo.aidl │ │ │ │ ├── BadgerInfo.aidl │ │ │ │ ├── InstallResult.aidl │ │ │ │ ├── InstalledAppInfo.aidl │ │ │ │ ├── PendingIntentData.aidl │ │ │ │ ├── PendingResultData.aidl │ │ │ │ ├── Problem.aidl │ │ │ │ ├── ReceiverInfo.aidl │ │ │ │ ├── VDeviceInfo.aidl │ │ │ │ ├── VParceledListSlice.aidl │ │ │ │ └── vloc/ │ │ │ │ ├── VCell.aidl │ │ │ │ ├── VLocation.aidl │ │ │ │ └── VWifi.aidl │ │ │ └── server/ │ │ │ ├── IBinderDelegateService.aidl │ │ │ ├── IPackageInstaller.aidl │ │ │ ├── IPackageInstallerSession.aidl │ │ │ ├── interfaces/ │ │ │ │ ├── IAppRequestListener.aidl │ │ │ │ ├── IIntentFilterObserver.aidl │ │ │ │ ├── IPackageObserver.aidl │ │ │ │ ├── IProcessObserver.aidl │ │ │ │ ├── IServiceFetcher.aidl │ │ │ │ └── IUiCallback.aidl │ │ │ └── pm/ │ │ │ └── installer/ │ │ │ ├── SessionInfo.aidl │ │ │ └── SessionParams.aidl │ │ ├── java/ │ │ │ ├── android/ │ │ │ │ ├── content/ │ │ │ │ │ ├── SyncStatusInfo.java │ │ │ │ │ └── pm/ │ │ │ │ │ └── PackageParser.java │ │ │ │ └── location/ │ │ │ │ └── LocationRequest.java │ │ │ ├── com/ │ │ │ │ └── lody/ │ │ │ │ └── virtual/ │ │ │ │ ├── Build.java │ │ │ │ ├── DelegateApplication64Bit.java │ │ │ │ ├── GmsSupport.java │ │ │ │ ├── client/ │ │ │ │ │ ├── NativeEngine.java │ │ │ │ │ ├── VClientImpl.java │ │ │ │ │ ├── badger/ │ │ │ │ │ │ ├── BadgerManager.java │ │ │ │ │ │ ├── BroadcastBadger1.java │ │ │ │ │ │ ├── BroadcastBadger2.java │ │ │ │ │ │ └── IBadger.java │ │ │ │ │ ├── core/ │ │ │ │ │ │ ├── CrashHandler.java │ │ │ │ │ │ ├── InstallStrategy.java │ │ │ │ │ │ ├── InvocationStubManager.java │ │ │ │ │ │ └── VirtualCore.java │ │ │ │ │ ├── env/ │ │ │ │ │ │ ├── Constants.java │ │ │ │ │ │ ├── DeadServerException.java │ │ │ │ │ │ ├── GPSStateline.java │ │ │ │ │ │ ├── SpecialComponentList.java │ │ │ │ │ │ ├── VirtualGPSSatalines.java │ │ │ │ │ │ └── VirtualRuntime.java │ │ │ │ │ ├── fixer/ │ │ │ │ │ │ ├── ActivityFixer.java │ │ │ │ │ │ ├── ComponentFixer.java │ │ │ │ │ │ └── ContextFixer.java │ │ │ │ │ ├── hook/ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ ├── BinderInvocationProxy.java │ │ │ │ │ │ │ ├── BinderInvocationStub.java │ │ │ │ │ │ │ ├── Inject.java │ │ │ │ │ │ │ ├── LogInvocation.java │ │ │ │ │ │ │ ├── MethodBox.java │ │ │ │ │ │ │ ├── MethodInvocationProxy.java │ │ │ │ │ │ │ ├── MethodInvocationStub.java │ │ │ │ │ │ │ ├── MethodProxy.java │ │ │ │ │ │ │ ├── ReplaceCallingPkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceLastPkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceLastUidMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceSequencePkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceSpecPkgMethodProxy.java │ │ │ │ │ │ │ ├── ReplaceUidMethodProxy.java │ │ │ │ │ │ │ ├── ResultStaticMethodProxy.java │ │ │ │ │ │ │ ├── SkipInject.java │ │ │ │ │ │ │ └── StaticMethodProxy.java │ │ │ │ │ │ ├── delegate/ │ │ │ │ │ │ │ ├── AppInstrumentation.java │ │ │ │ │ │ │ ├── ComponentDelegate.java │ │ │ │ │ │ │ ├── InstrumentationDelegate.java │ │ │ │ │ │ │ ├── PhoneInfoDelegate.java │ │ │ │ │ │ │ └── TaskDescriptionDelegate.java │ │ │ │ │ │ ├── providers/ │ │ │ │ │ │ │ ├── DownloadProviderHook.java │ │ │ │ │ │ │ ├── ExternalProviderHook.java │ │ │ │ │ │ │ ├── InternalProviderHook.java │ │ │ │ │ │ │ ├── ProviderHook.java │ │ │ │ │ │ │ └── SettingsProviderHook.java │ │ │ │ │ │ ├── proxies/ │ │ │ │ │ │ │ ├── account/ │ │ │ │ │ │ │ │ └── AccountManagerStub.java │ │ │ │ │ │ │ ├── alarm/ │ │ │ │ │ │ │ │ └── AlarmManagerStub.java │ │ │ │ │ │ │ ├── am/ │ │ │ │ │ │ │ │ ├── ActivityManagerStub.java │ │ │ │ │ │ │ │ ├── HCallbackStub.java │ │ │ │ │ │ │ │ └── MethodProxies.java │ │ │ │ │ │ │ ├── appops/ │ │ │ │ │ │ │ │ └── AppOpsManagerStub.java │ │ │ │ │ │ │ ├── appwidget/ │ │ │ │ │ │ │ │ └── AppWidgetManagerStub.java │ │ │ │ │ │ │ ├── audio/ │ │ │ │ │ │ │ │ └── AudioManagerStub.java │ │ │ │ │ │ │ ├── backup/ │ │ │ │ │ │ │ │ └── BackupManagerStub.java │ │ │ │ │ │ │ ├── bluetooth/ │ │ │ │ │ │ │ │ └── BluetoothStub.java │ │ │ │ │ │ │ ├── clipboard/ │ │ │ │ │ │ │ │ └── ClipBoardStub.java │ │ │ │ │ │ │ ├── connectivity/ │ │ │ │ │ │ │ │ └── ConnectivityStub.java │ │ │ │ │ │ │ ├── content/ │ │ │ │ │ │ │ │ └── ContentServiceStub.java │ │ │ │ │ │ │ ├── context_hub/ │ │ │ │ │ │ │ │ └── ContextHubServiceStub.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 │ │ │ │ │ │ │ ├── notification/ │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── NotificationManagerStub.java │ │ │ │ │ │ │ ├── persistent_data_block/ │ │ │ │ │ │ │ │ └── PersistentDataBlockServiceStub.java │ │ │ │ │ │ │ ├── phonesubinfo/ │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── PhoneSubInfoStub.java │ │ │ │ │ │ │ ├── pm/ │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ └── PackageManagerStub.java │ │ │ │ │ │ │ ├── power/ │ │ │ │ │ │ │ │ └── PowerManagerStub.java │ │ │ │ │ │ │ ├── restriction/ │ │ │ │ │ │ │ │ └── RestrictionStub.java │ │ │ │ │ │ │ ├── search/ │ │ │ │ │ │ │ │ └── SearchManagerStub.java │ │ │ │ │ │ │ ├── shortcut/ │ │ │ │ │ │ │ │ └── ShortcutServiceStub.java │ │ │ │ │ │ │ ├── telephony/ │ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ │ ├── TelephonyRegistryStub.java │ │ │ │ │ │ │ │ └── TelephonyStub.java │ │ │ │ │ │ │ ├── usage/ │ │ │ │ │ │ │ │ └── UsageStatsManagerStub.java │ │ │ │ │ │ │ ├── user/ │ │ │ │ │ │ │ │ └── UserManagerStub.java │ │ │ │ │ │ │ ├── vibrator/ │ │ │ │ │ │ │ │ └── VibratorStub.java │ │ │ │ │ │ │ ├── view/ │ │ │ │ │ │ │ │ └── AutoFillManagerStub.java │ │ │ │ │ │ │ ├── wifi/ │ │ │ │ │ │ │ │ └── WifiManagerStub.java │ │ │ │ │ │ │ ├── wifi_scanner/ │ │ │ │ │ │ │ │ ├── GhostWifiScannerImpl.java │ │ │ │ │ │ │ │ └── WifiScannerStub.java │ │ │ │ │ │ │ └── window/ │ │ │ │ │ │ │ ├── MethodProxies.java │ │ │ │ │ │ │ ├── WindowManagerStub.java │ │ │ │ │ │ │ └── session/ │ │ │ │ │ │ │ ├── BaseMethodProxy.java │ │ │ │ │ │ │ └── WindowSessionPatch.java │ │ │ │ │ │ ├── secondary/ │ │ │ │ │ │ │ ├── HackAppUtils.java │ │ │ │ │ │ │ ├── ProxyServiceFactory.java │ │ │ │ │ │ │ ├── ServiceConnectionDelegate.java │ │ │ │ │ │ │ └── StubBinder.java │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ └── MethodParameterUtils.java │ │ │ │ │ ├── interfaces/ │ │ │ │ │ │ └── IInjector.java │ │ │ │ │ ├── ipc/ │ │ │ │ │ │ ├── ActivityClientRecord.java │ │ │ │ │ │ ├── LocalProxyUtils.java │ │ │ │ │ │ ├── ProviderCall.java │ │ │ │ │ │ ├── ServiceManagerNative.java │ │ │ │ │ │ ├── VAccountManager.java │ │ │ │ │ │ ├── VActivityManager.java │ │ │ │ │ │ ├── VDeviceManager.java │ │ │ │ │ │ ├── VJobScheduler.java │ │ │ │ │ │ ├── VNotificationManager.java │ │ │ │ │ │ ├── VPackageManager.java │ │ │ │ │ │ ├── VirtualLocationManager.java │ │ │ │ │ │ └── VirtualStorageManager.java │ │ │ │ │ ├── natives/ │ │ │ │ │ │ └── NativeMethods.java │ │ │ │ │ └── stub/ │ │ │ │ │ ├── AmsTask.java │ │ │ │ │ ├── ChooseAccountTypeActivity.java │ │ │ │ │ ├── ChooseTypeAndAccountActivity.java │ │ │ │ │ ├── ChooserActivity.java │ │ │ │ │ ├── DaemonService.java │ │ │ │ │ ├── ResolverActivity.java │ │ │ │ │ ├── ShortcutHandleActivity.java │ │ │ │ │ ├── StubActivity.java │ │ │ │ │ ├── StubContentProvider.java │ │ │ │ │ ├── StubDialog.java │ │ │ │ │ ├── StubJob.java │ │ │ │ │ ├── StubPendingActivity.java │ │ │ │ │ ├── StubPendingReceiver.java │ │ │ │ │ ├── StubPendingService.java │ │ │ │ │ └── VASettings.java │ │ │ │ ├── helper/ │ │ │ │ │ ├── ArtDexOptimizer.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 │ │ │ │ │ │ ├── NativeLibraryHelperCompat.java │ │ │ │ │ │ ├── ObjectsCompat.java │ │ │ │ │ │ ├── PackageParserCompat.java │ │ │ │ │ │ ├── ParceledListSliceCompat.java │ │ │ │ │ │ ├── StorageManagerCompat.java │ │ │ │ │ │ └── SystemPropertiesCompat.java │ │ │ │ │ ├── ipcbus/ │ │ │ │ │ │ ├── IPCBus.java │ │ │ │ │ │ ├── IPCInvocationBridge.java │ │ │ │ │ │ ├── IPCMethod.java │ │ │ │ │ │ ├── IPCSingleton.java │ │ │ │ │ │ ├── IServerCache.java │ │ │ │ │ │ ├── ServerInterface.java │ │ │ │ │ │ └── TransformBinder.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── ArrayUtils.java │ │ │ │ │ ├── AtomicFile.java │ │ │ │ │ ├── BitmapUtils.java │ │ │ │ │ ├── ClassUtils.java │ │ │ │ │ ├── ComponentUtils.java │ │ │ │ │ ├── DrawableUtils.java │ │ │ │ │ ├── FastXmlSerializer.java │ │ │ │ │ ├── FileUtils.java │ │ │ │ │ ├── MD5Utils.java │ │ │ │ │ ├── OSUtils.java │ │ │ │ │ ├── Reflect.java │ │ │ │ │ ├── ReflectException.java │ │ │ │ │ ├── SchedulerTask.java │ │ │ │ │ ├── Singleton.java │ │ │ │ │ ├── VLog.java │ │ │ │ │ ├── XmlSerializerAndParser.java │ │ │ │ │ └── marks/ │ │ │ │ │ ├── FakeDeviceMark.java │ │ │ │ │ └── FakeLocMark.java │ │ │ │ ├── os/ │ │ │ │ │ ├── VBinder.java │ │ │ │ │ ├── VEnvironment.java │ │ │ │ │ ├── VUserHandle.java │ │ │ │ │ ├── VUserInfo.java │ │ │ │ │ └── VUserManager.java │ │ │ │ ├── remote/ │ │ │ │ │ ├── AppTaskInfo.java │ │ │ │ │ ├── BadgerInfo.java │ │ │ │ │ ├── InstallResult.java │ │ │ │ │ ├── InstalledAppInfo.java │ │ │ │ │ ├── PendingIntentData.java │ │ │ │ │ ├── PendingResultData.java │ │ │ │ │ ├── Problem.java │ │ │ │ │ ├── ReceiverInfo.java │ │ │ │ │ ├── StubActivityRecord.java │ │ │ │ │ ├── SyncInfo.java │ │ │ │ │ ├── VDeviceInfo.java │ │ │ │ │ ├── VParceledListSlice.java │ │ │ │ │ └── vloc/ │ │ │ │ │ ├── VCell.java │ │ │ │ │ ├── VLocation.java │ │ │ │ │ └── VWifi.java │ │ │ │ └── server/ │ │ │ │ ├── BinderProvider.java │ │ │ │ ├── ServiceCache.java │ │ │ │ ├── accounts/ │ │ │ │ │ ├── RegisteredServicesParser.java │ │ │ │ │ ├── VAccount.java │ │ │ │ │ ├── VAccountManagerService.java │ │ │ │ │ ├── VContentService.java │ │ │ │ │ └── VSyncRecord.java │ │ │ │ ├── am/ │ │ │ │ │ ├── ActivityRecord.java │ │ │ │ │ ├── ActivityStack.java │ │ │ │ │ ├── AppBindRecord.java │ │ │ │ │ ├── AttributeCache.java │ │ │ │ │ ├── BroadcastSystem.java │ │ │ │ │ ├── ConnectionRecord.java │ │ │ │ │ ├── PendingIntents.java │ │ │ │ │ ├── ProcessMap.java │ │ │ │ │ ├── ProcessRecord.java │ │ │ │ │ ├── ServiceRecord.java │ │ │ │ │ ├── TaskRecord.java │ │ │ │ │ ├── UidSystem.java │ │ │ │ │ └── VActivityManagerService.java │ │ │ │ ├── device/ │ │ │ │ │ ├── DeviceInfoPersistenceLayer.java │ │ │ │ │ └── VDeviceManagerService.java │ │ │ │ ├── interfaces/ │ │ │ │ │ ├── IAccountManager.java │ │ │ │ │ ├── IActivityManager.java │ │ │ │ │ ├── IAppManager.java │ │ │ │ │ ├── IDeviceInfoManager.java │ │ │ │ │ ├── IJobService.java │ │ │ │ │ ├── INotificationManager.java │ │ │ │ │ ├── IPackageManager.java │ │ │ │ │ ├── IUserManager.java │ │ │ │ │ ├── IVirtualLocationManager.java │ │ │ │ │ └── IVirtualStorageService.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/ │ │ │ │ │ ├── FastImmutableArraySet.java │ │ │ │ │ ├── IntentResolver.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 │ │ │ │ │ └── parser/ │ │ │ │ │ ├── PackageParserEx.java │ │ │ │ │ └── VPackage.java │ │ │ │ ├── secondary/ │ │ │ │ │ ├── BinderDelegateService.java │ │ │ │ │ └── FakeIdentityBinder.java │ │ │ │ └── vs/ │ │ │ │ ├── VSConfig.java │ │ │ │ ├── VSPersistenceLayer.java │ │ │ │ └── VirtualStorageService.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 │ │ │ │ │ ├── ActivityManagerNative.java │ │ │ │ │ ├── ActivityManagerOreo.java │ │ │ │ │ ├── ActivityThread.java │ │ │ │ │ ├── ActivityThreadNMR1.java │ │ │ │ │ ├── ApplicationThreadNative.java │ │ │ │ │ ├── ContextImpl.java │ │ │ │ │ ├── ContextImplICS.java │ │ │ │ │ ├── ContextImplKitkat.java │ │ │ │ │ ├── IActivityManager.java │ │ │ │ │ ├── IActivityManagerICS.java │ │ │ │ │ ├── IActivityManagerL.java │ │ │ │ │ ├── IActivityManagerN.java │ │ │ │ │ ├── IAlarmManager.java │ │ │ │ │ ├── IApplicationThread.java │ │ │ │ │ ├── IApplicationThreadICSMR1.java │ │ │ │ │ ├── IApplicationThreadJBMR1.java │ │ │ │ │ ├── IApplicationThreadKitkat.java │ │ │ │ │ ├── IApplicationThreadOreo.java │ │ │ │ │ ├── ISearchManager.java │ │ │ │ │ ├── IServiceConnectionO.java │ │ │ │ │ ├── IUsageStatsManager.java │ │ │ │ │ ├── LoadedApk.java │ │ │ │ │ ├── LoadedApkHuaWei.java │ │ │ │ │ ├── LoadedApkICS.java │ │ │ │ │ ├── LoadedApkKitkat.java │ │ │ │ │ ├── Notification.java │ │ │ │ │ ├── NotificationL.java │ │ │ │ │ ├── NotificationM.java │ │ │ │ │ ├── NotificationManager.java │ │ │ │ │ ├── PendingIntentJBMR2.java │ │ │ │ │ ├── ServiceStartArgs.java │ │ │ │ │ ├── admin/ │ │ │ │ │ │ └── IDevicePolicyManager.java │ │ │ │ │ ├── backup/ │ │ │ │ │ │ └── IBackupManager.java │ │ │ │ │ └── job/ │ │ │ │ │ ├── IJobScheduler.java │ │ │ │ │ ├── JobInfo.java │ │ │ │ │ ├── JobParameters.java │ │ │ │ │ └── JobWorkItem.java │ │ │ │ ├── bluetooth/ │ │ │ │ │ ├── IBluetooth.java │ │ │ │ │ └── IBluetoothManager.java │ │ │ │ ├── content/ │ │ │ │ │ ├── BroadcastReceiver.java │ │ │ │ │ ├── ClipboardManager.java │ │ │ │ │ ├── ClipboardManagerOreo.java │ │ │ │ │ ├── ContentProviderClient.java │ │ │ │ │ ├── ContentProviderHolderOreo.java │ │ │ │ │ ├── ContentProviderNative.java │ │ │ │ │ ├── ContentResolver.java │ │ │ │ │ ├── ContentResolverJBMR2.java │ │ │ │ │ ├── IClipboard.java │ │ │ │ │ ├── IContentProvider.java │ │ │ │ │ ├── IContentService.java │ │ │ │ │ ├── IIntentReceiver.java │ │ │ │ │ ├── IIntentReceiverJB.java │ │ │ │ │ ├── IRestrictionsManager.java │ │ │ │ │ ├── IntentFilter.java │ │ │ │ │ ├── SyncAdapterType.java │ │ │ │ │ ├── SyncAdapterTypeN.java │ │ │ │ │ ├── SyncInfo.java │ │ │ │ │ ├── SyncRequest.java │ │ │ │ │ ├── pm/ │ │ │ │ │ │ ├── ApplicationInfoL.java │ │ │ │ │ │ ├── ApplicationInfoN.java │ │ │ │ │ │ ├── ILauncherApps.java │ │ │ │ │ │ ├── IShortcutService.java │ │ │ │ │ │ ├── LauncherApps.java │ │ │ │ │ │ ├── PackageInstaller.java │ │ │ │ │ │ ├── PackageParser.java │ │ │ │ │ │ ├── PackageParserJellyBean.java │ │ │ │ │ │ ├── PackageParserJellyBean17.java │ │ │ │ │ │ ├── PackageParserLollipop.java │ │ │ │ │ │ ├── PackageParserLollipop22.java │ │ │ │ │ │ ├── PackageParserMarshmallow.java │ │ │ │ │ │ ├── PackageParserNougat.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 │ │ │ │ ├── location/ │ │ │ │ │ ├── ILocationListener.java │ │ │ │ │ ├── ILocationManager.java │ │ │ │ │ ├── LocationManager.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 │ │ │ │ │ ├── WifiScanner.java │ │ │ │ │ └── WifiSsid.java │ │ │ │ ├── os/ │ │ │ │ │ ├── BaseBundle.java │ │ │ │ │ ├── Build.java │ │ │ │ │ ├── Bundle.java │ │ │ │ │ ├── BundleICS.java │ │ │ │ │ ├── Handler.java │ │ │ │ │ ├── INetworkManagementService.java │ │ │ │ │ ├── IPowerManager.java │ │ │ │ │ ├── IUserManager.java │ │ │ │ │ ├── Message.java │ │ │ │ │ ├── Process.java │ │ │ │ │ ├── ServiceManager.java │ │ │ │ │ ├── StrictMode.java │ │ │ │ │ ├── mount/ │ │ │ │ │ │ └── IMountService.java │ │ │ │ │ └── storage/ │ │ │ │ │ └── IStorageManager.java │ │ │ │ ├── providers/ │ │ │ │ │ └── Settings.java │ │ │ │ ├── renderscript/ │ │ │ │ │ └── RenderScriptCacheDir.java │ │ │ │ ├── rms/ │ │ │ │ │ └── resource/ │ │ │ │ │ ├── ReceiverResourceLP.java │ │ │ │ │ ├── ReceiverResourceM.java │ │ │ │ │ └── ReceiverResourceN.java │ │ │ │ ├── service/ │ │ │ │ │ └── persistentdata/ │ │ │ │ │ └── IPersistentDataBlockService.java │ │ │ │ ├── telephony/ │ │ │ │ │ ├── CellIdentityCdma.java │ │ │ │ │ ├── CellIdentityGsm.java │ │ │ │ │ ├── CellInfoCdma.java │ │ │ │ │ ├── CellInfoGsm.java │ │ │ │ │ ├── CellSignalStrengthCdma.java │ │ │ │ │ ├── CellSignalStrengthGsm.java │ │ │ │ │ └── NeighboringCellInfo.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 │ │ │ │ ├── webkit/ │ │ │ │ │ ├── IWebViewUpdateService.java │ │ │ │ │ └── WebViewFactory.java │ │ │ │ └── widget/ │ │ │ │ ├── RemoteViews.java │ │ │ │ └── Toast.java │ │ │ ├── com/ │ │ │ │ └── android/ │ │ │ │ └── internal/ │ │ │ │ ├── R_Hide.java │ │ │ │ ├── app/ │ │ │ │ │ └── IAppOpsService.java │ │ │ │ ├── appwidget/ │ │ │ │ │ └── IAppWidgetService.java │ │ │ │ ├── content/ │ │ │ │ │ ├── NativeLibraryHelper.java │ │ │ │ │ └── ReferrerIntent.java │ │ │ │ ├── os/ │ │ │ │ │ ├── IDropBoxManagerService.java │ │ │ │ │ ├── IVibratorService.java │ │ │ │ │ └── UserManager.java │ │ │ │ ├── policy/ │ │ │ │ │ └── PhoneWindow.java │ │ │ │ ├── telephony/ │ │ │ │ │ ├── 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 │ │ ├── jni/ │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── Foundation/ │ │ │ │ ├── IOUniformer.cpp │ │ │ │ ├── IOUniformer.h │ │ │ │ ├── Path.cpp │ │ │ │ ├── Path.h │ │ │ │ ├── SandboxFs.cpp │ │ │ │ ├── SandboxFs.h │ │ │ │ ├── SymbolFinder.cpp │ │ │ │ ├── SymbolFinder.h │ │ │ │ ├── VMPatch.cpp │ │ │ │ └── VMPatch.h │ │ │ ├── HookZz/ │ │ │ │ ├── .gitignore │ │ │ │ ├── .gitmodules │ │ │ │ ├── Android.mk │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── docs/ │ │ │ │ │ ├── HookFrameworkDesign.md │ │ │ │ │ ├── hookzz-docs.md │ │ │ │ │ ├── hookzz-example.md │ │ │ │ │ └── hookzz-getting-started.md │ │ │ │ ├── include/ │ │ │ │ │ └── hookzz.h │ │ │ │ ├── src/ │ │ │ │ │ ├── allocator.c │ │ │ │ │ ├── allocator.h │ │ │ │ │ ├── interceptor.c │ │ │ │ │ ├── interceptor.h │ │ │ │ │ ├── memory.c │ │ │ │ │ ├── memory.h │ │ │ │ │ ├── platforms/ │ │ │ │ │ │ ├── arch-arm/ │ │ │ │ │ │ │ ├── instructions.c │ │ │ │ │ │ │ ├── instructions.h │ │ │ │ │ │ │ ├── reader-arm.c │ │ │ │ │ │ │ ├── reader-arm.h │ │ │ │ │ │ │ ├── reader-thumb.c │ │ │ │ │ │ │ ├── reader-thumb.h │ │ │ │ │ │ │ ├── regs-arm.c │ │ │ │ │ │ │ ├── regs-arm.h │ │ │ │ │ │ │ ├── relocator-arm.c │ │ │ │ │ │ │ ├── relocator-arm.h │ │ │ │ │ │ │ ├── relocator-thumb.c │ │ │ │ │ │ │ ├── relocator-thumb.h │ │ │ │ │ │ │ ├── writer-arm.c │ │ │ │ │ │ │ ├── writer-arm.h │ │ │ │ │ │ │ ├── writer-thumb.c │ │ │ │ │ │ │ └── writer-thumb.h │ │ │ │ │ │ ├── arch-arm64/ │ │ │ │ │ │ │ ├── instructions.c │ │ │ │ │ │ │ ├── instructions.h │ │ │ │ │ │ │ ├── reader-arm64.c │ │ │ │ │ │ │ ├── reader-arm64.h │ │ │ │ │ │ │ ├── regs-arm64.c │ │ │ │ │ │ │ ├── regs-arm64.h │ │ │ │ │ │ │ ├── relocator-arm64.c │ │ │ │ │ │ │ ├── relocator-arm64.h │ │ │ │ │ │ │ ├── writer-arm64.c │ │ │ │ │ │ │ └── writer-arm64.h │ │ │ │ │ │ ├── arch-x86/ │ │ │ │ │ │ │ ├── instructions.c │ │ │ │ │ │ │ ├── instructions.h │ │ │ │ │ │ │ ├── reader-x86.c │ │ │ │ │ │ │ ├── reader-x86.h │ │ │ │ │ │ │ ├── regs-x86.c │ │ │ │ │ │ │ ├── regs-x86.h │ │ │ │ │ │ │ ├── relocator-x86.c │ │ │ │ │ │ │ ├── relocator-x86.h │ │ │ │ │ │ │ ├── writer-x86.c │ │ │ │ │ │ │ └── writer-x86.h │ │ │ │ │ │ ├── backend-arm/ │ │ │ │ │ │ │ ├── interceptor-arm.c │ │ │ │ │ │ │ ├── interceptor-arm.h │ │ │ │ │ │ │ ├── interceptor-template-arm.s │ │ │ │ │ │ │ ├── thunker-arm.c │ │ │ │ │ │ │ └── thunker-arm.h │ │ │ │ │ │ ├── backend-arm64/ │ │ │ │ │ │ │ ├── interceptor-arm64.c │ │ │ │ │ │ │ ├── interceptor-arm64.h │ │ │ │ │ │ │ ├── interceptor-template-arm64.s │ │ │ │ │ │ │ ├── thunker-arm64.c │ │ │ │ │ │ │ └── thunker-arm64.h │ │ │ │ │ │ ├── backend-darwin/ │ │ │ │ │ │ │ ├── memory-darwin.c │ │ │ │ │ │ │ └── memory-darwin.h │ │ │ │ │ │ ├── backend-linux/ │ │ │ │ │ │ │ ├── memory-linux.c │ │ │ │ │ │ │ └── memory-linux.h │ │ │ │ │ │ ├── backend-posix/ │ │ │ │ │ │ │ ├── thread-posix.c │ │ │ │ │ │ │ └── thread-posix.h │ │ │ │ │ │ ├── backend-x86/ │ │ │ │ │ │ │ ├── interceptor-template-x86.s │ │ │ │ │ │ │ ├── interceptor-x86.c │ │ │ │ │ │ │ ├── interceptor-x86.h │ │ │ │ │ │ │ ├── thunker-x86.c │ │ │ │ │ │ │ └── thunker-x86.h │ │ │ │ │ │ └── x86/ │ │ │ │ │ │ ├── instructions.h │ │ │ │ │ │ ├── reader.c │ │ │ │ │ │ ├── reader.h │ │ │ │ │ │ ├── writer.c │ │ │ │ │ │ └── writer.h │ │ │ │ │ ├── relocator.h │ │ │ │ │ ├── stack.c │ │ │ │ │ ├── stack.h │ │ │ │ │ ├── thread.h │ │ │ │ │ ├── thunker.h │ │ │ │ │ ├── trampoline.c │ │ │ │ │ ├── trampoline.h │ │ │ │ │ ├── writer.h │ │ │ │ │ ├── zzdefs.h │ │ │ │ │ ├── zzdeps/ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── LEB128.h │ │ │ │ │ │ │ ├── debugbreak.h │ │ │ │ │ │ │ ├── memory-utils-common.c │ │ │ │ │ │ │ └── memory-utils-common.h │ │ │ │ │ │ ├── darwin/ │ │ │ │ │ │ │ ├── mach_vm.h │ │ │ │ │ │ │ ├── macho-utils-darwin.c │ │ │ │ │ │ │ ├── macho-utils-darwin.h │ │ │ │ │ │ │ ├── memory-utils-darwin.c │ │ │ │ │ │ │ └── memory-utils-darwin.h │ │ │ │ │ │ ├── linux/ │ │ │ │ │ │ │ ├── memory-utils-linux.c │ │ │ │ │ │ │ └── memory-utils-linux.h │ │ │ │ │ │ ├── memory-utils.h │ │ │ │ │ │ ├── posix/ │ │ │ │ │ │ │ ├── memory-utils-posix.c │ │ │ │ │ │ │ ├── memory-utils-posix.h │ │ │ │ │ │ │ ├── thread-utils-posix.c │ │ │ │ │ │ │ └── thread-utils-posix.h │ │ │ │ │ │ └── zz.h │ │ │ │ │ ├── zzinfo.c │ │ │ │ │ └── zzinfo.h │ │ │ │ ├── tests/ │ │ │ │ │ ├── arm-android/ │ │ │ │ │ │ ├── makefile │ │ │ │ │ │ ├── test_hook_address_thumb.c │ │ │ │ │ │ ├── test_hook_open_arm.c │ │ │ │ │ │ └── test_hook_printf.c │ │ │ │ │ ├── arm-insn-fix/ │ │ │ │ │ │ ├── makefile │ │ │ │ │ │ └── test_insn_fix.c │ │ │ │ │ ├── arm-ios/ │ │ │ │ │ │ ├── makefile │ │ │ │ │ │ ├── test_hook_address_thumb.c │ │ │ │ │ │ ├── test_hook_freeaddr.c │ │ │ │ │ │ ├── test_hook_oc_thumb.m │ │ │ │ │ │ ├── test_hook_open_arm.c │ │ │ │ │ │ └── test_hook_printf.c │ │ │ │ │ ├── arm64-insn-fix/ │ │ │ │ │ │ ├── makefile │ │ │ │ │ │ └── test_insn_fix.c │ │ │ │ │ └── arm64-ios/ │ │ │ │ │ ├── makefile │ │ │ │ │ ├── test_hook_address.c │ │ │ │ │ ├── test_hook_oc.m │ │ │ │ │ └── test_hook_printf.c │ │ │ │ └── tools/ │ │ │ │ └── ZzSolidifyHook/ │ │ │ │ ├── solidifyhook │ │ │ │ ├── solidifyhook.cpp │ │ │ │ └── solidifytrampoline.c │ │ │ ├── Jni/ │ │ │ │ ├── Helper.h │ │ │ │ ├── VAJni.cpp │ │ │ │ └── VAJni.h │ │ │ ├── Substrate/ │ │ │ │ ├── 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 │ │ │ └── fb/ │ │ │ ├── Android.mk │ │ │ ├── BUCK │ │ │ ├── Doxyfile │ │ │ ├── assert.cpp │ │ │ ├── include/ │ │ │ │ ├── fb/ │ │ │ │ │ ├── ALog.h │ │ │ │ │ ├── Build.h │ │ │ │ │ ├── Countable.h │ │ │ │ │ ├── Doxyfile │ │ │ │ │ ├── Environment.h │ │ │ │ │ ├── ProgramLocation.h │ │ │ │ │ ├── RefPtr.h │ │ │ │ │ ├── StaticInitialized.h │ │ │ │ │ ├── ThreadLocal.h │ │ │ │ │ ├── assert.h │ │ │ │ │ ├── fbjni/ │ │ │ │ │ │ ├── Boxed.h │ │ │ │ │ │ ├── ByteBuffer.h │ │ │ │ │ │ ├── Common.h │ │ │ │ │ │ ├── Context.h │ │ │ │ │ │ ├── CoreClasses-inl.h │ │ │ │ │ │ ├── CoreClasses.h │ │ │ │ │ │ ├── Exceptions.h │ │ │ │ │ │ ├── File.h │ │ │ │ │ │ ├── Hybrid.h │ │ │ │ │ │ ├── Iterator-inl.h │ │ │ │ │ │ ├── Iterator.h │ │ │ │ │ │ ├── JThread.h │ │ │ │ │ │ ├── JWeakReference.h │ │ │ │ │ │ ├── Meta-forward.h │ │ │ │ │ │ ├── Meta-inl.h │ │ │ │ │ │ ├── Meta.h │ │ │ │ │ │ ├── MetaConvert.h │ │ │ │ │ │ ├── NativeRunnable.h │ │ │ │ │ │ ├── ReferenceAllocators-inl.h │ │ │ │ │ │ ├── ReferenceAllocators.h │ │ │ │ │ │ ├── References-forward.h │ │ │ │ │ │ ├── References-inl.h │ │ │ │ │ │ ├── References.h │ │ │ │ │ │ ├── Registration-inl.h │ │ │ │ │ │ ├── Registration.h │ │ │ │ │ │ └── TypeTraits.h │ │ │ │ │ ├── fbjni.h │ │ │ │ │ ├── log.h │ │ │ │ │ ├── lyra.h │ │ │ │ │ ├── noncopyable.h │ │ │ │ │ ├── nonmovable.h │ │ │ │ │ └── visibility.h │ │ │ │ └── jni/ │ │ │ │ ├── Countable.h │ │ │ │ ├── GlobalReference.h │ │ │ │ ├── JniTerminateHandler.h │ │ │ │ ├── LocalReference.h │ │ │ │ ├── LocalString.h │ │ │ │ ├── Registration.h │ │ │ │ ├── WeakReference.h │ │ │ │ └── jni_helpers.h │ │ │ ├── jni/ │ │ │ │ ├── ByteBuffer.cpp │ │ │ │ ├── Countable.cpp │ │ │ │ ├── Environment.cpp │ │ │ │ ├── Exceptions.cpp │ │ │ │ ├── Hybrid.cpp │ │ │ │ ├── LocalString.cpp │ │ │ │ ├── OnLoad.cpp │ │ │ │ ├── References.cpp │ │ │ │ ├── WeakReference.cpp │ │ │ │ ├── android/ │ │ │ │ │ ├── CpuCapabilities.cpp │ │ │ │ │ └── ReferenceChecking.cpp │ │ │ │ ├── fbjni.cpp │ │ │ │ ├── java/ │ │ │ │ │ ├── BUCK │ │ │ │ │ ├── CppException.java │ │ │ │ │ ├── CppSystemErrorException.java │ │ │ │ │ └── UnknownCppException.java │ │ │ │ └── jni_helpers.cpp │ │ │ ├── log.cpp │ │ │ ├── lyra/ │ │ │ │ └── lyra.cpp │ │ │ └── onload.cpp │ │ └── res/ │ │ ├── layout/ │ │ │ ├── app_not_authorized.xml │ │ │ ├── choose_account_row.xml │ │ │ ├── choose_account_type.xml │ │ │ ├── choose_type_and_account.xml │ │ │ ├── custom_notification.xml │ │ │ ├── custom_notification_lite.xml │ │ │ └── resolve_list_item.xml │ │ └── values/ │ │ ├── dimens.xml │ │ ├── integer.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── settings.gradle └── doc/ ├── VADev.md └── VADev_eng.md