Explorar el Código

adapt com.android.webview com.huawei.webview

JonaNorman hace 1 año
padre
commit
a833a90e19

+ 17 - 4
app/src/main/java/com/norman/webviewup/demo/MainActivity.java

@@ -24,10 +24,23 @@ import java.util.List;
 
 public class MainActivity extends Activity implements UpgradeCallback {
 
-    private static final List<PackageInfo> UPGRADE_PACKAGE_LIST = Arrays.asList(new PackageInfo("com.google.android.webview",
-            "122.0.6261.43",
-            "https://d-01.aabstatic.com/0224/android_system_webview_122.0.6261.43_androidapksbox.apk"
-    ));
+    private static final List<PackageInfo> UPGRADE_PACKAGE_LIST = Arrays.asList(
+            new PackageInfo(
+                    "com.google.android.webview",
+                    "122.0.6261.64",
+                    "https://gitee.com/JonaNorman/webviewapk/raw/master/com.google.android.webview_122.0.6261.64-626106400_armeabi-v7a.apk"),
+            new PackageInfo(
+                    "com.android.webview",
+                    "113.0.5672.136",
+                    "https://gitee.com/JonaNorman/webviewapk/raw/master/com.android.webview_113.0.5672.136_armeabi-v7a.apk"),
+            new PackageInfo(
+                    "com.huawei.webview",
+                    "14.0.0.331",
+                    "https://gitee.com/JonaNorman/webviewapk/raw/master/com.huawei.webview_14.0.0.331_arm64-v8a_armeabi-v7a.apk")
+
+    );
+
+
 
     ProgressBar progressBar;
     TextView systemWebViewPackageTextView;

+ 11 - 0
app/src/main/java/com/norman/webviewup/lib/hook/PackageManagerHook.java

@@ -3,6 +3,7 @@ package com.norman.webviewup.lib.hook;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.ContextWrapper;
+import android.content.Intent;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
@@ -103,6 +104,16 @@ public class PackageManagerHook extends BinderHook {
             }
         }
 
+        @Override
+        protected String getInstallerPackageName(String packageName) {
+            if (packageName.equals(webViewPackageName)) {
+                // fake google play
+                return "com.android.vending";
+            } else {
+                return (String) invoke();
+            }
+        }
+
         @Override
         protected IBinder asBinder() {
             IBinder proxyBinder = getProxyBinder();

+ 4 - 0
app/src/main/java/com/norman/webviewup/lib/service/proxy/PackageManagerProxy.java

@@ -33,6 +33,10 @@ public abstract class PackageManagerProxy extends RuntimeProxy {
     @Method("getComponentEnabledSetting")
     protected abstract int getComponentEnabledSetting(ComponentName componentName);
 
+    @Method("getInstallerPackageName")
+    protected abstract   String getInstallerPackageName(String packageName);
+
+
 
     @Method("asBinder")
     protected abstract android.os.IBinder asBinder();