Added support for installing Bromite SystemWebView under new package name

merge-requests/42/head
zer0def 2 years ago
parent 08a9f21157
commit eec83cc03b

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.bromite.WebviewOverlay" coreApp="true">
<application android:hasCode="false" />
<overlay android:priority="9999" android:targetPackage="android" android:isStatic="true"/>
<application android:label="Bromite Webview Overlay"/>
</manifest>

@ -0,0 +1 @@
../tools/openssl.arm

@ -0,0 +1 @@
../tools/openssl.x86

@ -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-----

@ -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-----

@ -0,0 +1 @@
../tools/zip.arm

@ -0,0 +1 @@
../tools/zip.x86

@ -0,0 +1 @@
../tools/zipalign.arm

@ -0,0 +1 @@
../tools/zipalign.x86

@ -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 </dev/urandom | head -c8)" apk="${1}"
mkdir -p "${tmpdir}/META-INF"
cd "${tmpdir}"; echo A | unzip -qo "${apk}"
cat <<EOF >"${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 <<EOF >>"${tmpdir}/META-INF/MANIFEST.MF"
Name: ${i#${tmpdir}/*}
SHA1-Digest: $(hex2bin $(sha1sum ${i} | awk '{print $1}') | base64 | tr -d '\n')
EOF
done
cat <<EOF >"${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 <<EOF >>"${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|</webviewproviders>|<webviewprovider availableByDefault=\"true\" description=\"${WEBVIEW_DESC:-Bromite Webview}\" packageName=\"${WEBVIEW_PKG:-org.bromite.webview}\"><signature>${WEBVIEW_SIG:-MIIDbTCCAlWgAwIBAgIEHcsmjjANBgkqhkiG9w0BAQsFADBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MCAXDTE4MDExOTA3MjE1N1oYDzIwNjgwMTA3MDcyMTU3WjBmMQswCQYDVQQGEwJERTEQMA4GA1UECBMHVW5rbm93bjEPMA0GA1UEBxMGQmVybGluMRAwDgYDVQQKEwdCcm9taXRlMRAwDgYDVQQLEwdCcm9taXRlMRAwDgYDVQQDEwdjc2FnYW41MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtakjGj0eTavbBB2vWXj8KBixWn4zgXAKc+yGFu3SLEGF1VB5aJWwcMHxVI55yH/8M2eNnJP0BkSidfKgPVcm1sk/GrNEs9uk5sWod9byO5M5QWQmGP2REeTd6J0BVVVaMp2MZnqeR3Su3pwFzrSwTqIGyf8dkPSEz7ifj792+EeRNrov4oRQK7lIfqInzwc4d34wU069Lrw6m7J7HM0KbRYISsWMiYj025Qg+dTrtdWt7jbdcj7htW0eYyJoLd90+s43RWnOpENmWpcWv1EVPxUD4mCdV9idYwoHRIESpSu9IWvqDZp1VoRc43nLgsNfNBwmYdTkIaPiz1m7TBcr7QIDAQABoyEwHzAdBgNVHQ4EFgQUuWoGd7W7wMyQ1pOdjiMv10YHTR0wDQYJKoZIhvcNAQELBQADggEBAA7iw6eKz+T8HIpKDoDcX1Ywjn9JUzuCFu20LnsLzreO/Pog1xErYjdLAS7LTZokfbAnitBskO9QhV9BYkDiM0Qr5v2/HsJTtxa1mz9ywCcI36jblMyuXFj8tuwQI9/t9i+Fc3+bOFBV3t7djPo9qX1dIK0lZ6s8HcIhaCNdqm65fH+nWhC/H9djqC6qOtrkTiACKEcHQ4a/5dfROU0q0M4bS4YuiaAQWgjiGbik4LrZ8wZX1aqJCLt0Hs7MzXyyf0cRSO11FIOViHwzh6WTZGufq2J3YBFXPond8kLxkKL3LNezbi5yTcecxsbKQ6OS46CnIKcy/M8asSreLpoCDvw=}</signature></webviewprovider></webviewproviders>|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}

@ -0,0 +1 @@
../tools/openssl.arm

@ -0,0 +1 @@
../tools/openssl.x86

@ -0,0 +1 @@
../tools/zipalign.arm

@ -0,0 +1 @@
../tools/zipalign.x86

@ -0,0 +1 @@
../tools/openssl.arm

@ -0,0 +1 @@
../tools/openssl.x86

@ -0,0 +1 @@
../tools/zipalign.arm

@ -0,0 +1 @@
../tools/zipalign.x86

@ -0,0 +1 @@
../tools/openssl.arm

@ -0,0 +1 @@
../tools/openssl.x86

@ -0,0 +1 @@
../tools/zipalign.arm

@ -0,0 +1 @@
../tools/zipalign.x86

@ -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+

@ -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}"
;;

@ -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
}

@ -0,0 +1 @@
../tools/openssl.arm

@ -0,0 +1 @@
../tools/openssl.x86

@ -0,0 +1 @@
../tools/zipalign.arm

@ -0,0 +1 @@
../tools/zipalign.x86

@ -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 "=========================="

@ -0,0 +1 @@
../tools/openssl.arm

@ -0,0 +1 @@
../tools/openssl.x86

@ -0,0 +1 @@
../tools/zipalign.arm

@ -0,0 +1 @@
../tools/zipalign.x86

@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save