Giter Site home page Giter Site logo

wankkoree / webviewpp Goto Github PK

View Code? Open in Web Editor NEW
447.0 7.0 58.0 35.44 MB

Enable WebView debugging and add vConsole in it. Support WebView, TBS X5, UC U4, Crosswalk(XWalk), XWeb. 启用 WebView 调试并添加 vConsole,支持 WebView、TBS X5、UC U4、Crosswalk(XWalk)、XWeb。

Kotlin 100.00%

webviewpp's Introduction

logo

WebViewPP

Kotlin Xposed GitHub Repo stars GitHub Downloads LSPosed Downloads

Enable WebView debugging and add vConsole in it. Support WebView, TBS X5, UC U4, Crosswalk(XWalk), XWeb.

启用 WebView 调试并添加 vConsole,支持 WebView、TBS X5、UC U4、Crosswalk(XWalk)、XWeb。

Tutorial / 新手指南

Contacts / 联络

ScreenShots / 应用截图

Support Engine / 内核支持情况

Engine Name Version Debugging vConsole Comment
WebView X
TBS X5 X
UC U4 X 一些阿里系的 App 使用了魔改包,可能无法开启达到预期目标
Crosswalk X
XWeb X 由 Crosswalk 二改而来的引擎,大概只有微信在用

Repo of Rules / 规则仓库

WankkoRee/WebViewPP-Rules

To do / 计划

  • 增加注入Eruda
  • 增加注入Chii

Credits / 感谢

  • fankes/YukiHookAPI

    A modern Hook API which we used.

    本项目所采用的现代化 Hook API。

  • feix760/WebViewDebugHook

    Referenced the implementation about WebView debugging.

    参考了 WebView 调试的相关实现。

  • kooritea/debugwebview

    The inspiration for vConsole injection.

    vConsole 注入的灵感来源。

Trend / 趋势

Star Trend

webviewpp's People

Contributors

srdr0p avatar wankkoree avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

webviewpp's Issues

Fix java.lang.OutOfMemoryError: Failed to allocate a 20113536 byte allocation with 6005184 free bytes and 5864KB until OOM, target footprint 100663296, growth limit 100663296 in cn.wankkoree.xp.webviewpp.activity.Resources$onCreate$downloadResources$5$2.invoke

Version v3.1.0.179.8ebb609(16)

Stacktrace

cn.wankkoree.xp.webviewpp.activity.Resources$onCreate$downloadResources$5$2.invoke (Resources.java);

cn.wankkoree.xp.webviewpp.activity.Resources$onCreate$downloadResources$5$2.invoke (Resources.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.RequestExecutionOptionsKt$sam$java_lang_Runnable$0.run (RequestExecutionOptionsKt.java:2);

Reason

java.lang.OutOfMemoryError: Failed to allocate a 20113536 byte allocation with 6005184 free bytes and 5864KB until OOM, target footprint 100663296, growth limit 100663296

Link to App Center

不支持滴滴app吗

滴滴-Android-v6.5.14

充值中心 页面可以,有vConsole也能连chrome f12,但是这个充值中心的页面里的-更多充值一栏‘加油卡’,‘心意卡’等 点了都毫无反应,不知道是不是滴滴做了什么检测限制;
image

本来是想抓包来着,justtrustme之后滴滴的这个充值中心都打不开。

Fix android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? in cn.wankkoree.xp.webviewpp.activity.Main.$r8$lambda$eW5jbI7IvA0c1zXCWjQ0KcEF96A

Version v3.0.0.176.1778b59(15)

Stacktrace

cn.wankkoree.xp.webviewpp.activity.Main.$r8$lambda$eW5jbI7IvA0c1zXCWjQ0KcEF96A;

cn.wankkoree.xp.webviewpp.activity.Main$$ExternalSyntheticLambda9.onClick;

Reason

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

Link to App Center

Fix java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant). in cn.wankkoree.xp.webviewpp.activity.Advance.$r8$lambda$AigNdwHMFDKX81wi5-zr8k1VNsU

