gitextract_kra60iuy/ ├── .gitignore ├── DOC/ │ ├── .gitignore │ ├── hejunlin/ │ │ ├── LICENSE │ │ ├── 插件占坑,四大组件动态注册前奏(一) 系统Activity的启动流程.md │ │ ├── 插件占坑,四大组件动态注册前奏(三) 系统BroadCast的注册发送流程.md │ │ ├── 插件占坑,四大组件动态注册前奏(二) 系统Service的启动流程.md │ │ ├── 插件开发之360 DroidPlugin源码分析(一)初识.md │ │ ├── 插件开发之360 DroidPlugin源码分析(三)Binder代理.md │ │ ├── 插件开发之360 DroidPlugin源码分析(二)Hook机制.md │ │ ├── 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑.md │ │ └── 插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑.md │ ├── tianweishu/ │ │ ├── .gitignore │ │ ├── Activity生命周期管理.md │ │ ├── BroadcastReceiver插件化.md │ │ ├── ClassLoader管理.md │ │ ├── ContentProvider插件化.md │ │ ├── Hook机制之AMS&PMS.md │ │ ├── Hook机制之Binder-Hook.md │ │ ├── Hook机制之代理Hook.md │ │ ├── Service插件化.md │ │ └── 概述.md │ └── 插件机制介绍.pptx ├── LICENSE ├── project/ │ ├── .gitignore │ ├── Libraries/ │ │ └── DroidPlugin/ │ │ ├── LICENSE.txt │ │ ├── build.gradle │ │ ├── lib/ │ │ │ └── layoutlib.jar │ │ ├── proguard-project.txt │ │ ├── project.properties │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── aidl/ │ │ │ ├── android/ │ │ │ │ └── app/ │ │ │ │ └── IServiceConnection.aidl │ │ │ └── com/ │ │ │ └── morgoo/ │ │ │ └── droidplugin/ │ │ │ └── pm/ │ │ │ ├── IApplicationCallback.aidl │ │ │ ├── IPackageDataObserver.aidl │ │ │ └── IPluginManager.aidl │ │ ├── java/ │ │ │ └── com/ │ │ │ └── morgoo/ │ │ │ ├── droidplugin/ │ │ │ │ ├── MyCrashHandler.java │ │ │ │ ├── PluginApplication.java │ │ │ │ ├── PluginHelper.java │ │ │ │ ├── PluginManagerService.java │ │ │ │ ├── PluginPatchManager.java │ │ │ │ ├── PluginServiceProvider.java │ │ │ │ ├── am/ │ │ │ │ │ ├── BaseActivityManagerService.java │ │ │ │ │ ├── MyActivityManagerService.java │ │ │ │ │ ├── RunningActivities.java │ │ │ │ │ ├── RunningProcessList.java │ │ │ │ │ ├── ServiceStubMap.java │ │ │ │ │ └── StaticProcessList.java │ │ │ │ ├── core/ │ │ │ │ │ ├── Env.java │ │ │ │ │ ├── PluginClassLoader.java │ │ │ │ │ ├── PluginDirHelper.java │ │ │ │ │ └── PluginProcessManager.java │ │ │ │ ├── hook/ │ │ │ │ │ ├── BaseHookHandle.java │ │ │ │ │ ├── Hook.java │ │ │ │ │ ├── HookFactory.java │ │ │ │ │ ├── HookedMethodHandler.java │ │ │ │ │ ├── binder/ │ │ │ │ │ │ ├── BinderHook.java │ │ │ │ │ │ ├── IAppOpsServiceBinderHook.java │ │ │ │ │ │ ├── IAudioServiceBinderHook.java │ │ │ │ │ │ ├── IClipboardBinderHook.java │ │ │ │ │ │ ├── IContentServiceBinderHook.java │ │ │ │ │ │ ├── IDisplayManagerBinderHook.java │ │ │ │ │ │ ├── IGraphicsStatsBinderHook.java │ │ │ │ │ │ ├── IInputMethodManagerBinderHook.java │ │ │ │ │ │ ├── ILocationManagerBinderHook.java │ │ │ │ │ │ ├── IMediaRouterServiceBinderHook.java │ │ │ │ │ │ ├── IMmsBinderHook.java │ │ │ │ │ │ ├── IMountServiceBinderHook.java │ │ │ │ │ │ ├── INotificationManagerBinderHook.java │ │ │ │ │ │ ├── IPhoneSubInfoBinderHook.java │ │ │ │ │ │ ├── ISearchManagerBinderHook.java │ │ │ │ │ │ ├── ISessionManagerBinderHook.java │ │ │ │ │ │ ├── ISmsBinderHook.java │ │ │ │ │ │ ├── ISubBinderHook.java │ │ │ │ │ │ ├── ITelephonyBinderHook.java │ │ │ │ │ │ ├── ITelephonyRegistryBinderHook.java │ │ │ │ │ │ ├── IWifiManagerBinderHook.java │ │ │ │ │ │ ├── IWindowManagerBinderHook.java │ │ │ │ │ │ ├── MyServiceManager.java │ │ │ │ │ │ ├── ServiceManagerBinderHook.java │ │ │ │ │ │ └── ServiceManagerCacheBinderHook.java │ │ │ │ │ ├── handle/ │ │ │ │ │ │ ├── IActivityManagerHookHandle.java │ │ │ │ │ │ ├── IAppOpsServiceHookHandle.java │ │ │ │ │ │ ├── IAudioServiceHookHandle.java │ │ │ │ │ │ ├── IClipboardHookHandle.java │ │ │ │ │ │ ├── IContentProviderInvokeHandle.java │ │ │ │ │ │ ├── IContentServiceHandle.java │ │ │ │ │ │ ├── IDisplayManagerHookHandle.java │ │ │ │ │ │ ├── IGraphicsStatsHookHandle.java │ │ │ │ │ │ ├── IInputMethodManagerHookHandle.java │ │ │ │ │ │ ├── ILocationManagerHookHandle.java │ │ │ │ │ │ ├── IMediaRouterServiceHookHandle.java │ │ │ │ │ │ ├── IMmsHookHandle.java │ │ │ │ │ │ ├── IMountServiceHookHandle.java │ │ │ │ │ │ ├── INotificationManagerHookHandle.java │ │ │ │ │ │ ├── IPackageManagerHookHandle.java │ │ │ │ │ │ ├── IPhoneSubInfoHookHandle.java │ │ │ │ │ │ ├── ISearchManagerHookHandle.java │ │ │ │ │ │ ├── ISessionManagerHookHandle.java │ │ │ │ │ │ ├── ISmsHookHandle.java │ │ │ │ │ │ ├── ISubBinderHookHandle.java │ │ │ │ │ │ ├── ITelephonyHookHandle.java │ │ │ │ │ │ ├── ITelephonyRegistryHookHandle.java │ │ │ │ │ │ ├── IWifiManagerHookHandle.java │ │ │ │ │ │ ├── IWindowManagerHookHandle.java │ │ │ │ │ │ ├── IWindowSessionInvokeHandle.java │ │ │ │ │ │ ├── LibCoreHookHandle.java │ │ │ │ │ │ ├── PluginCallback.java │ │ │ │ │ │ ├── PluginInstrumentation.java │ │ │ │ │ │ ├── ReplaceCallingPackageHookedMethodHandler.java │ │ │ │ │ │ └── WebViewFactoryProviderHookHandle.java │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── IActivityManagerHook.java │ │ │ │ │ │ ├── IContentProviderHook.java │ │ │ │ │ │ ├── IPackageManagerHook.java │ │ │ │ │ │ ├── IWindowSessionHook.java │ │ │ │ │ │ ├── InstrumentationHook.java │ │ │ │ │ │ ├── LibCoreHook.java │ │ │ │ │ │ ├── PluginCallbackHook.java │ │ │ │ │ │ ├── ProxyHook.java │ │ │ │ │ │ └── WebViewFactoryProviderHook.java │ │ │ │ │ └── xhook/ │ │ │ │ │ └── SQLiteDatabaseHook.java │ │ │ │ ├── pm/ │ │ │ │ │ ├── IPluginManagerImpl.java │ │ │ │ │ ├── PluginManager.java │ │ │ │ │ └── parser/ │ │ │ │ │ ├── IntentMatcher.java │ │ │ │ │ ├── PackageParser.java │ │ │ │ │ ├── PackageParserApi15.java │ │ │ │ │ ├── PackageParserApi16.java │ │ │ │ │ ├── PackageParserApi20.java │ │ │ │ │ ├── PackageParserApi21.java │ │ │ │ │ ├── PackageParserApi22.java │ │ │ │ │ ├── PackageParserApi22Preview1.java │ │ │ │ │ └── PluginPackageParser.java │ │ │ │ ├── reflect/ │ │ │ │ │ ├── FieldUtils.java │ │ │ │ │ ├── MemberUtils.java │ │ │ │ │ ├── MethodUtils.java │ │ │ │ │ ├── Utils.java │ │ │ │ │ └── Validate.java │ │ │ │ └── stub/ │ │ │ │ ├── AbstractContentProviderStub.java │ │ │ │ ├── AbstractServiceStub.java │ │ │ │ ├── ActivityStub.java │ │ │ │ ├── ContentProviderStub.java │ │ │ │ ├── MyFakeIBinder.java │ │ │ │ ├── ServcesManager.java │ │ │ │ ├── ServiceStub.java │ │ │ │ └── ShortcutProxyActivity.java │ │ │ └── helper/ │ │ │ ├── AttributeCache.java │ │ │ ├── ComponentNameComparator.java │ │ │ ├── Log.java │ │ │ ├── MyProxy.java │ │ │ ├── Utils.java │ │ │ ├── compat/ │ │ │ │ ├── ActivityManagerCompat.java │ │ │ │ ├── ActivityManagerNativeCompat.java │ │ │ │ ├── ActivityThreadCompat.java │ │ │ │ ├── BuildCompat.java │ │ │ │ ├── BundleCompat.java │ │ │ │ ├── CompatibilityInfoCompat.java │ │ │ │ ├── ContentProviderCompat.java │ │ │ │ ├── ContentProviderHolderCompat.java │ │ │ │ ├── IActivityManagerCompat.java │ │ │ │ ├── IAppOpsServiceCompat.java │ │ │ │ ├── IAudioServiceCompat.java │ │ │ │ ├── IClipboardCompat.java │ │ │ │ ├── IContentServiceCompat.java │ │ │ │ ├── IDisplayManagerCompat.java │ │ │ │ ├── IGraphicsStatsCompat.java │ │ │ │ ├── IInputMethodManagerCompat.java │ │ │ │ ├── ILocationManagerCompat.java │ │ │ │ ├── IMediaRouterServiceCompat.java │ │ │ │ ├── IMmsCompat.java │ │ │ │ ├── IMountServiceCompat.java │ │ │ │ ├── INotificationManagerCompat.java │ │ │ │ ├── IPackageDataObserverCompat.java │ │ │ │ ├── IPhoneSubInfoCompat.java │ │ │ │ ├── ISearchManagerCompat.java │ │ │ │ ├── ISessionManagerCompat.java │ │ │ │ ├── ISmsCompat.java │ │ │ │ ├── ISubCompat.java │ │ │ │ ├── ITelephonyCompat.java │ │ │ │ ├── ITelephonyRegistryCompat.java │ │ │ │ ├── IWifiManagerCompat.java │ │ │ │ ├── IWindowManagerCompat.java │ │ │ │ ├── NativeLibraryHelperCompat.java │ │ │ │ ├── PackageManagerCompat.java │ │ │ │ ├── ParceledListSliceCompat.java │ │ │ │ ├── ProcessCompat.java │ │ │ │ ├── QueuedWorkCompat.java │ │ │ │ ├── ServiceManagerCompat.java │ │ │ │ ├── SingletonCompat.java │ │ │ │ ├── SystemPropertiesCompat.java │ │ │ │ ├── UserHandleCompat.java │ │ │ │ ├── VMRuntimeCompat.java │ │ │ │ └── WebViewFactoryCompat.java │ │ │ └── utils/ │ │ │ └── ProcessUtils.java │ │ └── res/ │ │ ├── drawable-xxhdpi/ │ │ │ └── plugin_activity_loading.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ └── values-v14/ │ │ └── styles.xml │ ├── Test/ │ │ └── ApiTest/ │ │ ├── build.gradle │ │ ├── lib/ │ │ │ └── dalviksystem.jar │ │ ├── proguard-project.txt │ │ ├── project.properties │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── cpp/ │ │ │ ├── Core.cpp │ │ │ ├── HelperJni/ │ │ │ │ ├── HelperJni.cpp │ │ │ │ └── HelperJni.h │ │ │ └── help/ │ │ │ ├── log.h │ │ │ └── nativehelper/ │ │ │ ├── JNIHelp.cpp │ │ │ └── JNIHelp.h │ │ ├── java/ │ │ │ └── com/ │ │ │ ├── example/ │ │ │ │ └── ApiTest/ │ │ │ │ ├── ActivityTestActivity.java │ │ │ │ ├── BaseService.java │ │ │ │ ├── Binder1.aidl │ │ │ │ ├── Binder2.aidl │ │ │ │ ├── BroadcastReceiverTest.java │ │ │ │ ├── ContentProviderTest.java │ │ │ │ ├── ContentProviderTest2.java │ │ │ │ ├── LaunchModeTestActivity.java │ │ │ │ ├── MyActivity.java │ │ │ │ ├── MyContentProvider1.java │ │ │ │ ├── MyContentProvider2.java │ │ │ │ ├── NativeTestActivity.java │ │ │ │ ├── NotificationTest.java │ │ │ │ ├── Service1.java │ │ │ │ ├── Service2.java │ │ │ │ ├── Service3.java │ │ │ │ ├── Service4.java │ │ │ │ ├── ServiceTest1.java │ │ │ │ ├── ServiceTest2.java │ │ │ │ ├── SingleInstanceActivity.java │ │ │ │ ├── SingleTaskActivity.java │ │ │ │ ├── SingleTopActivity.java │ │ │ │ ├── StandardActivity.java │ │ │ │ ├── StaticBroadcastReceiver.java │ │ │ │ └── WebViewTestActivity.java │ │ │ └── morgoo/ │ │ │ └── nativec/ │ │ │ └── NativeCHelper.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── activity_activity_test.xml │ │ │ ├── activity_launchmode.xml │ │ │ ├── activity_native_test.xml │ │ │ ├── activity_web_view_test.xml │ │ │ ├── broadcast_receiver.xml │ │ │ ├── content_provider.xml │ │ │ ├── main.xml │ │ │ ├── notification_test.xml │ │ │ └── service.xml │ │ ├── values/ │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ ├── values-v14/ │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ ├── TestPlugin/ │ │ ├── build.gradle │ │ ├── proguard-project.txt │ │ ├── project.properties │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── TestPlugin/ │ │ │ ├── ApkFragment.java │ │ │ ├── ApkItem.java │ │ │ ├── InstalledFragment.java │ │ │ ├── MainActivity.java │ │ │ └── MyActivity.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── apk_item.xml │ │ │ └── main.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v11/ │ │ │ └── styles.xml │ │ └── values-v14/ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── readme.md └── readme_cn.md