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% *}" + 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% *}" + 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