diff options
| author | Park Ju Hyung <qkrwngud825@gmail.com> | 2015-08-02 19:53:05 +0900 |
|---|---|---|
| committer | Park Ju Hyung <qkrwngud825@gmail.com> | 2015-08-02 20:00:58 +0900 |
| commit | 64ea34ad23195e30db9e339b30ce8024e0fe1f52 (patch) | |
| tree | 2f8b192af07845f293904bfce1b518cdd46105bf | |
| parent | 8a85717ecb8a444bf3170f4d6e97f92c1996d0d3 (diff) | |
Fix arm64 and add support for x86
- arm and arm64 is now separated.
arm tends to get apkmirror.com updates faster than arm64.
No longer needed to wait for arm64 updates.
- arm64 is now fixed.
arm64 needs 32-bit library as well for 32-bit only apps.
- x86 support is now added.
Still, x86 gets less frequent updates from apkmirror.com.
Don't blame me.
Since all architectures are now separated, executing ./extract.sh
now intelligently drops the input apk to the corresponding architecture.
arm64 apk won't automatically update arm as well.
Use arm apk to update arm.
Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
| -rw-r--r-- | README.mkdn | 6 | ||||
| -rw-r--r-- | chromium/Android.mk | 53 | ||||
| -rw-r--r-- | chromium/prebuilt/VERSION | 1 | ||||
| -rw-r--r-- | chromium/prebuilt/arm64-v8a/libwebviewchromium.so | bin | 47810488 -> 0 bytes | |||
| -rw-r--r-- | chromium/prebuilt/armeabi-v7a/libwebviewchromium.so | bin | 29351752 -> 0 bytes | |||
| -rwxr-xr-x | chromium/prebuilt/extract.sh | 31 | ||||
| -rw-r--r-- | chromium/prebuilt/webview.apk | bin | 12229522 -> 0 bytes |
7 files changed, 63 insertions, 28 deletions
diff --git a/README.mkdn b/README.mkdn index 110e412..5d6e909 100644 --- a/README.mkdn +++ b/README.mkdn @@ -5,9 +5,9 @@ What's this, dawg? ------------------ This repository replaces android_framework_webview to use Google's prebuilt WebView. -You can update the included webview binaries yourself by using chromium/prebuilt/extract.sh. +You can update the included webview binaries yourself by using chromium/prebuilt/ARCH/extract.sh. -Current version included in this repository is noted at chromium/prebuilt/VERSION. +Current version included in this repository is noted at chromium/prebuilt/ARCH/VERSION. You must set those on build/target/product/core_minimal.mk to use this repository: ``` @@ -31,6 +31,4 @@ Cons ``` - We're now forced to use Google's prebuilt library, no local changes allowed. (But realistically who mods libwebviewchromium?) - - Support is limited to arm/arm64 only for now. - (Blame Google.) ``` diff --git a/chromium/Android.mk b/chromium/Android.mk index 6dd07c7..4694126 100644 --- a/chromium/Android.mk +++ b/chromium/Android.mk @@ -23,28 +23,51 @@ CHROMIUM_PATH := external/chromium_org include $(CLEAR_VARS) LOCAL_MODULE := webview -LOCAL_SRC_FILES := prebuilt/webview.apk LOCAL_MODULE_TAGS := optional LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_MODULE_CLASS := APPS LOCAL_CERTIFICATE := PRESIGNED -ifeq ($(TARGET_IS_64_BIT),true) -TARGET_ARCH_ABI := arm64-v8a -TARGET_LIB_DIR := lib64 -TARGET_LIB_ARM_DIR := arm64 -else -TARGET_ARCH_ABI := armeabi-v7a -TARGET_LIB_DIR := lib -TARGET_LIB_ARM_DIR := arm -endif +ifeq ($(TARGET_ARCH),arm64) + LOCAL_SRC_FILES := prebuilt/arm64/webview.apk + + # Primary arch + $(shell mkdir -p $(TARGET_OUT_SHARED_LIBRARIES)) + $(shell cp $(LOCAL_PATH)/prebuilt/arm64/lib/arm64-v8a/libwebviewchromium.so $(TARGET_OUT_SHARED_LIBRARIES)) + + $(shell mkdir -p $(TARGET_OUT_APPS)/webview/lib/arm64) + $(shell ln -sf ../../../../lib64/libwebviewchromium.so $(TARGET_OUT_APPS)/webview/lib/arm64/libwebviewchromium.so) + ALL_DEFAULT_INSTALLED_MODULES += $(TARGET_OUT_APPS)/webview/lib/arm64/libwebviewchromium.so + + # Secondary arch + $(shell mkdir -p $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)) + $(shell cp $(LOCAL_PATH)/prebuilt/arm64/lib/armeabi-v7a/libwebviewchromium.so $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES)) -$(shell mkdir -p $(TARGET_OUT_SHARED_LIBRARIES)) -$(shell cp $(LOCAL_PATH)/prebuilt/$(TARGET_ARCH_ABI)/libwebviewchromium.so $(TARGET_OUT_SHARED_LIBRARIES)) + $(shell mkdir -p $(TARGET_OUT_APPS)/webview/lib/arm) + $(shell ln -sf ../../../../lib/libwebviewchromium.so $(TARGET_OUT_APPS)/webview/lib/arm/libwebviewchromium.so) + ALL_DEFAULT_INSTALLED_MODULES += $(TARGET_OUT_APPS)/webview/lib/arm/libwebviewchromium.so +else ifeq ($(TARGET_ARCH),arm) + LOCAL_SRC_FILES := prebuilt/arm/webview.apk -$(shell mkdir -p $(TARGET_OUT_APPS)/webview/lib/$(TARGET_LIB_ARM_DIR)) -$(shell ln -sf ../../../../$(TARGET_LIB_DIR)/libwebviewchromium.so $(TARGET_OUT_APPS)/webview/lib/$(TARGET_LIB_ARM_DIR)/libwebviewchromium.so) -ALL_DEFAULT_INSTALLED_MODULES += $(TARGET_OUT_APPS)/webview/lib/$(TARGET_LIB_ARM_DIR)/libwebviewchromium.so + $(shell mkdir -p $(TARGET_OUT_SHARED_LIBRARIES)) + $(shell cp $(LOCAL_PATH)/prebuilt/arm/lib/armeabi-v7a/libwebviewchromium.so $(TARGET_OUT_SHARED_LIBRARIES)) + + $(shell mkdir -p $(TARGET_OUT_APPS)/webview/lib/arm) + $(shell ln -sf ../../../../lib/libwebviewchromium.so $(TARGET_OUT_APPS)/webview/lib/arm/libwebviewchromium.so) + ALL_DEFAULT_INSTALLED_MODULES += $(TARGET_OUT_APPS)/webview/lib/arm/libwebviewchromium.so +else ifeq ($(TARGET_ARCH),x86) + LOCAL_SRC_FILES := prebuilt/x86/webview.apk + + $(shell mkdir -p $(TARGET_OUT_SHARED_LIBRARIES)) + $(shell cp $(LOCAL_PATH)/prebuilt/x86/lib/x86/libwebviewchromium.so $(TARGET_OUT_SHARED_LIBRARIES)) + + $(shell mkdir -p $(TARGET_OUT_APPS)/webview/lib/x86) + $(shell ln -sf ../../../../lib/libwebviewchromium.so $(TARGET_OUT_APPS)/webview/lib/x86/libwebviewchromium.so) + ALL_DEFAULT_INSTALLED_MODULES += $(TARGET_OUT_APPS)/webview/lib/x86/libwebviewchromium.so +else + # Huh? You MIPS, bro? + $(error Prebuilt WebView: unsupported architecture - $(TARGET_ARCH)) +endif include $(BUILD_PREBUILT) diff --git a/chromium/prebuilt/VERSION b/chromium/prebuilt/VERSION deleted file mode 100644 index 065a6d6..0000000 --- a/chromium/prebuilt/VERSION +++ /dev/null @@ -1 +0,0 @@ -43.0.2357.121 diff --git a/chromium/prebuilt/arm64-v8a/libwebviewchromium.so b/chromium/prebuilt/arm64-v8a/libwebviewchromium.so Binary files differdeleted file mode 100644 index 6ca3596..0000000 --- a/chromium/prebuilt/arm64-v8a/libwebviewchromium.so +++ /dev/null diff --git a/chromium/prebuilt/armeabi-v7a/libwebviewchromium.so b/chromium/prebuilt/armeabi-v7a/libwebviewchromium.so Binary files differdeleted file mode 100644 index 74ea866..0000000 --- a/chromium/prebuilt/armeabi-v7a/libwebviewchromium.so +++ /dev/null diff --git a/chromium/prebuilt/extract.sh b/chromium/prebuilt/extract.sh index 0ad2c9c..30f6358 100755 --- a/chromium/prebuilt/extract.sh +++ b/chromium/prebuilt/extract.sh @@ -1,24 +1,39 @@ #!/bin/bash # Update prebuilt WebView library with com.google.android.webview apk +# This script will automatically detect different architectures # Usage : ./extract.sh /path/to/com.google.android.webview.apk # # http://www.apkmirror.com/apk/google-inc/android-system-webview/ -WEBVIEWVERSION=$(cat VERSION) if ! apktool d -f -s "$@" 1>/dev/null; then echo "Failed to extract with apktool!" exit 1 fi WEBVIEWDIR=$(\ls -d com.google.android.webview* || (echo "Input file is not a WebView apk!" ; exit 1)) +if [ -e $WEBVIEWDIR/lib/arm64-v8a ]; then +ARCH="64-bit ARM" +ARCHDIR="arm64" +ARCHABI="arm64-v8a" +elif [ -e $WEBVIEWDIR/lib/armeabi-v7a ]; then +ARCH="32-bit ARM" +ARCHDIR="arm" +ARCHABI="armeabi-v7a" +elif [ -e $WEBVIEWDIR/lib/x86 ]; then +ARCH="x86" +ARCHDIR="x86" +ARCHABI="x86" +fi + +WEBVIEWVERSION=$(cat $ARCHDIR/VERSION) NEWWEBVIEWVERSION=$(cat $WEBVIEWDIR/apktool.yml | grep versionName | awk '{print $2}') if [[ $NEWWEBVIEWVERSION != $WEBVIEWVERSION ]]; then - echo "Updating current WebView $WEBVIEWVERSION to $NEWWEBVIEWVERSION ..." - echo $NEWWEBVIEWVERSION > VERSION - rm -rf arm* - mv $WEBVIEWDIR/lib/* . - rm webview.apk + echo "$ARCH - Updating current WebView $WEBVIEWVERSION to $NEWWEBVIEWVERSION ..." + rm -rf $ARCHDIR + mkdir -p $ARCHDIR/lib + echo $NEWWEBVIEWVERSION > $ARCHDIR/VERSION + mv $WEBVIEWDIR/lib/* $ARCHDIR/lib/ rm -rf $WEBVIEWDIR 7z x -otmp "$@" 1>/dev/null cd tmp @@ -26,10 +41,10 @@ if [[ $NEWWEBVIEWVERSION != $WEBVIEWVERSION ]]; then 7z a -tzip -mx0 ../tmp.zip . 1>/dev/null cd .. rm -rf tmp - zipalign -v 4 tmp.zip webview.apk 1>/dev/null + zipalign -v 4 tmp.zip $ARCHDIR/webview.apk 1>/dev/null rm tmp.zip else - echo "Input WebView apk is the same version as before." + echo "$ARCH - Input WebView apk is the same version as before." echo "Not updating ..." fi rm -rf $WEBVIEWDIR diff --git a/chromium/prebuilt/webview.apk b/chromium/prebuilt/webview.apk Binary files differdeleted file mode 100644 index f433a12..0000000 --- a/chromium/prebuilt/webview.apk +++ /dev/null |