Version v3.0.0.176.1778b59(15)

Stacktrace

cn.wankkoree.xp.webviewpp.activity.Advance.$r8$lambda$AigNdwHMFDKX81wi5-zr8k1VNsU;

cn.wankkoree.xp.webviewpp.activity.Advance$$ExternalSyntheticLambda0.onClick;

Reason

java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).

Link to App Center

如何查看hook结果

如下代码所示 :
hook 标准 WebView 规则集 hookWebView:hookWebView( Class_WebView=android.webkit.WebView Method_getSettings=getSettings() Method_setWebContentsDebuggingEnabled=setWebContentsDe Method_setJavaScriptEnabled=setJavaScriptEnabled(bool) Method_loadUrl =loadUrl Method_setWebViewClient=setWebViewClient )
添加了如上规则的代码,然后vConsole模块也下载了,但是我怎么看到规则中的hook的loadUrl效果呢,怎么看到规则的效果或者是还有什么流程没有走到呢

Fix java.lang.NullPointerException: java.lang.NullPointerException in cn.wankkoree.xp.webviewpp.activity.Apps$AppListItemAdapter.update

Version v3.1.0.179.8ebb609(16)

Stacktrace

cn.wankkoree.xp.webviewpp.activity.Apps$AppListItemAdapter.update (Apps.java);

cn.wankkoree.xp.webviewpp.activity.Apps.appResultContract$lambda$0 (Apps.java);

cn.wankkoree.xp.webviewpp.activity.Main$$InternalSyntheticLambda$1$4ddf64fa7d8019057030c08ac77977041252e8fe81f722dec2cb5c9d851e89a1$0.onActivityResult$bridge (Main.java);

androidx.activity.result.ActivityResultRegistry.doDispatch (ActivityResultRegistry.java);

androidx.activity.result.ActivityResultRegistry.dispatchResult (ActivityResultRegistry.java);

androidx.activity.ComponentActivity.onActivityResult (ComponentActivity.java:2);

androidx.fragment.app.FragmentActivity.onActivityResult (FragmentActivity.java:5);

Reason

java.lang.NullPointerException: java.lang.NullPointerException

Link to App Center

Fix java.lang.IllegalStateException: Fragment null must be a public static class to be properly recreated from instance state. in androidx.fragment.app.FragmentTransaction.doAddOp (FragmentTransaction.java:249)

Version v3.0.0.173.844e4d6(15)

Stacktrace

androidx.fragment.app.FragmentTransaction.doAddOp (FragmentTransaction.java:249);

androidx.fragment.app.BackStackRecord.doAddOp (BackStackRecord.java:183);

androidx.fragment.app.FragmentTransaction.add (FragmentTransaction.java:171);

androidx.viewpager2.adapter.FragmentStateAdapter.placeFragmentInViewHolder (FragmentStateAdapter.java:339);

androidx.viewpager2.adapter.FragmentStateAdapter.onViewAttachedToWindow (FragmentStateAdapter.java:276);

androidx.viewpager2.adapter.FragmentStateAdapter.onViewAttachedToWindow (FragmentStateAdapter.java:67);

androidx.recyclerview.widget.RecyclerView.dispatchChildAttached (RecyclerView.java:7556);

androidx.recyclerview.widget.RecyclerView$5.addView (RecyclerView.java:860);

androidx.recyclerview.widget.ChildHelper.addView (ChildHelper.java:107);

androidx.recyclerview.widget.RecyclerView$LayoutManager.addViewInt (RecyclerView.java:8601);

androidx.recyclerview.widget.RecyclerView$LayoutManager.addView (RecyclerView.java:8559);

androidx.recyclerview.widget.RecyclerView$LayoutManager.addView (RecyclerView.java:8547);

androidx.recyclerview.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1641);

androidx.recyclerview.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1587);

androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:665);

androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:4134);

