因为在Android 12+之后已经不允许shrinking threadpool,如提交所示,从而导致相机崩溃。
修复
我们可以用IDA定位到configThreadpool
(_ZN7android8hardware22configureRpcThreadpoolEmb) 的位置,如下
然后我们选定它,然后Edit > Patch program > Change byte...
然后可以看到
BL ._ZN7android8hardware22configureRpcThreadpoolEmb
它的HEX是1F 20 03 D5
(部分blobs可能不一样,具体情况得汇编分析)
我们将
BL ._ZN7android8hardware22configureRpcThreadpoolEmb
改为NOP
,对应的HEX是1F 20 03 D5
修正完成后如图
extract-files配置
function blob_fixup() {
case "${1}" in
vendor/lib64/[email protected])
hexdump -ve '1/1 "%.2X"' "${2}" | sed "s/210080521F0A0094/210080521F2003D5/g" | xxd -r -p > "${TMPDIR}/${1##*/}"
mv "${TMPDIR}/${1##*/}" "${2}"
;;
esac
}
或
function blob_fixup() {
case "${1}" in
vendor/lib64/[email protected])
"${SIGSCAN}" -p "1F 0A 00 94" -P "1F 20 03 D5" -f "${2}"
;;
esac
}
参考:
https://github.com/LineageOS/android_device_xiaomi_gauguin/commit/07987caaf4d4fe35a7ada7fdd90cb567faf115b0
https://github.com/LineageOS/android_device_oneplus_sm8250-common/commit/901baf95a955903be7138467e4d0082efd26ae1c
评论 (0)