ts转mp4, Android10上正常,Android15就崩溃
Build fingerprint: 'nubia/CN_PQ84A01/PQ84A01:15/AQ3A.240812.002/20250603.201203:user/release-keys' Revision: '0' ABI: 'arm64' Timestamp: 2025-08-24 00:17:47.368059820+0800 Process uptime: 152s Cmdline: com.qinhr.demo pid: 21818, tid: 22784, name: dmx0:mpegts >>> com.qinhr.demo <<< uid: 10766 tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE) pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY) signal 11 (SIGSEGV), code -6 (SI_TKILL), fault addr -------- Abort message: 'Scudo ERROR: internal map failure (error desc=Out of memory)' x0 00000000ffffffff x1 0000006eef4ee53d x2 00000071a0580b60 x3 000000000000553a x4 ffffffffffffffd0 x5 0000000000000040 x6 000000000000003f x7 0000000000000000 x8 0000000000000000 x9 35774576162b237f x10 0000000000000000 x11 00000071a0580c1c x12 0000000068a9e9aa x13 000000007fffffff x14 000000000011dcb4 x15 0000000db885d4a1 x16 0000007199b5ae98 x17 0000007199ae004c x18 0000006e349b8000 x19 0000006e7ece1a80 x20 b400006fdf6f38c0 x21 000000000000553a x22 b40000705f7041a0 x23 b40000705f7043c8 x24 0000006eef4ec451 x25 0000006e7ece1a80 x26 b40000705f7041c8 x27 0000007199b60268 x28 fffffffffffffff0 x29 00000071a0580ca0 lr 0000007199b03c64 sp 00000071a0580a70 pc 0000007199b03c68 pst 0000000060001000
16 total frames backtrace: #00 pc 0000000000083c68 /apex/com.android.runtime/lib64/bionic/libc.so (snprintf+280) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #01 pc 0000000000015094 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libBugly_Native.so (getProcessName+88) (BuildId: 050b0184802df0fbd6eeec74f7e04a368993a0b9) #02 pc 0000000000008c34 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libBugly_Native.so (BuildId: 050b0184802df0fbd6eeec74f7e04a368993a0b9) #03 pc 0000000000000848 [vdso] #04 pc 0000000000060154 /apex/com.android.runtime/lib64/bionic/libc.so (abort+168) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #05 pc 000000000004d1c8 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::die()+12) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #06 pc 000000000004dc0c /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportRawError(char const*)+32) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #07 pc 000000000004e2e0 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportMapError(unsigned long)+176) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #08 pc 000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (scudo::MemMapLinux::remapImpl(unsigned long, unsigned long, char const*, unsigned long)+216) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #09 pc 00000000000523cc /apex/com.android.runtime/lib64/bionic/libc.so (scudo::MapAllocator<scudo::SecondaryConfigscudo::AndroidNormalConfig>::allocate(scudo::Options const&, unsigned long, unsigned long, unsigned long*, scudo::FillContentsMode)+816) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #10 pc 000000000004f4e0 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::Allocator<scudo::AndroidNormalConfig, &scudo_malloc_postinit>::allocate(unsigned long, scudo::Chunk::Origin, unsigned long, bool)+908) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #11 pc 000000000004f0cc /apex/com.android.runtime/lib64/bionic/libc.so (scudo_calloc+52) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #12 pc 000000000004943c /apex/com.android.runtime/lib64/bionic/libc.so (calloc+60) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #13 pc 00000000000abe54 /apex/com.android.runtime/lib64/bionic/libc.so (regcomp+1452) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #14 pc 0000000000011104 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libffmpeg-command.so (BuildId: d486aedabf98ac0a2b2e2f2e62445b2ed9c36784) #15 pc 00000000008b0500 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libffmpeg-org.so (av_vlog+108)
查AI说是 为什么 Android 10 正常、15 崩?
A10 大多是 4KB 页 + 老 Scudo,很多“边缘未定义行为/库不一致”不会立刻炸;
A15 的 16KB 页 + 新 Scudo 更严格,再叠加你库本身就 mismatch,于是直接在 regcomp() 的大块内存分配上崩溃。
官方也明确提示要用真机/开发者选项去提前测试 16KB 场景。 Android Developers Blog
请问大佬能否协助一下解决这个问题
执行的命令也发一下
Build fingerprint: 'nubia/CN_PQ84A01/PQ84A01:15/AQ3A.240812.002/20250603.201203:user/release-keys' Revision: '0' ABI: 'arm64' Timestamp: 2025-08-24 00:17:47.368059820+0800 Process uptime: 152s Cmdline: com.qinhr.demo pid: 21818, tid: 22784, name: dmx0:mpegts >>> com.qinhr.demo <<< uid: 10766 tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE) pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY) signal 11 (SIGSEGV), code -6 (SI_TKILL), fault addr -------- Abort message: 'Scudo ERROR: internal map failure (error desc=Out of memory)' x0 00000000ffffffff x1 0000006eef4ee53d x2 00000071a0580b60 x3 000000000000553a x4 ffffffffffffffd0 x5 0000000000000040 x6 000000000000003f x7 0000000000000000 x8 0000000000000000 x9 35774576162b237f x10 0000000000000000 x11 00000071a0580c1c x12 0000000068a9e9aa x13 000000007fffffff x14 000000000011dcb4 x15 0000000db885d4a1 x16 0000007199b5ae98 x17 0000007199ae004c x18 0000006e349b8000 x19 0000006e7ece1a80 x20 b400006fdf6f38c0 x21 000000000000553a x22 b40000705f7041a0 x23 b40000705f7043c8 x24 0000006eef4ec451 x25 0000006e7ece1a80 x26 b40000705f7041c8 x27 0000007199b60268 x28 fffffffffffffff0 x29 00000071a0580ca0 lr 0000007199b03c64 sp 00000071a0580a70 pc 0000007199b03c68 pst 0000000060001000
16 total frames backtrace: #00 pc 0000000000083c68 /apex/com.android.runtime/lib64/bionic/libc.so (snprintf+280) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #1 pc 0000000000015094 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libBugly_Native.so (getProcessName+88) (BuildId: 050b0184802df0fbd6eeec74f7e04a368993a0b9) #2 pc 0000000000008c34 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libBugly_Native.so (BuildId: 050b0184802df0fbd6eeec74f7e04a368993a0b9) #3 pc 0000000000000848 [vdso] #4 pc 0000000000060154 /apex/com.android.runtime/lib64/bionic/libc.so (abort+168) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #5 pc 000000000004d1c8 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::die()+12) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #6 pc 000000000004dc0c /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportRawError(char const*)+32) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #7 pc 000000000004e2e0 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportMapError(unsigned long)+176) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #8 pc 000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (scudo::MemMapLinux::remapImpl(unsigned long, unsigned long, char const*, unsigned long)+216) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #9 pc 00000000000523cc /apex/com.android.runtime/lib64/bionic/libc.so (scudo::MapAllocatorscudo::SecondaryConfigscudo::AndroidNormalConfig::allocate(scudo::Options const&, unsigned long, unsigned long, unsigned long*, scudo::FillContentsMode)+816) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #10 pc 000000000004f4e0 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::Allocator<scudo::AndroidNormalConfig, &scudo_malloc_postinit>::allocate(unsigned long, scudo::Chunk::Origin, unsigned long, bool)+908) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #11 pc 000000000004f0cc /apex/com.android.runtime/lib64/bionic/libc.so (scudo_calloc+52) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #12 pc 000000000004943c /apex/com.android.runtime/lib64/bionic/libc.so (calloc+60) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #13 pc 00000000000abe54 /apex/com.android.runtime/lib64/bionic/libc.so (regcomp+1452) (BuildId: 64d302aee62f508a17144b73f98e5ecf) #14 pc 0000000000011104 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libffmpeg-command.so (BuildId: d486aedabf98ac0a2b2e2f2e62445b2ed9c36784) #15 pc 00000000008b0500 /data/app/~~t_DUqnmLWun1IXqWw-rfGA==/com.qinhr.demo-_uUE1NHTyJkVelILL5EjHw==/lib/arm64/libffmpeg-org.so (av_vlog+108)
查AI说是 为什么 Android 10 正常、15 崩?
A10 大多是 4KB 页 + 老 Scudo,很多“边缘未定义行为/库不一致”不会立刻炸;
A15 的 16KB 页 + 新 Scudo 更严格,再叠加你库本身就 mismatch,于是直接在 regcomp() 的大块内存分配上崩溃。
官方也明确提示要用真机/开发者选项去提前测试 16KB 场景。 Android Developers Blog
请问大佬能否协助一下解决这个问题
我这边进行了一个简单的修复,尝试使用一下1.3.6-beta。