androidx.recyclerview.widget.RecyclerView.onMeasure (RecyclerView.java:3540);

androidx.viewpager2.widget.ViewPager2.onMeasure (ViewPager2.java:498);

androidx.appcompat.widget.LinearLayoutCompat.measureChildBeforeLayout (LinearLayoutCompat.java:1401);

androidx.appcompat.widget.LinearLayoutCompat.measureVertical (LinearLayoutCompat.java:685);

androidx.appcompat.widget.LinearLayoutCompat.onMeasure (LinearLayoutCompat.java:575);

androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:831);

androidx.appcompat.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:145);

Reason

java.lang.IllegalStateException: Fragment null must be a public static class to be properly recreated from instance state.

Link to App Center

Fix java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). in com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke

Version v3.0.0.176.1778b59(15)

Stacktrace

com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke;

com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke;

com.github.kittinunf.fuel.core.RequestExecutionOptionsKt$sam$java_lang_Runnable$0.run;

Reason

java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).

Link to App Center

vConsole注入问题

  1. 没有注入成功
    用两款app做了测试,“美图秀秀”和“皮皮虾”,皮皮虾成功,但美图秀秀失败,不知道为什么~~(真机调试二者都行)

  2. 注入时机
    皮皮虾注入成功,但vConsole中没有历史日志。我想应该是注入时机较后,感觉可以调整下,在第一时间注入,这样也能看到整个页面的完整日志

关于微信内核问题

请问大佬现在还可以禁用微信的内置内核,转而让其使用系统webview嘛(之前x5貌似行,现在换xweb了,之前的方法用不了)
play8.0.21,不算太新的版本

Fix java.lang.UnsupportedOperationException: Failed to resolve attribute at index 1: TypedValue{t=0x2/d=0x7f030171 a=-1} in androidx.appcompat.view.menu.MenuAdapter.getView (MenuAdapter.java:94)

Version v3.0.0.176.1778b59(15)

Stacktrace

androidx.appcompat.view.menu.MenuAdapter.getView (MenuAdapter.java:94);

androidx.appcompat.view.menu.MenuPopup.measureIndividualMenuWidth (MenuPopup.java:161);

androidx.appcompat.view.menu.StandardMenuPopup.tryShow (StandardMenuPopup.java:174);

androidx.appcompat.view.menu.StandardMenuPopup.show (StandardMenuPopup.java:208);

androidx.appcompat.view.menu.MenuPopupHelper.showPopup (MenuPopupHelper.java:299);

androidx.appcompat.view.menu.MenuPopupHelper.tryShow (MenuPopupHelper.java:185);

androidx.appcompat.view.menu.MenuPopupHelper.show (MenuPopupHelper.java:147);

androidx.appcompat.widget.PopupMenu.show (PopupMenu.java:238);

cn.wankkoree.xp.webviewpp.activity.App.$r8$lambda$soUTi837EtCPnOD5v8wLWo7MCm8;

cn.wankkoree.xp.webviewpp.activity.App$$ExternalSyntheticLambda23.onClick;

Reason

java.lang.UnsupportedOperationException: Failed to resolve attribute at index 1: TypedValue{t=0x2/d=0x7f030171 a=-1}

Link to App Center

Fix java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant). in cn.wankkoree.xp.webviewpp.activity.App.$r8$lambda$gvqcTFMdPt1enzKNDBi8Al_bxu8

Version v3.0.0.176.1778b59(15)

Stacktrace

cn.wankkoree.xp.webviewpp.activity.App.$r8$lambda$gvqcTFMdPt1enzKNDBi8Al_bxu8;

cn.wankkoree.xp.webviewpp.activity.App$$ExternalSyntheticLambda49.onMenuItemClick;

androidx.appcompat.widget.PopupMenu$1.onMenuItemSelected (PopupMenu.java:113);

androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:836);

androidx.appcompat.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:159);

androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:987);

