mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-07 19:58:32 +09:00
[Fix] (Retrace): rely on APK signing for bundled ANGLE
This commit is contained in:
@@ -124,73 +124,6 @@ jobs:
|
||||
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
|
||||
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
|
||||
|
||||
- name: Verify trace ANGLE packaging
|
||||
run: |
|
||||
expected=(
|
||||
lib/x86_64/libEGL_angle_ec889e6ea831.so
|
||||
lib/x86_64/libGLESv2_angle_ec889e6ea831.so
|
||||
lib/x86_64/libEGL_angle_90a62123d794.so
|
||||
lib/x86_64/libGLESv2_angle_90a62123d794.so
|
||||
)
|
||||
trace_markers=(
|
||||
MOBILEGL_TRACE_ANGLE_VARIANT
|
||||
ec889e6ea831
|
||||
90a62123d794
|
||||
'Rejected trace ANGLE variant'
|
||||
'Loaded signed trace ANGLE library'
|
||||
)
|
||||
mapfile -t trace_apks < <(find android-plugin/app/build/outputs/apk -name 'MobileGL-*Trace-release.apk' | sort)
|
||||
mapfile -t plugin_apks < <(find android-plugin/app/build/outputs/apk -name 'MobileGL-*Plugin-release.apk' | sort)
|
||||
test "${#trace_apks[@]}" -eq 2
|
||||
test "${#plugin_apks[@]}" -eq 2
|
||||
|
||||
extract_dir="${RUNNER_TEMP}/mobilegl-packaged-angle"
|
||||
rm -rf "${extract_dir}"
|
||||
mkdir -p "${extract_dir}"
|
||||
for apk in "${trace_apks[@]}"; do
|
||||
entries="$(unzip -Z1 "${apk}")"
|
||||
packaged_angle_count="$(printf '%s\n' "${entries}" | grep -Ec 'lib/[^/]+/lib(EGL|GLESv2)_angle(_[0-9a-f]+)?\.so$')"
|
||||
test "${packaged_angle_count}" -eq 4
|
||||
for entry in "${expected[@]}"; do
|
||||
printf '%s\n' "${entries}" | grep -Fx "${entry}"
|
||||
extracted="${extract_dir}/$(basename "${apk}")-$(basename "${entry}")"
|
||||
unzip -p "${apk}" "${entry}" > "${extracted}"
|
||||
test "$(patchelf --print-soname "${extracted}")" = "$(basename "${entry}")"
|
||||
done
|
||||
if printf '%s\n' "${entries}" | grep -Eq 'lib/[^/]+/lib(EGL|GLESv2)_angle\.so$'; then
|
||||
echo "Unsuffixed ANGLE library found in ${apk}" >&2
|
||||
exit 1
|
||||
fi
|
||||
mapfile -t mobilegl_entries < <(printf '%s\n' "${entries}" | grep -E '^lib/[^/]+/libMobileGL\.so$')
|
||||
test "${#mobilegl_entries[@]}" -eq 2
|
||||
for entry in "${mobilegl_entries[@]}"; do
|
||||
extracted="${extract_dir}/$(basename "${apk}")-${entry//\//-}"
|
||||
unzip -p "${apk}" "${entry}" > "${extracted}"
|
||||
for marker in "${trace_markers[@]}"; do
|
||||
grep -aFq "${marker}" "${extracted}"
|
||||
done
|
||||
done
|
||||
done
|
||||
for apk in "${plugin_apks[@]}"; do
|
||||
entries="$(unzip -Z1 "${apk}")"
|
||||
if printf '%s\n' "${entries}" | grep -Eq 'lib/[^/]+/lib(EGL|GLESv2)_angle(_[0-9a-f]+)?\.so$'; then
|
||||
echo "ANGLE library found in plugin APK ${apk}" >&2
|
||||
exit 1
|
||||
fi
|
||||
mapfile -t mobilegl_entries < <(printf '%s\n' "${entries}" | grep -E '^lib/[^/]+/libMobileGL\.so$')
|
||||
test "${#mobilegl_entries[@]}" -ge 1
|
||||
for entry in "${mobilegl_entries[@]}"; do
|
||||
extracted="${extract_dir}/$(basename "${apk}")-${entry//\//-}"
|
||||
unzip -p "${apk}" "${entry}" > "${extracted}"
|
||||
for marker in "${trace_markers[@]}"; do
|
||||
if grep -aFq "${marker}" "${extracted}"; then
|
||||
echo "Trace ANGLE marker '${marker}' found in plugin APK ${apk}" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
- name: Show ccache stats
|
||||
if: always()
|
||||
run: ccache --show-stats
|
||||
|
||||
Reference in New Issue
Block a user