diff --git a/BromiteWebView/AndroidManifest.xml b/BromiteWebView/AndroidManifest.xml
new file mode 100644
index 00000000..7d31786e
--- /dev/null
+++ b/BromiteWebView/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/BromiteWebView/openssl.arm b/BromiteWebView/openssl.arm
new file mode 120000
index 00000000..c7eab14f
--- /dev/null
+++ b/BromiteWebView/openssl.arm
@@ -0,0 +1 @@
+../tools/openssl.arm
\ No newline at end of file
diff --git a/BromiteWebView/openssl.x86 b/BromiteWebView/openssl.x86
new file mode 120000
index 00000000..75440ad3
--- /dev/null
+++ b/BromiteWebView/openssl.x86
@@ -0,0 +1 @@
+../tools/openssl.x86
\ No newline at end of file
diff --git a/BromiteWebView/testkey.crt b/BromiteWebView/testkey.crt
new file mode 100644
index 00000000..e242d83e
--- /dev/null
+++ b/BromiteWebView/testkey.crt
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEqDCCA5CgAwIBAgIJAJNurL4H8gHfMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g
+VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
+AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
+Fw0wODAyMjkwMTMzNDZaFw0zNTA3MTcwMTMzNDZaMIGUMQswCQYDVQQGEwJVUzET
+MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
+A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
+ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
+hvcNAQEBBQADggENADCCAQgCggEBANaTGQTexgskse3HYuDZ2CU+Ps1s6x3i/waM
+qOi8qM1r03hupwqnbOYOuw+ZNVn/2T53qUPn6D1LZLjk/qLT5lbx4meoG7+yMLV4
+wgRDvkxyGLhG9SEVhvA4oU6Jwr44f46+z4/Kw9oe4zDJ6pPQp8PcSvNQIg1QCAcy
+4ICXF+5qBTNZ5qaU7Cyz8oSgpGbIepTYOzEJOmc3Li9kEsBubULxWBjf/gOBzAzU
+RNps3cO4JFgZSAGzJWQTT7/emMkod0jb9WdqVA2BVMi7yge54kdVMxHEa5r3b97s
+zI5p58ii0I54JiCUP5lyfTwE/nKZHZnfm644oLIXf6MdW2r+6R8CAQOjgfwwgfkw
+HQYDVR0OBBYEFEhZAFY9JyxGrhGGBaR0GawJyowRMIHJBgNVHSMEgcEwgb6AFEhZ
+AFY9JyxGrhGGBaR0GawJyowRoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
+CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
+QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
+CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJAJNurL4H8gHfMAwGA1Ud
+EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHqvlozrUMRBBVEY0NqrrwFbinZa
+J6cVosK0TyIUFf/azgMJWr+kLfcHCHJsIGnlw27drgQAvilFLAhLwn62oX6snb4Y
+LCBOsVMR9FXYJLZW2+TcIkCRLXWG/oiVHQGo/rWuWkJgU134NDEFJCJGjDbiLCpe
++ZTWHdcwauTJ9pUbo8EvHRkU3cYfGmLaLfgn9gP+pWA7LFQNvXwBnDa6sppCccEX
+31I828XzgXpJ4O+mDL1/dBd+ek8ZPUP0IgdyZm5MTYPhvVqGCHzzTy3sIeJFymwr
+sBbmg2OAUNLEMO6nwmocSdN2ClirfxqCzJOLSDE4QyS9BAH6EhY6UFcOaE0=
+-----END CERTIFICATE-----
diff --git a/BromiteWebView/testkey.key b/BromiteWebView/testkey.key
new file mode 100644
index 00000000..63a01b31
--- /dev/null
+++ b/BromiteWebView/testkey.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDWkxkE3sYLJLHt
+x2Lg2dglPj7NbOsd4v8GjKjovKjNa9N4bqcKp2zmDrsPmTVZ/9k+d6lD5+g9S2S4
+5P6i0+ZW8eJnqBu/sjC1eMIEQ75Mchi4RvUhFYbwOKFOicK+OH+Ovs+PysPaHuMw
+yeqT0KfD3ErzUCINUAgHMuCAlxfuagUzWeamlOwss/KEoKRmyHqU2DsxCTpnNy4v
+ZBLAbm1C8VgY3/4DgcwM1ETabN3DuCRYGUgBsyVkE0+/3pjJKHdI2/VnalQNgVTI
+u8oHueJHVTMRxGua92/e7MyOaefIotCOeCYglD+Zcn08BP5ymR2Z35uuOKCyF3+j
+HVtq/ukfAgEDAoIBAQCPDLtYlIQHbcvz2kHrO+VuKX8znfIT7KoEXcXwfcXeR+JQ
+ScSxxPNECdIKZiORVTt++nDX7/Ao3O3QmKnB4pmPS+xFGr0qdssjpdatgn7doWXQ
+L04WDln1exY0W9cpev+0fzUKhy08FJd12/G34G/X6DH3isFeNVqvd0BVug/0RXWi
+hnmONcUztAJ25E5YNqHadWSt+vU4pJOpvxDyE6ZXrBIpHBvlaZf8atJ7maf8iXfS
+ZUzrqnx1O5zaTGRnGo7o/UdrfuLDfpVXnXBEHm+rk6QTq2ZKyZj6JZQ/K1LB+cXq
+ZO9KG8oBSecXohQBeJYIDEikB9xHdsvelr1MoYR7AoGBAOrAmRccm5UnjAe/npdF
+GIVXkXaep7Ur9rqT4NaoSMSnDRim6Kii2lNoZ2szvvKYuxRNmvi1u60iRvQsLM10
+duqyG+FKdx+S5632ALWTKvdH97l3VYcRCrDYAyMYdotYavF8bcT9QKgYHoWHb18K
+LL27A4afIXmrVXCnWXp1e2GbAoGBAOn+9xk0qK83mecSq5edXgJ1lq2NaRVmSZYc
+5KKtCC8YYiQ0TSuIiRSpzJ3tR28wLtxO5lvqd72R8vBMPzS6CbY5RCj7tOBVW8bP
+TuwOYUN+AAN87csZvlmPsUsXMmBNQTYycvo0Keh/ZR0RIoFmN37SyagZC1ybj90t
+4cUCkUDNAoGBAJyAZg9oZ7jFCAUqabouEFjlC6RpxSNypHxileRwMIMaCLsZ8HBs
+kYzwRPIif0xl0g2JEfsj0nNsL01yyIj4T0chZ+uG+hUMmnP5Vc5iHKTapSZPjloL
+XHXlV2y6+bI68fZS89io1cVlaa5aSj9cHdPSAlm/a6ZyOPXE5lGjp5ZnAoGBAJv/
+T2YjGx96ZpoMcmUTlAGjuckI8Lju27lomGxzWsoQQW14M3JbBg3GiGlI2kogHz2J
+7ufxpSkL90rdf3h8Bnl7gsX9I0A459nfifK0QNepVVeonodmfuZfy4dkzEAzgM7M
+TKbNcUWqQ2i2FwDuz6nh28VmB5MSX+jJQS4BtiszAoGAYyqt2RrdpGLZlaZyYlsF
+zalGIfTpWXPuj5ot63Ghwawb0xoN1qKJdYcbanvrblVhtKEsYKOkae96d1grNcf4
+Vbm3bMrPwHdIRf6pRS+x46mMBfuap1JoGcXESY4NwdsbpYo71PuBgykeNHaO2nq0
+BYcm/RyNFHuJZd+PFfOevDc=
+-----END PRIVATE KEY-----
diff --git a/BromiteWebView/zip.arm b/BromiteWebView/zip.arm
new file mode 120000
index 00000000..562dea31
--- /dev/null
+++ b/BromiteWebView/zip.arm
@@ -0,0 +1 @@
+../tools/zip.arm
\ No newline at end of file
diff --git a/BromiteWebView/zip.x86 b/BromiteWebView/zip.x86
new file mode 120000
index 00000000..3d62bd53
--- /dev/null
+++ b/BromiteWebView/zip.x86
@@ -0,0 +1 @@
+../tools/zip.x86
\ No newline at end of file
diff --git a/BromiteWebView/zipalign.arm b/BromiteWebView/zipalign.arm
new file mode 120000
index 00000000..b99a2f63
--- /dev/null
+++ b/BromiteWebView/zipalign.arm
@@ -0,0 +1 @@
+../tools/zipalign.arm
\ No newline at end of file
diff --git a/BromiteWebView/zipalign.x86 b/BromiteWebView/zipalign.x86
new file mode 120000
index 00000000..2d9b0225
--- /dev/null
+++ b/BromiteWebView/zipalign.x86
@@ -0,0 +1 @@
+../tools/zipalign.x86
\ No newline at end of file
diff --git a/CommonInstaller b/CommonInstaller
index c8d70edd..67a247ff 100644
--- a/CommonInstaller
+++ b/CommonInstaller
@@ -513,18 +513,95 @@ check_fake_package_signature () {
}
##########################################################################################
-# check if Bromite System WebView is supported
+# parse output from "aapt dump xmltree" back to xml
+##########################################################################################
+
+parse_aapt_dump_xmltree(){
+ local i step indent prev_indent cur_type prev_type entity_stack key value tmp
+ while IFS=$'\n' read -r i; do
+ cur_type="$(echo "${i}" | awk '{print $1}')"
+ case "${cur_type}" in
+ E:) # entity
+ indent="$(echo "${i}" | awk -F'[^ ]' '{print length($1)}')"
+ [ -z "${prev_type}" ] || [ "${prev_type}" = "C:" ] || echo -n ">"
+ [ -z "${prev_type}" ] || [ "$((${prev_indent:=0}-${indent}))" -lt 0 ] || for j in $(seq "$((${prev_indent:=0}-${indent}))" "-${step:=2}" "$((${indent}-${step}))"); do
+ echo -ne "\n${entity_stack##* }>"
+ entity_stack="${entity_stack% *}"
+ done
+ echo -ne "\n<$(echo -n "${i}" | awk '{print $2}')"
+ entity_stack="${entity_stack} $(echo "${i}" | awk '{print $2}')"
+ prev_indent="${indent}"
+ ;;
+ A:) # attribute
+ key="$(echo "${i}" | awk '{print $2}' | awk -F= '{print $1}')"
+ value="${i#*=}"
+ case "${value}" in
+ "(type 0x12)"*) [ "${value#*)}" = "0x0" ] && value='"false"' || value='"true"';;
+ "(type 0x10)"*) value="$(printf '%d' "${value#*)}")";;
+ *) value="${value% \(Raw:*}"
+ esac
+ echo -n " ${key}=${value}"
+ unset key value
+ ;;
+ C:) # content
+ tmp="${i#*C: \"}"
+ echo -n ">${tmp%*\"}"
+ unset tmp
+ ;;
+ esac
+ prev_type="${cur_type}"
+ done <&0
+ [ "${prev_type}" = "C:" ] || echo -n ">"
+
+ until [ -z "${entity_stack}" ]; do
+ echo -ne "\n${entity_stack##* }>"
+ entity_stack="${entity_stack% *}"
+ done
+}
+
##########################################################################################
+# sign package with test keys
+##########################################################################################
+
+hex2bin(){ for i in $(seq 0 2 $((${#1}-1))); do printf "\x${1:${i}:2}"; done; }
+apk_sign(){
+ local tmpdir="${TMPDIR}/$(tr -cd '0-9a-z' 2>/dev/null "${tmpdir}/META-INF/MANIFEST.MF"
+Manifest-Version: 1.0
+Built-By: NanoDroid
+Created-By: 1.0 (Android)
+
+EOF
+ for i in $(find "${tmpdir}" -type f); do
+ echo "${i}" | grep -qvE "^${tmpdir}/META-INF/" || continue
+ cat <>"${tmpdir}/META-INF/MANIFEST.MF"
+Name: ${i#${tmpdir}/*}
+SHA1-Digest: $(hex2bin $(sha1sum ${i} | awk '{print $1}') | base64 | tr -d '\n')
+
+EOF
+ done
+
+ cat <"${tmpdir}/META-INF/CERT.SF"
+Signature-Version: 1.0
+SHA1-Digest-Manifest: $(hex2bin $(sha1sum "${tmpdir}/META-INF/MANIFEST.MF" | awk '{print $1}') | base64 | tr -d '\n')
+Created-By: 1.0 (Android)
-check_bromite_webview_support () {
- WEBVIEW_PKG="com.android.webview"
- HAS_WEBVIEW=false
+EOF
+ for i in $(find "${tmpdir}" -type f); do
+ echo "${i}" | grep -qvE "^${tmpdir}/META-INF/" || continue
+ cat <>"${tmpdir}/META-INF/CERT.SF"
+Name: ${i#${tmpdir}/*}
+SHA1-Digest: $(hex2bin $(sha1sum ${i} | awk '{print $1}') | base64 | tr -d '\n')
- ${AAPT} dump xmltree /system/framework/framework-res.apk res/xml/config_webview_packages.xml | \
- tr -d '\n' | sed -e 's/webviewprovider/\n/g' | grep com.android.webview | \
- grep -q 'E: signature' || HAS_WEBVIEW=true
+EOF
+ done
- ${HAS_WEBVIEW} && return 0 || return 1
+ "${OPENSSL}" smime -sign -binary -noattr -in "${tmpdir}/META-INF/CERT.SF" -outform der -out "${tmpdir}/META-INF/CERT.RSA" -signer "${INSTALLER}/testkey.crt" -md sha1 -inkey "${INSTALLER}/testkey.key"
+ "${ZIP}" -r "${apk}" ./META-INF
+ #"${ZIP}" -n resources.arsc "${apk}" ./resources.arsc
}
##########################################################################################
@@ -705,6 +782,9 @@ detect_arch () {
UNZIP="${INSTALLER}/unzip.${BIN_ARCH}"
AAPT="${INSTALLER}/aapt.${BIN_ARCH}"
ZSTD="${INSTALLER}/zstd.${BIN_ARCH}"
+ OPENSSL="${INSTALLER}/openssl.${BIN_ARCH}"
+ ZIP="${INSTALLER}/zip.${BIN_ARCH}"
+ ZIPALIGN="${INSTALLER}/zipalign.${BIN_ARCH}"
chmod +x "${UNZIP}" "${AAPT}" "${ZSTD}"
case ${SDK_VERSION} in
@@ -1357,43 +1437,53 @@ install_initd () {
install_bromite_webview () {
if [ "${MODID}" = "NanoDroid_BromiteWebView" ]; then
- if ! check_bromite_webview_support; then
- error "ROM does not support Bromite WebView installation!"
- else
- print_info " << with Bromite WebView"
+ local init_base overlaydir lib_suffix
+ [ "$(uname -m)" = "aarch64" ] && lib_suffix=64
+ [ "$(uname -m)" = "x86_64" ] && lib_suffix=64
+ for i in system_ext/overlay product/overlay overlay; do
+ [ -d "/system/${i}" ] && overlaydir="${i}" && break
+ done
+ mkdir -p "${TMPDIR}/bromite/res/xml" "${INSTALLER}/system/${overlaydir}"
+ ${AAPT} dump xmltree /system/framework/framework-res.apk res/xml/config_webview_packages.xml | \
+ parse_aapt_dump_xmltree | sed "s||${WEBVIEW_SIG:-MIIDbTCCAlWgAwIBAgIEHcsmjjANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MCAXDTE4MDExOTA3MjE1N1oYDzIwNjgwMTA3MDcyMTU3WjBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtakjGj0eTavbBB2vWXj8KBixWn4zgXAKc+yGFu3SLEGF1VB5aJWwcMHxVI55yH/8M2eNnJP0BkSidfKgPVcm1sk/GrNEs9uk5sWod9byO5M5QWQmGP2REeTd6J0BVVVaMp2MZnqeR3Su3pwFzrSwTqIGyf8dkPSEz7ifj792+EeRNrov4oRQK7lIfqInzwc4d34wU069Lrw6m7J7HM0KbRYISsWMiYj025Qg+dTrtdWt7jbdcj7htW0eYyJoLd90+s43RWnOpENmWpcWv1EVPxUD4mCdV9idYwoHRIESpSu9IWvqDZp1VoRc43nLgsNfNBwmYdTkIaPiz1m7TBcr7QIDAQABoyEwHzAdBgNVHQ4EFgQUuWoGd7W7wMyQ1pOdjiMv10YHTR0wDQYJKoZIhvcNAQELBQADggEBAA7iw6eKz+T8HIpKDoDcX1Ywjn9JUzuCFu20LnsLzreO/Pog1xErYjdLAS7LTZokfbAnitBskO9QhV9BYkDiM0Qr5v2/HsJTtxa1mz9ywCcI36jblMyuXFj8tuwQI9/t9i+Fc3+bOFBV3t7djPo9qX1dIK0lZ6s8HcIhaCNdqm65fH+nWhC/H9djqC6qOtrkTiACKEcHQ4a/5dfROU0q0M4bS4YuiaAQWgjiGbik4LrZ8wZX1aqJCLt0Hs7MzXyyf0cRSO11FIOViHwzh6WTZGufq2J3YBFXPond8kLxkKL3LNezbi5yTcecxsbKQ6OS46CnIKcy/M8asSreLpoCDvw=}|g" > "${TMPDIR}/bromite/res/xml/config_webview_packages.xml"
+ mkdir -p "${INSTALLER}/system/${overlaydir}"
+ ${AAPT} package -f -M "${INSTALLER}/AndroidManifest.xml" -I /system/framework/framework-res.apk -S "${TMPDIR}/bromite/res" -F "${TMPDIR}/BromiteOverlay.apk" --target-sdk-version "$(getprop ro.system.build.version.sdk)"
+ apk_sign "${TMPDIR}/BromiteOverlay.apk"
+ ${ZIPALIGN} 4 "${TMPDIR}/BromiteOverlay.apk" "${INSTALLER}/system/${overlaydir}/BromiteOverlay.apk"
+ print_info " << with Bromite WebView"
- case ${ARCH} in
- arm | arm64 | x86 ) BROMITE_ARCH=${ARCH} ;;
- x86_64 ) BROMITE_ARCH=x86 ;;
- esac
+ case ${ARCH} in
+ arm | arm64 | x86 ) BROMITE_ARCH=${ARCH} ;;
+ x86_64 ) BROMITE_ARCH=x86 ;;
+ esac
- WEBVIEW_REPLACE=BromiteWebView
- WEBVIEW_DIR=""
+ WEBVIEW_REPLACE=BromiteWebView
+ WEBVIEW_DIR=""
- for app in webview webviewstub WebViewStub Webview; do
- if [ -d /system/app/${app} ]; then
- WEBVIEW_REPLACE=${app}
- break
- elif [ -d /system/product/app/${app} ]; then
- WEBVIEW_REPLACE=${app}
- WEBVIEW_DIR="product/app"
- break
- fi
- done
-
- if [ "${NANODROID_UPGRADE}" -eq 0 ]; then
- for app in com.android.webview; do
- rm -rf /data/data/${app}
- rm -rf /data/user/*/${app}
- rm -rf /data/user_de/*/${app}
- rm -rf /data/app/${app}-*
- rm -rf /mnt/asec/${app}-*
- rm -rf ${STORAGE}/Android/data/${app}
- done
+ for app in webview webviewstub WebViewStub Webview; do
+ if [ -d /system/app/${app} ]; then
+ WEBVIEW_REPLACE=${app}
+ break
+ elif [ -d /system/product/app/${app} ]; then
+ WEBVIEW_REPLACE=${app}
+ WEBVIEW_DIR="product/app"
+ break
fi
+ done
- nanodroid_install_apk BromiteWebView_${BROMITE_ARCH} multilib ${WEBVIEW_REPLACE} ${WEBVIEW_DIR}
+ if [ "${NANODROID_UPGRADE}" -eq 0 ]; then
+ for app in org.bromite.webview; do
+ rm -rf /data/data/${app}
+ rm -rf /data/user/*/${app}
+ rm -rf /data/user_de/*/${app}
+ rm -rf /data/app/${app}-*
+ rm -rf /mnt/asec/${app}-*
+ rm -rf ${STORAGE}/Android/data/${app}
+ done
fi
+
+ nanodroid_install_apk BromiteWebView_${BROMITE_ARCH} multilib ${WEBVIEW_REPLACE} ${WEBVIEW_DIR}
+ nanodroid_install_file "${overlaydir}/BromiteOverlay.apk"
fi
}
@@ -1766,7 +1856,6 @@ MAGISK_VER_CODE=${MAGISK_VER_CODE}
NANODROID_UPGRADE=${NANODROID_UPGRADE}
NANODROID_BINDIR=${NANODROID_BINDIR}
HAS_FAKESIGN=${HAS_FAKESIGN}
-HAS_WEBVIEW=${HAS_WEBVIEW}
### MOUNTED PARTITIONS ###
" >> ${nanodroid_logfile}
diff --git a/FDroid/openssl.arm b/FDroid/openssl.arm
new file mode 120000
index 00000000..c7eab14f
--- /dev/null
+++ b/FDroid/openssl.arm
@@ -0,0 +1 @@
+../tools/openssl.arm
\ No newline at end of file
diff --git a/FDroid/openssl.x86 b/FDroid/openssl.x86
new file mode 120000
index 00000000..75440ad3
--- /dev/null
+++ b/FDroid/openssl.x86
@@ -0,0 +1 @@
+../tools/openssl.x86
\ No newline at end of file
diff --git a/FDroid/zipalign.arm b/FDroid/zipalign.arm
new file mode 120000
index 00000000..b99a2f63
--- /dev/null
+++ b/FDroid/zipalign.arm
@@ -0,0 +1 @@
+../tools/zipalign.arm
\ No newline at end of file
diff --git a/FDroid/zipalign.x86 b/FDroid/zipalign.x86
new file mode 120000
index 00000000..2d9b0225
--- /dev/null
+++ b/FDroid/zipalign.x86
@@ -0,0 +1 @@
+../tools/zipalign.x86
\ No newline at end of file
diff --git a/Full/openssl.arm b/Full/openssl.arm
new file mode 120000
index 00000000..c7eab14f
--- /dev/null
+++ b/Full/openssl.arm
@@ -0,0 +1 @@
+../tools/openssl.arm
\ No newline at end of file
diff --git a/Full/openssl.x86 b/Full/openssl.x86
new file mode 120000
index 00000000..75440ad3
--- /dev/null
+++ b/Full/openssl.x86
@@ -0,0 +1 @@
+../tools/openssl.x86
\ No newline at end of file
diff --git a/Full/zipalign.arm b/Full/zipalign.arm
new file mode 120000
index 00000000..b99a2f63
--- /dev/null
+++ b/Full/zipalign.arm
@@ -0,0 +1 @@
+../tools/zipalign.arm
\ No newline at end of file
diff --git a/Full/zipalign.x86 b/Full/zipalign.x86
new file mode 120000
index 00000000..2d9b0225
--- /dev/null
+++ b/Full/zipalign.x86
@@ -0,0 +1 @@
+../tools/zipalign.x86
\ No newline at end of file
diff --git a/Google/openssl.arm b/Google/openssl.arm
new file mode 120000
index 00000000..c7eab14f
--- /dev/null
+++ b/Google/openssl.arm
@@ -0,0 +1 @@
+../tools/openssl.arm
\ No newline at end of file
diff --git a/Google/openssl.x86 b/Google/openssl.x86
new file mode 120000
index 00000000..75440ad3
--- /dev/null
+++ b/Google/openssl.x86
@@ -0,0 +1 @@
+../tools/openssl.x86
\ No newline at end of file
diff --git a/Google/zipalign.arm b/Google/zipalign.arm
new file mode 120000
index 00000000..b99a2f63
--- /dev/null
+++ b/Google/zipalign.arm
@@ -0,0 +1 @@
+../tools/zipalign.arm
\ No newline at end of file
diff --git a/Google/zipalign.x86 b/Google/zipalign.x86
new file mode 120000
index 00000000..2d9b0225
--- /dev/null
+++ b/Google/zipalign.x86
@@ -0,0 +1 @@
+../tools/zipalign.x86
\ No newline at end of file
diff --git a/data/build-package.database b/data/build-package.database
index e5ab9625..934dd59f 100644
--- a/data/build-package.database
+++ b/data/build-package.database
@@ -90,9 +90,9 @@ gl_AURORAWARDEN=(AuroraOSS/AppWarden app Warden)
# Bromite WebView
###
-bm_WEBVIEW_arm64=(bromite com.android.webview app BromiteWebView_arm64 arm64-v8a)
-bm_WEBVIEW_arm=(bromite com.android.webview app BromiteWebView_arm armeabi-v7a)
-bm_WEBVIEW_x86=(bromite com.android.webview app BromiteWebView_x86 x86)
+bm_WEBVIEW_arm64=(bromite org.bromite.webview app BromiteWebView_arm64 arm64-v8a)
+bm_WEBVIEW_arm=(bromite org.bromite.webview app BromiteWebView_arm armeabi-v7a)
+bm_WEBVIEW_x86=(bromite org.bromite.webview app BromiteWebView_x86 x86)
###
# OSM And+
diff --git a/data/build-package.download b/data/build-package.download
index 25bd0e35..d695e718 100644
--- a/data/build-package.download
+++ b/data/build-package.download
@@ -234,7 +234,7 @@ grab_apk_from_repo () {
fi
case "${pkg_name}" in
- com.android.webview )
+ org.bromite.webview )
local apk_dest="${appsfolder[12]}/${3}/${4}"
;;
diff --git a/data/service.sh b/data/service.sh
index 4dd3a476..ec2b7129 100644
--- a/data/service.sh
+++ b/data/service.sh
@@ -35,10 +35,10 @@ install_bromitewebview () {
# Bromite WebView needs to be installed as user app to prevent crashes
if [ -d "${MODDIR}/system/product/app" ]; then
- pm list packages -f | grep -q /data.*com.android.webview || \
+ pm list packages -f | grep -q /data.*org.bromite.webview || \
pm install -r "${MODDIR}"/system/product/app/*/*.apk &
else
- pm list packages -f | grep -q /data.*com.android.webview || \
+ pm list packages -f | grep -q /data.*org.bromite.webview || \
pm install -r "${MODDIR}"/system/app/*/*.apk &
fi
}
diff --git a/microG/openssl.arm b/microG/openssl.arm
new file mode 120000
index 00000000..c7eab14f
--- /dev/null
+++ b/microG/openssl.arm
@@ -0,0 +1 @@
+../tools/openssl.arm
\ No newline at end of file
diff --git a/microG/openssl.x86 b/microG/openssl.x86
new file mode 120000
index 00000000..75440ad3
--- /dev/null
+++ b/microG/openssl.x86
@@ -0,0 +1 @@
+../tools/openssl.x86
\ No newline at end of file
diff --git a/microG/zipalign.arm b/microG/zipalign.arm
new file mode 120000
index 00000000..b99a2f63
--- /dev/null
+++ b/microG/zipalign.arm
@@ -0,0 +1 @@
+../tools/zipalign.arm
\ No newline at end of file
diff --git a/microG/zipalign.x86 b/microG/zipalign.x86
new file mode 120000
index 00000000..2d9b0225
--- /dev/null
+++ b/microG/zipalign.x86
@@ -0,0 +1 @@
+../tools/zipalign.x86
\ No newline at end of file
diff --git a/systest/SysTest b/systest/SysTest
index 472acd05..d3527754 100644
--- a/systest/SysTest
+++ b/systest/SysTest
@@ -268,21 +268,6 @@ check_fake_package_signature () {
[ -n "${PATCH_TYPE}" ] && return 0 || return 1
}
-##########################################################################################
-# check if Bromite System WebView is supported
-##########################################################################################
-
-check_bromite_webview_support () {
- WEBVIEW_PKG="com.android.webview"
- HAS_WEBVIEW=false
-
- ${AAPT} dump xmltree /system/framework/framework-res.apk res/xml/config_webview_packages.xml | \
- tr -d '\n' | sed -e 's/webviewprovider/\n/g' | grep com.android.webview | \
- grep -q 'E: signature' || HAS_WEBVIEW=true
-
- ${HAS_WEBVIEW} && return 0 || return 1
-}
-
##########################################################################################
# Device Functions
##########################################################################################
@@ -490,12 +475,6 @@ store_results () {
add_log "NATIVE_SIGSPOOF=FALSE"
fi
- add_log ""
- add_log "Bromite System WebView support"
- add_log "=============================="
- add_log ""
- check_bromite_webview_support && add_log "WEBVIEW_SUPPORT=TRUE" || add_log "WEBVIEW_SUPPORT=FALSE"
-
add_log ""
add_log "Magisk installation status"
add_log "=========================="
diff --git a/systest/openssl.arm b/systest/openssl.arm
new file mode 120000
index 00000000..c7eab14f
--- /dev/null
+++ b/systest/openssl.arm
@@ -0,0 +1 @@
+../tools/openssl.arm
\ No newline at end of file
diff --git a/systest/openssl.x86 b/systest/openssl.x86
new file mode 120000
index 00000000..75440ad3
--- /dev/null
+++ b/systest/openssl.x86
@@ -0,0 +1 @@
+../tools/openssl.x86
\ No newline at end of file
diff --git a/systest/zipalign.arm b/systest/zipalign.arm
new file mode 120000
index 00000000..b99a2f63
--- /dev/null
+++ b/systest/zipalign.arm
@@ -0,0 +1 @@
+../tools/zipalign.arm
\ No newline at end of file
diff --git a/systest/zipalign.x86 b/systest/zipalign.x86
new file mode 120000
index 00000000..2d9b0225
--- /dev/null
+++ b/systest/zipalign.x86
@@ -0,0 +1 @@
+../tools/zipalign.x86
\ No newline at end of file
diff --git a/tools/openssl-ndk-static.sh b/tools/openssl-ndk-static.sh
new file mode 100755
index 00000000..8b1f3bfc
--- /dev/null
+++ b/tools/openssl-ndk-static.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+OPENSSL_VERSION="${OPENSSL_VERSION:-1.1.1o}"
+curl -sSL "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" | tar xz
+cd "openssl-${OPENSSL_VERSION}"
+sed -i 's/-mandroid//' Configurations/15-android.conf
+
+export CXXFLAGS="-std=c++11 -fPIC" CPPFLAGS="-DANDROID -fPIC"
+export ANDROID_NDK_HOME="${ANDROID_NDK_HOME:-/opt/android-sdk/ndk/24.0.8215888}"
+
+build_android_clang(){ # assumes arg3 is always gcc, which is kind of wrong
+ OPENSSL_PLATFORM="android-${1}" ANDROID_API="${2}" TOOLCHAIN="${3:-llvm}" #TOOLCHAIN="${3:+${3}${2}}" # llvm
+ if [ "${TOOLCHAIN}" = "llvm" ]; then
+ export TOOLCHAIN_ROOT="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-$(uname -m)" \
+ CC="clang" CXX="clang++"
+ else
+ export TOOLCHAIN_ROOT="${ANDROID_NDK_HOME}/toolchains/${3:+${TOOLCHAIN}-4.9}/prebuilt/linux-$(uname -m)" \
+ CC="${3:+${TOOLCHAIN}-}clang" CXX="${3:+${TOOLCHAIN}-}clang++"
+ #CC="${3:+${TOOLCHAIN}-}gcc" CXX="${3:+${TOOLCHAIN}-}g++"
+ fi
+ export AR="${TOOLCHAIN}-ar" \
+ AS="${TOOLCHAIN}-as" \
+ RANLIB="${TOOLCHAIN}-ranlib" \
+ NM="${TOOLCHAIN}-nm" \
+ STRIP="${TOOLCHAIN}-strip" \
+ LD="${3:+${TOOLCHAIN}-}ld" \
+ SYSROOT="${TOOLCHAIN_ROOT}/sysroot" \
+ PATH="${TOOLCHAIN_ROOT}/bin${PATH:+:${PATH}}"
+
+ make clean
+ ./Configure --static -static -ffunction-sections -fdata-sections -Wl,--gc-sections "${OPENSSL_PLATFORM}" no-shared threads no-asm no-sse2 ${ANDROID_API:+-D__ANDROID_API__=${ANDROID_API}} #no-hw no-engine
+ make -j${NPROC:-$(nproc)} build_generated
+ make -j${NPROC:-$(nproc)} apps
+ "${STRIP}" apps/openssl
+}
+
+#build_android_clang arm 21 #arm-linux-androideabi
+build_android_clang x86 21 #i686-linux-android
+#build_android_clang arm64 21 #aarch64-linux-android
diff --git a/tools/openssl.arm b/tools/openssl.arm
new file mode 100755
index 00000000..9f666efc
Binary files /dev/null and b/tools/openssl.arm differ
diff --git a/tools/openssl.x86 b/tools/openssl.x86
new file mode 100755
index 00000000..717e9e48
Binary files /dev/null and b/tools/openssl.x86 differ
diff --git a/tools/zipalign.arm b/tools/zipalign.arm
new file mode 100755
index 00000000..93d757e2
Binary files /dev/null and b/tools/zipalign.arm differ
diff --git a/tools/zipalign.x86 b/tools/zipalign.x86
new file mode 100755
index 00000000..d790775b
Binary files /dev/null and b/tools/zipalign.x86 differ