7576b8f0fe
Since android-10.0.0_r37, mediacodec seccomp policy now has two includes. In AOSP 8.1, minijail is vendor-side. AOSP 8.1's minijail has a bug, which can't read multiple includes. All of this together means mediacodec is broken. This fixes it by overriding vendor's minijail to a working one, in the hope that vendors didn't change anything in their own minijail https://issuetracker.google.com/issues/158068181
51 lines
1.5 KiB
Bash
51 lines
1.5 KiB
Bash
#!/system/bin/sh
|
|
|
|
vndk="$(getprop persist.sys.vndk)"
|
|
[ -z "$vndk" ] && vndk="$(getprop ro.vndk.version |grep -oE '^[0-9]+')"
|
|
|
|
[ "$(getprop vold.decrypt)" = "trigger_restart_min_framework" ] && exit 0
|
|
|
|
setprop ctl.start media.swcodec
|
|
|
|
for i in wpa p2p;do
|
|
if [ ! -f /data/misc/wifi/${i}_supplicant.conf ];then
|
|
cp /vendor/etc/wifi/wpa_supplicant.conf /data/misc/wifi/${i}_supplicant.conf
|
|
fi
|
|
chmod 0660 /data/misc/wifi/${i}_supplicant.conf
|
|
chown wifi:system /data/misc/wifi/${i}_supplicant.conf
|
|
done
|
|
|
|
if [ -f /vendor/bin/mtkmal ];then
|
|
if [ "$(getprop persist.mtk_ims_support)" = 1 ] || [ "$(getprop persist.mtk_epdg_support)" = 1 ];then
|
|
setprop persist.mtk_ims_support 0
|
|
setprop persist.mtk_epdg_support 0
|
|
reboot
|
|
fi
|
|
fi
|
|
|
|
if grep -qF android.hardware.boot /vendor/manifest.xml || grep -qF android.hardware.boot /vendor/etc/vintf/manifest.xml ;then
|
|
bootctl mark-boot-successful
|
|
fi
|
|
|
|
setprop ctl.restart sec-light-hal-2-0
|
|
if find /sys/firmware -name support_fod |grep -qE .;then
|
|
setprop ctl.restart vendor.fps_hal
|
|
fi
|
|
|
|
setprop ctl.stop storageproxyd
|
|
|
|
sleep 10
|
|
if [ "$vndk" = 27 ] && getprop init.svc.mediacodec |grep -q restarting;then
|
|
mount /system/lib64/vndk-27/libminijail.so /vendor/lib64/libminijail_vendor.so
|
|
mount /system/lib/vndk-27/libminijail.so /vendor/lib/libminijail_vendor.so
|
|
fi
|
|
|
|
#Clear looping services
|
|
sleep 30
|
|
getprop | \
|
|
grep restarting | \
|
|
sed -nE -e 's/\[([^]]*).*/\1/g' -e 's/init.svc.(.*)/\1/p' |
|
|
while read -r svc ;do
|
|
setprop ctl.stop "$svc"
|
|
done
|