ijkplayer
ijkplayer copied to clipboard
未使用编译器堆栈保护技术
打包好的 apk 上传到 360安全扫描时,报出这个风险,修复建议是: { 使用NDK编译so时,在Android.mk文件 中添加:LOCAL_CFLAGS := -Wall -O2 - U_FORTIFY_SOURCE -fstack-protector- all }
而报出这个问题的 so 库是 ffmpeg.so(ijkplayer的so已经被我添加了),但我在 ffmpeg 源码中,并没有找到 Android.mk 文件,请问需要怎么添加 LOCAL_CFLAGS := -Wall -O2 - U_FORTIFY_SOURCE -fstack-protector- all
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cflags='-Wall -O2 - U_FORTIFY_SOURCE -fstack-protector- all'"
Not verified
@wnpllrzodiac 请问这写到哪个文件里,还请告知,谢谢
config/module.sh
@wnpllrzodiac 试了下,编译不过
@wnpllrzodiac /Users/jay/ijkplayer-android/android/contrib/build/ffmpeg-armv7a/toolchain/bin//arm-linux-androideabi-gcc Unknown option "-O2". See ./configure --help for available options.
看这意思,应该是不支持这么写
编译ffmpeg库时,给编译器的选项,在这里设置:
ijkplayer-android/android/contrib/tools/do-compile-ffmpeg.sh
FF_CFLAGS="-O3 -Wall -pipe \ -std=c99 \ -ffast-math \ -fstrict-aliasing -Werror=strict-aliasing \ -Wno-psabi -Wa,--noexecstack \ -DANDROID -DNDEBUG"
@lzy831 试了下,我是这样改的
{
FF_CFLAGS="-O3 -Wall -pipe
-std=c99
-ffast-math
-fstrict-aliasing -Werror=strict-aliasing
-Wno-psabi -Wa,--noexecstack
-DANDROID -DNDEBUG"
FF_CFLAGS="$FF_CFLAGS -Wall -O2 - U_FORTIFY_SOURCE -fstack-protector- all" }
编译还是不能通过
@qiujayen 我编译过了,是可以的。 "-" 和 "U_FORTIFY_SOURCE" 中间不能有空格啊,"-fstack-protector- all" 这个也是~~ 直接增加在FF_CFLAGS字串里就好了,你这样写会有重复的编译选项“-Wall -O2” { FF_CFLAGS="-O3 -Wall -pipe -std=c99 -ffast-math -fstrict-aliasing -Werror=strict-aliasing -Wno-psabi -Wa,--noexecstack -DANDROID -DNDEBUG -U_FORTIFY_SOURCE -fstack-protector-all" }
@lzy831 感谢,我试下
大佬们 有没有编译好的 so文件 邮箱发我一份 [email protected]