androidx.appcompat.view.menu.MenuPopup.onItemClick (MenuPopup.java:128);

Reason

java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).

Link to App Center

Fix java.lang.OutOfMemoryError: Failed to allocate a 37402232 byte allocation with 16983960 free bytes and 16MB until OOM, target footprint 100663296, growth limit 100663296 in cn.wankkoree.xp.webviewpp.activity.Resources$onCreate$downloadResources$5$2.invoke

Version v3.1.0.179.8ebb609(16)

Stacktrace

cn.wankkoree.xp.webviewpp.activity.Resources$onCreate$downloadResources$5$2.invoke (Resources.java);

cn.wankkoree.xp.webviewpp.activity.Resources$onCreate$downloadResources$5$2.invoke (Resources.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke (DeserializableKt.java);

com.github.kittinunf.fuel.core.RequestExecutionOptionsKt$sam$java_lang_Runnable$0.run (RequestExecutionOptionsKt.java:2);

Reason

java.lang.OutOfMemoryError: Failed to allocate a 37402232 byte allocation with 16983960 free bytes and 16MB until OOM, target footprint 100663296, growth limit 100663296

Link to App Center

Hook资源管理器Bug

打开Hook资源管理器,如果马上点击下载,会因为获取不到列表而导致应用重启

微信8.0.28(2240)小程序hook不了

[ 2022-10-14T20:55:22.449    10360: 25934: 25963 I/LSPosed-Bridge  ] [WebViewPP<com.tencent.mm>][E][com.tencent.mm]--> Hook.Class.NotFound at hookXWebPreferences👉org.xwalk.core.XWalkPreferences
[ 2022-10-14T20:55:22.450    10360: 25934: 25963 E/LSPosed-Bridge  ] java.lang.NoClassDefFoundError: Can't find this Class in [dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/~~ODmHvLWJaPtxKpo6kRzOgg==/com.tencent.mm-iXrs9r93xcXfL09xCDefRQ==/base.apk"],nativeLibraryDirectories=[/data/app/~~ODmHvLWJaPtxKpo6kRzOgg==/com.tencent.mm-iXrs9r93xcXfL09xCDefRQ==/lib/arm64, /data/app/~~ODmHvLWJaPtxKpo6kRzOgg==/com.tencent.mm-iXrs9r93xcXfL09xCDefRQ==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]]]:
                                -> name:[org.xwalk.core.XWalkPreferences]
Generated by YukiHookAPI#ReflectionTool
	at u3.a.c(Unknown Source:187)
	at u3.a.e(Unknown Source:167)
	at w3.b.a(Unknown Source:12)
	at o1.r.a(Unknown Source:15)
	at m1.b.e(Unknown Source:1391)
	at m3.a.a(Unknown Source:119)
	at c4.a.b(Unknown Source:139)
	at m1.c.a(Unknown Source:108)
	at cn.wankkoree.xp.webviewpp.hook.Entry.handleLoadPackage(Unknown Source:9)
	at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(Unknown Source:2)
	at de.robv.android.xposed.callbacks.XC_LoadPackage.call(Unknown Source:6)
	at de.robv.android.xposed.callbacks.XCallback.callAll(Unknown Source:26)
	at H.afterHookedMethod(SourceFile:1)
	at de.robv.android.xposed.XposedBridge$AdditionalHookInfo.callback(Unknown Source:147)
	at LSPHooker_.getClassLoader(Unknown Source:8)
	at android.app.LoadedApk.getResources(LoadedApk.java:1335)
	at android.app.ContextImpl.createAppContext(ContextImpl.java:3044)
	at android.app.ContextImpl.createAppContext(ContextImpl.java:3036)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6928)
	at android.app.ActivityThread.access$1800(ActivityThread.java:254)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2184)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:233)
	at android.os.Looper.loop(Looper.java:344)
	at android.app.ActivityThread.main(ActivityThread.java:8212)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)

LSPosed_2022-10-14T20_56_24.372.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.