aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPark Ju Hyung <qkrwngud825@gmail.com>2015-08-02 19:53:05 +0900
committerPark Ju Hyung <qkrwngud825@gmail.com>2015-08-02 20:00:58 +0900
commit64ea34ad23195e30db9e339b30ce8024e0fe1f52 (patch)
tree2f8b192af07845f293904bfce1b518cdd46105bf
parent8a85717ecb8a444bf3170f4d6e97f92c1996d0d3 (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.mkdn6
-rw-r--r--chromium/Android.mk53
-rw-r--r--chromium/prebuilt/VERSION1
-rw-r--r--chromium/prebuilt/arm64-v8a/libwebviewchromium.sobin47810488 -> 0 bytes
-rw-r--r--chromium/prebuilt/armeabi-v7a/libwebviewchromium.sobin29351752 -> 0 bytes
-rwxr-xr-xchromium/prebuilt/extract.sh31
-rw-r--r--chromium/prebuilt/webview.apkbin12229522 -> 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
deleted file mode 100644
index 6ca3596..0000000
--- a/chromium/prebuilt/arm64-v8a/libwebviewchromium.so
+++ /dev/null
Binary files differ
diff --git a/chromium/prebuilt/armeabi-v7a/libwebviewchromium.so b/chromium/prebuilt/armeabi-v7a/libwebviewchromium.so
deleted file mode 100644
index 74ea866..0000000
--- a/chromium/prebuilt/armeabi-v7a/libwebviewchromium.so
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index f433a12..0000000
--- a/chromium/prebuilt/webview.apk
+++ /dev/null
Binary files differ