gitextract_9uz9pdil/ ├── .gitignore ├── CLAUDE.md ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle │ ├── libs/ │ │ └── bcprov-jdk16-139.jar │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── yl/ │ │ └── lib/ │ │ └── privacysentry/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── yl/ │ │ │ └── lib/ │ │ │ └── privacysentry/ │ │ │ ├── APP.kt │ │ │ ├── MainActivity.kt │ │ │ ├── ReflexObjectUtil.java │ │ │ ├── calendar/ │ │ │ │ ├── CalendarManager.kt │ │ │ │ ├── CalenderActivity.kt │ │ │ │ └── RRuleConstant.kt │ │ │ ├── contact/ │ │ │ │ ├── ContactActivity.kt │ │ │ │ └── ContactManager.kt │ │ │ ├── location/ │ │ │ │ └── LocationTestActivity.java │ │ │ ├── process/ │ │ │ │ ├── MultiProcessB.kt │ │ │ │ └── MultiProcessC.kt │ │ │ ├── telephony/ │ │ │ │ └── TelephonyTestActivity.kt │ │ │ └── test/ │ │ │ ├── PrivacyMethod.kt │ │ │ ├── PrivacyProxyCallJava.java │ │ │ ├── PrivacyProxySelfTest.kt │ │ │ ├── PrivacyTestMacAddress.java │ │ │ ├── TestBCSeri.java │ │ │ ├── TestFragmentActivity.kt │ │ │ ├── TestInJava.java │ │ │ ├── TestOaidGetter.java │ │ │ ├── TestReflex.kt │ │ │ ├── TestReflexJava.java │ │ │ ├── TestService.kt │ │ │ ├── constructor/ │ │ │ │ └── TestFileConstructor.java │ │ │ └── ui/ │ │ │ └── main/ │ │ │ └── TestPermissionFragment.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_launcher_background.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ ├── activity_calender.xml │ │ │ ├── activity_contact.xml │ │ │ ├── activity_location_test.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_telephony_test.xml │ │ │ ├── activity_test_frament.xml │ │ │ └── fragment_main.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── values-night/ │ │ └── themes.xml │ └── test/ │ └── java/ │ └── com/ │ └── yl/ │ └── lib/ │ └── privacysentry/ │ └── ExampleUnitTest.kt ├── build.gradle ├── config.gradle ├── demo_result.xls ├── docs/ │ ├── README.md │ ├── architecture.html │ └── architecture.md ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── hook-sentry/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ ├── proguard-rules.pro │ ├── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── yl/ │ │ │ └── lib/ │ │ │ └── hook_sentry/ │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── yl/ │ │ │ └── lib/ │ │ │ └── sentry/ │ │ │ └── hook/ │ │ │ ├── PrivacySentry.kt │ │ │ ├── PrivacySentryBuilder.kt │ │ │ ├── cache/ │ │ │ │ ├── BasePrivacyCache.kt │ │ │ │ ├── CachePrivacyManager.kt │ │ │ │ ├── CacheUtils.kt │ │ │ │ ├── DiskCache.kt │ │ │ │ ├── MemoryCache.kt │ │ │ │ ├── PrivacyCacheType.kt │ │ │ │ ├── TimeLessDiskCache.kt │ │ │ │ └── TimeLessMemoryCache.kt │ │ │ ├── excel/ │ │ │ │ ├── ExcelBuildDataListener.kt │ │ │ │ └── ExcelUtil.kt │ │ │ ├── printer/ │ │ │ │ ├── BaseFilePrinter.kt │ │ │ │ ├── BasePrinter.kt │ │ │ │ ├── DefaultFilePrint.kt │ │ │ │ ├── DefaultLogPrint.kt │ │ │ │ ├── PrintCallBack.kt │ │ │ │ └── PrivacyFunBean.kt │ │ │ ├── util/ │ │ │ │ ├── MainProcessUtil.kt │ │ │ │ ├── PrivacyClipBoardManager.kt │ │ │ │ ├── PrivacyLog.kt │ │ │ │ ├── PrivacyProxyUtil.kt │ │ │ │ ├── PrivacyUtil.kt │ │ │ │ └── ReflectUtils.kt │ │ │ └── watcher/ │ │ │ ├── DelayTimeWatcher.kt │ │ │ └── PrivacyDataManager.kt │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── yl/ │ │ └── lib/ │ │ └── hook_sentry/ │ │ └── ExampleUnitTest.kt │ └── ~/ │ └── .m2/ │ └── repository/ │ └── com/ │ └── yl/ │ └── lib/ │ └── privacy/ │ └── hook-sentry/ │ ├── 0.0.1-SNAPSHOT/ │ │ ├── maven-metadata-remote.xml │ │ └── resolver-status.properties │ ├── maven-metadata-remote.xml │ └── resolver-status.properties ├── plugin-sentry/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── yl/ │ │ └── lib/ │ │ └── plugin/ │ │ └── sentry/ │ │ ├── PrivacySentryPlugin.kt │ │ ├── PrivacyTransformTask.kt │ │ ├── extension/ │ │ │ └── PrivacyExtension.kt │ │ ├── transform/ │ │ │ ├── PrivacyTransformContext.kt │ │ │ ├── PrivacyTransformInvocation.kt │ │ │ ├── booster/ │ │ │ │ ├── asmtransform/ │ │ │ │ │ └── AbsClassTransformer.kt │ │ │ │ ├── classtransform/ │ │ │ │ │ ├── collect/ │ │ │ │ │ │ ├── ClassProxyCollectTransform.kt │ │ │ │ │ │ └── MethodProxyCollectTransform.kt │ │ │ │ │ └── hook/ │ │ │ │ │ ├── BaseHookTransform.kt │ │ │ │ │ ├── ClassProxyTransform.kt │ │ │ │ │ ├── FieldProxyTransform.kt │ │ │ │ │ ├── FlushHookDataTransform.kt │ │ │ │ │ ├── MethodHookTransform.kt │ │ │ │ │ └── ServiceHookTransform.kt │ │ │ │ ├── processor/ │ │ │ │ │ ├── PrivacyAssetsProcessor.kt │ │ │ │ │ └── PrivacyManifestProcessor.kt │ │ │ │ ├── task/ │ │ │ │ │ └── PrivacyManifestTask.kt │ │ │ │ └── transformer/ │ │ │ │ └── PrivacyBaseTransformer.kt │ │ │ └── manager/ │ │ │ ├── HookFieldManager.kt │ │ │ ├── HookMethodManager.kt │ │ │ ├── HookedDataManger.kt │ │ │ └── ReplaceClassManager.kt │ │ └── util/ │ │ ├── PrivacyExt.kt │ │ ├── PrivacyMoveAssetsUtil.kt │ │ └── PrivacyPluginUtil.kt │ └── resources/ │ └── META-INF/ │ └── gradle-plugins/ │ ├── com.allenymt.plugin.privacy.properties │ └── privacy-sentry-plugin.properties ├── privacy ├── privacy-annotation/ │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ ├── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── yl/ │ │ └── lib/ │ │ └── privacy_annotation/ │ │ ├── MethodInvokeOpcode.java │ │ ├── PrivacyClassBlack.java │ │ ├── PrivacyClassProxy.java │ │ ├── PrivacyClassReplace.java │ │ ├── PrivacyFieldProxy.java │ │ └── PrivacyMethodProxy.java │ └── ~/ │ └── .m2/ │ └── repository/ │ └── com/ │ └── yl/ │ └── lib/ │ └── privacy/ │ └── privacy-annotation/ │ ├── 0.0.1-SNAPSHOT/ │ │ ├── maven-metadata-remote.xml │ │ └── resolver-status.properties │ ├── 0.0.2-SNAPSHOT/ │ │ ├── maven-metadata-remote.xml │ │ └── resolver-status.properties │ ├── maven-metadata-remote.xml │ ├── maven-metadata-remote.xml.sha1 │ └── resolver-status.properties ├── privacy-proxy/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── yl/ │ └── lib/ │ └── privacy_proxy/ │ ├── PrivacyPermissionProxy.kt │ ├── PrivacyProxyCall.kt │ ├── PrivacyProxyCallJava.java │ ├── PrivacyProxyResolver.kt │ ├── PrivacyReflectProxy.kt │ ├── PrivacySensorProxy.kt │ ├── PrivacyTelephonyProxy.kt │ └── ProxyProxyField.java ├── privacy-replace/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── consumer-rules.pro │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── vdian/ │ │ └── android/ │ │ └── wdb/ │ │ └── privacy_replace/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── yl/ │ │ └── lib/ │ │ └── privacy_replace/ │ │ ├── PrivacyFile.java │ │ ├── PrivacyFileInputStream.java │ │ └── PrivacyFileReader.java │ └── test/ │ └── java/ │ └── com/ │ └── vdian/ │ └── android/ │ └── wdb/ │ └── privacy_replace/ │ └── ExampleUnitTest.kt ├── privacy-test/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── yl/ │ └── lib/ │ └── privacy_test/ │ ├── PrivacyProxySelfTest2.java │ ├── TestMethod.kt │ └── TestMethodInJava.java ├── privacy-ui/ │ └── build/ │ ├── generated/ │ │ └── source/ │ │ └── buildConfig/ │ │ └── debug/ │ │ └── com/ │ │ └── yl/ │ │ └── lib/ │ │ └── privacy_ui/ │ │ └── BuildConfig.java │ ├── intermediates/ │ │ ├── aapt_friendly_merged_manifests/ │ │ │ └── debug/ │ │ │ └── aapt/ │ │ │ ├── AndroidManifest.xml │ │ │ └── output-metadata.json │ │ ├── aar_metadata/ │ │ │ └── debug/ │ │ │ └── aar-metadata.properties │ │ ├── annotation_processor_list/ │ │ │ └── debug/ │ │ │ └── annotationProcessors.json │ │ ├── compile_library_classes_jar/ │ │ │ └── debug/ │ │ │ └── classes.jar │ │ ├── compile_r_class_jar/ │ │ │ └── debug/ │ │ │ └── R.jar │ │ ├── compile_symbol_list/ │ │ │ └── debug/ │ │ │ └── R.txt │ │ ├── compiled_local_resources/ │ │ │ └── debug/ │ │ │ └── out/ │ │ │ ├── layout_activity_permission_list.xml.flat │ │ │ ├── layout_activity_real_time_privacy_item.xml.flat │ │ │ ├── layout_activity_replace_list.xml.flat │ │ │ ├── layout_permission_item_view.xml.flat │ │ │ ├── layout_real_tile_item_view.xml.flat │ │ │ └── layout_replace_item_view.xml.flat │ │ ├── incremental/ │ │ │ ├── mergeDebugJniLibFolders/ │ │ │ │ └── merger.xml │ │ │ ├── mergeDebugShaders/ │ │ │ │ └── merger.xml │ │ │ ├── packageDebugAssets/ │ │ │ │ └── merger.xml │ │ │ └── packageDebugResources/ │ │ │ ├── compile-file-map.properties │ │ │ └── merger.xml │ │ ├── library_java_res/ │ │ │ └── debug/ │ │ │ └── res.jar │ │ ├── library_manifest/ │ │ │ └── debug/ │ │ │ └── AndroidManifest.xml │ │ ├── local_only_symbol_list/ │ │ │ └── debug/ │ │ │ └── R-def.txt │ │ ├── manifest_merge_blame_file/ │ │ │ └── debug/ │ │ │ └── manifest-merger-blame-debug-report.txt │ │ ├── navigation_json/ │ │ │ └── debug/ │ │ │ └── navigation.json │ │ ├── packaged_manifests/ │ │ │ └── debug/ │ │ │ └── output-metadata.json │ │ ├── packaged_res/ │ │ │ └── debug/ │ │ │ └── layout/ │ │ │ ├── activity_permission_list.xml │ │ │ ├── activity_real_time_privacy_item.xml │ │ │ ├── activity_replace_list.xml │ │ │ ├── permission_item_view.xml │ │ │ ├── real_tile_item_view.xml │ │ │ └── replace_item_view.xml │ │ ├── runtime_library_classes_jar/ │ │ │ └── debug/ │ │ │ └── classes.jar │ │ └── symbol_list_with_package_name/ │ │ └── debug/ │ │ └── package-aware-r.txt │ ├── kotlin/ │ │ └── compileDebugKotlin/ │ │ └── caches-jvm/ │ │ ├── inputs/ │ │ │ ├── source-to-output.tab │ │ │ ├── source-to-output.tab.keystream │ │ │ ├── source-to-output.tab.keystream.len │ │ │ ├── source-to-output.tab.len │ │ │ ├── source-to-output.tab.values.at │ │ │ ├── source-to-output.tab_i │ │ │ └── source-to-output.tab_i.len │ │ ├── jvm/ │ │ │ └── kotlin/ │ │ │ ├── class-fq-name-to-source.tab │ │ │ ├── class-fq-name-to-source.tab.keystream │ │ │ ├── class-fq-name-to-source.tab.keystream.len │ │ │ ├── class-fq-name-to-source.tab.len │ │ │ ├── class-fq-name-to-source.tab.values.at │ │ │ ├── class-fq-name-to-source.tab_i │ │ │ ├── class-fq-name-to-source.tab_i.len │ │ │ ├── internal-name-to-source.tab │ │ │ ├── internal-name-to-source.tab.keystream │ │ │ ├── internal-name-to-source.tab.keystream.len │ │ │ ├── internal-name-to-source.tab.len │ │ │ ├── internal-name-to-source.tab.values.at │ │ │ ├── internal-name-to-source.tab_i │ │ │ ├── internal-name-to-source.tab_i.len │ │ │ ├── proto.tab │ │ │ ├── proto.tab.keystream │ │ │ ├── proto.tab.keystream.len │ │ │ ├── proto.tab.len │ │ │ ├── proto.tab.values.at │ │ │ ├── proto.tab_i │ │ │ ├── proto.tab_i.len │ │ │ ├── source-to-classes.tab │ │ │ ├── source-to-classes.tab.keystream │ │ │ ├── source-to-classes.tab.keystream.len │ │ │ ├── source-to-classes.tab.len │ │ │ ├── source-to-classes.tab.values.at │ │ │ ├── source-to-classes.tab_i │ │ │ ├── source-to-classes.tab_i.len │ │ │ ├── subtypes.tab │ │ │ ├── subtypes.tab.keystream │ │ │ ├── subtypes.tab.keystream.len │ │ │ ├── subtypes.tab.len │ │ │ ├── subtypes.tab.values.at │ │ │ ├── subtypes.tab_i │ │ │ ├── subtypes.tab_i.len │ │ │ ├── supertypes.tab │ │ │ ├── supertypes.tab.keystream │ │ │ ├── supertypes.tab.keystream.len │ │ │ ├── supertypes.tab.len │ │ │ ├── supertypes.tab.values.at │ │ │ ├── supertypes.tab_i │ │ │ └── supertypes.tab_i.len │ │ └── lookups/ │ │ ├── counters.tab │ │ ├── file-to-id.tab │ │ ├── file-to-id.tab.keystream │ │ ├── file-to-id.tab.keystream.len │ │ ├── file-to-id.tab.len │ │ ├── file-to-id.tab.values.at │ │ ├── file-to-id.tab_i │ │ ├── file-to-id.tab_i.len │ │ ├── id-to-file.tab │ │ ├── id-to-file.tab.keystream │ │ ├── id-to-file.tab.keystream.len │ │ ├── id-to-file.tab.len │ │ ├── id-to-file.tab.values.at │ │ ├── id-to-file.tab_i │ │ ├── id-to-file.tab_i.len │ │ ├── lookups.tab │ │ ├── lookups.tab.keystream │ │ ├── lookups.tab.keystream.len │ │ ├── lookups.tab.len │ │ ├── lookups.tab.values.at │ │ ├── lookups.tab_i │ │ └── lookups.tab_i.len │ ├── outputs/ │ │ └── logs/ │ │ └── manifest-merger-debug-report.txt │ └── tmp/ │ ├── compileDebugJavaWithJavac/ │ │ └── source-classes-mapping.txt │ └── kotlin-classes/ │ └── debug/ │ └── META-INF/ │ └── privacy-ui_debug.kotlin_module ├── privacy_hook.json ├── publish.gradle ├── settings.gradle.kts └── upload_local.sh