mac os 编译android源码坑点

这篇博客介绍了在macOS上遇到的不区分大小写文件系统问题,通过创建区分大小写的dmg文件来解决。还讨论了内部错误与找不到支持的macSDK的解决方案,以及如何调整文件打开限制。此外,博主修复了头文件找不到的编译错误,并解决了sepolicy测试的段错误问题,最后提到了修改Android构建文件Android.bp以消除错误。
摘要由CSDN通过智能技术生成

1)Case-insensitive filesystems not supported

mac os 当前的文件系统不区分大小导致的

解决

在我的1000元移动硬盘上

创建一个区分大小写的dmg
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 200g android.dmg
直接将它挂在上
hdiutil attach android.dmg -mountpoint /Volumes/android 
不用了卸载
hdiutil detach /Volumes/android

2)internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12" "10.13" "10.14"]

按照网上的方法去弄没几把吊用自己看源码,发现

执行的是xcrun 去查,网上现学现卖查了个go的打印,添加一行打印 如下,直接放到shell也找不到,应该还是找不到

解决:

 xcrun  --show-sdk-version 去对版本,目录那傻逼不知道为啥是错的

11.1 不行,最后改成10.15的版本弄好了

不清楚啥原因,重新拔了下我的移动硬盘,重新挂载就好了

 添加得到的版本就好了

3)too many open files

执行ulimit -S -n 1024

4)

external/iptables/include/linux/netfilter_ipv4/ipt_ECN.h:13:10: fatal error: 'linux/netfilter/xt_DSCP.h' file not found
#include <linux/netfilter/xt_DSCP.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

修改这个文件

//#include <linux/netfilter/xt_DSCP.h>
#include <linux/netfilter/xt_dscp.h>
改成小写的

5)

[ 40% 13789/33676] build out/target/product/flame/obj/ETC/sepolicy_tests_intermediates/sepolicy_tests
FAILED: out/target/product/flame/obj/ETC/sepolicy_tests_intermediates/sepolicy_tests
/bin/bash -c "(out/host/darwin-x86/bin/sepolicy_tests -l out/host/darwin-x86/lib64/libsepolwrap.dylib 		 -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts  -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy ) && (touch out/target/product/flame/obj/ETC/sepolicy_tests_intermediates/sepolicy_tests )"
/bin/bash: line 1:  6886 Segmentation fault: 11  ( out/host/darwin-x86/bin/sepolicy_tests -l out/host/darwin-x86/lib64/libsepolwrap.dylib -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy )
[ 40% 13790/33676] build out/target/product/flame/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0
FAILED: out/target/product/flame/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0
/bin/bash -c "(out/host/darwin-x86/bin/treble_sepolicy_tests -l 		out/host/darwin-x86/lib64/libsepolwrap.dylib  -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts  -f out/target/product/flame/obj/ETC/product_file_contexts_intermediates/product_file_contexts 		-b out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/flame/obj/ETC/treble_sepolicy_tests_27.0_intermediates/27.0_mapping.combined.cil 		-o out/target/product/flame/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy 	-u out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/base_plat_pub_policy.cil ) && (touch out/target/product/flame/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0 )"
/bin/bash: line 1:  6897 Segmentation fault: 11  ( out/host/darwin-x86/bin/treble_sepolicy_tests -l out/host/darwin-x86/lib64/libsepolwrap.dylib -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts -f out/target/product/flame/obj/ETC/product_file_contexts_intermediates/product_file_contexts -b out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/flame/obj/ETC/treble_sepolicy_tests_27.0_intermediates/27.0_mapping.combined.cil -o out/target/product/flame/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy -u out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/base_plat_pub_policy.cil )
[ 40% 13791/33676] build out/target/product/flame/obj/ETC/treble_sepolicy_tests_28.0_intermediates/treble_sepolicy_tests_28.0
FAILED: out/target/product/flame/obj/ETC/treble_sepolicy_tests_28.0_intermediates/treble_sepolicy_tests_28.0
/bin/bash -c "(out/host/darwin-x86/bin/treble_sepolicy_tests -l 		out/host/darwin-x86/lib64/libsepolwrap.dylib  -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts  -f out/target/product/flame/obj/ETC/product_file_contexts_intermediates/product_file_contexts 		-b out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/flame/obj/ETC/treble_sepolicy_tests_28.0_intermediates/28.0_mapping.combined.cil 		-o out/target/product/flame/obj/ETC/treble_sepolicy_tests_28.0_intermediates/built_28.0_plat_sepolicy -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy 	-u out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/base_plat_pub_policy.cil ) && (touch out/target/product/flame/obj/ETC/treble_sepolicy_tests_28.0_intermediates/treble_sepolicy_tests_28.0 )"
/bin/bash: line 1:  6901 Segmentation fault: 11  ( out/host/darwin-x86/bin/treble_sepolicy_tests -l out/host/darwin-x86/lib64/libsepolwrap.dylib -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts -f out/target/product/flame/obj/ETC/product_file_contexts_intermediates/product_file_contexts -b out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/flame/obj/ETC/treble_sepolicy_tests_28.0_intermediates/28.0_mapping.combined.cil -o out/target/product/flame/obj/ETC/treble_sepolicy_tests_28.0_intermediates/built_28.0_plat_sepolicy -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy -u out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/base_plat_pub_policy.cil )
[ 40% 13792/33676] build out/target/product/flame/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0
FAILED: out/target/product/flame/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0
/bin/bash -c "(out/host/darwin-x86/bin/treble_sepolicy_tests -l 		out/host/darwin-x86/lib64/libsepolwrap.dylib  -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts  -f out/target/product/flame/obj/ETC/product_file_contexts_intermediates/product_file_contexts 		-b out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/flame/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_mapping.combined.cil 		-o out/target/product/flame/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy 	-u out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/base_plat_pub_policy.cil ) && (touch out/target/product/flame/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0 )"
/bin/bash: line 1:  6888 Segmentation fault: 11  ( out/host/darwin-x86/bin/treble_sepolicy_tests -l out/host/darwin-x86/lib64/libsepolwrap.dylib -f out/target/product/flame/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts -f out/target/product/flame/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts -f out/target/product/flame/obj/ETC/product_file_contexts_intermediates/product_file_contexts -b out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/flame/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_mapping.combined.cil -o out/target/product/flame/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy -p out/target/product/flame/obj/ETC/sepolicy_intermediates/sepolicy -u out/target/product/flame/obj/ETC/built_plat_sepolicy_intermediates/base_plat_pub_policy.cil )
14:14:43 ninja failed with: exit status 1

修改system/sepolicy/tests/Android.bp文件

    static_libs: [
        "libbase",
        "libsepol",
    ],
    //stl: "libc++_static",
    sanitize: {
        never: true,
    },

把stl: "libc++_static", 给注释掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值