错误:ninja: build stopped: subcommand failed.
解决:
打开 prebuilts/sdk/tools/jack-admin
找到 JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
修改为 JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"
重启jack-server
$ ./prebuilts/sdk/tools/jack-admin stop-server
$ ./prebuilts/sdk/tools/jack-admin start-server
make clean这个命令最好少用,不然在Make的时候又是5小时的编译
make clean 命名在修改了art源码的时候需要加入,不然编译出来了system/lib 里面的so不变(fart源码编译)
单独编译system.img 在根目录下source build/envsetup.sh ,lunch ,make systemimage -j4
ubuntu18.04.5 编译android_10_r33报错:
[100% 47/47] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp
Killed
14:41:13 soong bootstrap failed with: exit status 1
解决:
虚拟机ram不够,分配成16GB和2*4处理器最好,然后swap分区2G加到20G(一般ubuntu 18.04分配的是 2g)
参考:
报错:
ubuntu18.04.5无法安装libesd0-dev
解决:
1 sudo vim /etc/apt/sources.list //在行尾添加如下两行的内容
2 deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
3 deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe
然后重新更新软件源下载
在进行源码同步的时候,南方最好用中科大的源,北方用清华的源
清华:
https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
中科大:
git://mirrors.ustc.edu.cn/aosp/platform/manifest
android 10在配置selinux访问策略文件后,编译报错:
[ 4% 3/74] build out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermed
FAILED: out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -M -C -c 30 -o out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/base_plat_policy.conf ) && (cat system/sepolicy/private/technical_debt.cil >> out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy ) && (out/host/linux-x86/bin/secilc -m -M true -G -c 30 out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -o out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -f /dev/null )"
neverallow check failed at out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy:11640 from system/sepolicy/public/property.te:352
(neverallow base_typeattr_461 base_typeattr_462 (property_service (set)))
<root>
allow at out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy:18299
(allow system_app mysystem_prop (property_service (set)))
<root>
allow at out/target/product/taimen/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy:18303
(allow system_app mysystem_prop (property_service (set)))
Failed to generate binary
Failed to build policydb
[ 5% 4/74] build out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_
FAILED: out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -M -C -c 30 -o out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil.tmp out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_policy.conf ) && (cat system/sepolicy/private/technical_debt.cil >> out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil.tmp ) && (out/host/linux-x86/bin/secilc -m -M true -G -c 30 out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil.tmp -o /dev/null -f /dev/null ) && (mv out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil.tmp out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil )"
neverallow check failed at out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil.tmp:11818 from system/sepolicy/public/property.te:352
(neverallow base_typeattr_470 base_typeattr_471 (property_service (set)))
<root>
allow at out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil.tmp:18881
(allow system_app mysystem_prop (property_service (set)))
<root>
allow at out/target/product/taimen/obj/ETC/userdebug_plat_sepolicy.cil_intermediates/userdebug_plat_sepolicy.cil.tmp:18885
(allow system_app mysystem_prop (property_service (set)))
Failed to generate binary
Failed to build policydb
[ 6% 5/74] build out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermedia
FAILED: out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -M -C -c 30 -o out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil.tmp out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_policy.conf ) && (cat system/sepolicy/private/technical_debt.cil >> out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil.tmp ) && (out/host/linux-x86/bin/secilc -m -M true -G -c 30 out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil.tmp -o /dev/null -f /dev/null ) && (mv out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil.tmp out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil )"
neverallow check failed at out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil.tmp:11818 from system/sepolicy/public/property.te:352
(neverallow base_typeattr_470 base_typeattr_471 (property_service (set)))
<root>
allow at out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil.tmp:18881
(allow system_app mysystem_prop (property_service (set)))
<root>
allow at out/target/product/taimen/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil.tmp:18885
(allow system_app mysystem_prop (property_service (set)))
Failed to generate binary
Failed to build policydb
14:53:26 ninja failed with: exit status 1
主要是因为策略冲突了,一边允许一边不允许,所以删除不允许的那部分就行了
解决:
删除system/sepolicy/public/property.te:352中的neverallow策略,就是:
compatible_property_only(`
# Neverallow coredomain to set vendor properties
neverallow {
coredomain
-init
-system_writes_vendor_properties_violators
} {
property_type
-apexd_prop
-audio_prop
-bluetooth_a2dp_offload_prop
-bluetooth_audio_hal_prop
-bluetooth_prop
-bootloader_boot_reason_prop
-boottime_prop
-bpf_progs_loaded_prop
-config_prop
-cppreopt_prop
-ctl_adbd_prop
-ctl_bootanim_prop
-ctl_bugreport_prop
-ctl_console_prop
-ctl_default_prop
-ctl_dumpstate_prop
-ctl_fuse_prop
-ctl_gsid_prop
-ctl_interface_restart_prop
-ctl_interface_start_prop
-ctl_interface_stop_prop
-ctl_mdnsd_prop
-ctl_restart_prop
-ctl_rildaemon_prop
-ctl_sigstop_prop
-ctl_start_prop
-ctl_stop_prop
-dalvik_prop
-debug_prop
-debuggerd_prop
-default_prop
-device_logging_prop
-dhcp_prop
-dumpstate_options_prop
-dumpstate_prop
-exported2_config_prop
-exported2_default_prop
-exported2_radio_prop
-exported2_system_prop
-exported2_vold_prop
-exported3_default_prop
-exported3_radio_prop
-exported3_system_prop
-exported_bluetooth_prop
-exported_config_prop
-exported_dalvik_prop
-exported_default_prop
-exported_dumpstate_prop
-exported_ffs_prop
-exported_fingerprint_prop
-exported_overlay_prop
-exported_pm_prop
-exported_radio_prop
-exported_secure_prop
-exported_system_prop
-exported_system_radio_prop
-exported_vold_prop
-exported_wifi_prop
-extended_core_property_type
-ffs_prop
-fingerprint_prop
-firstboot_prop
-device_config_activity_manager_native_boot_prop
-device_config_reset_performed_prop
-device_config_boot_count_prop
-device_config_input_native_boot_prop
-device_config_netd_native_prop
-device_config_runtime_native_boot_prop
-device_config_runtime_native_prop
-device_config_media_native_prop
-dynamic_system_prop
-gsid_prop
-heapprofd_enabled_prop
-heapprofd_prop
-hwservicemanager_prop
-last_boot_reason_prop
-system_lmk_prop
-log_prop
-log_tag_prop
-logd_prop
-logpersistd_logging_prop
-lowpan_prop
-lpdumpd_prop
-mmc_prop
-net_dns_prop
-net_radio_prop
-netd_stable_secret_prop
-nfc_prop
-overlay_prop
-pan_result_prop
-persist_debug_prop
-persistent_properties_ready_prop
-pm_prop
-powerctl_prop
-radio_prop
-restorecon_prop
-safemode_prop
-serialno_prop
-shell_prop
-system_boot_reason_prop
-system_prop
-system_radio_prop
-system_trace_prop
-test_boot_reason_prop
-test_harness_prop
-theme_prop
-time_prop
-traced_enabled_prop
-traced_lazy_prop
-vendor_default_prop
-vendor_security_patch_level_prop
-vold_prop
-wifi_log_prop
-wifi_prop
}:property_service set;
')
修改为:
compatible_property_only(`
# Neverallow coredomain to set vendor properties
')
然后编译会报错,
SELinux: The following public types were found added to the policy without an entry into the compatibility mapping file(s) found in private/compat/V.v/V.v[.ignore].cil, where V.v is the latest API level.
mysystem_prop
这是因为只在system/sepolicy/public/property.te和 system/sepolicy/prebuilts/api/29.0/public/property.te中修改了,26、27、28中没有修改,需要在/system/sepolicy/private/compat/26.0、/system/sepolicy/private/compat/27.0、/system/sepolicy/private/compat/28.0的28.0.ignore.cil中添加mysystem_prop
/*
[ 0% 3/2890] build out/target/product/taimen/obj/ETC/sepolicy_neverallows_inter
FAILED: out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/plat_pub_policy.cil
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -C -M -c 30 -o out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/plat_pub_policy.cil out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/plat_pub_policy.conf ) && (out/host/linux-x86/bin/build_sepolicy -a out/host/linux-x86/bin filter_out -f out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/reqd_policy_mask.cil -t out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/plat_pub_policy.cil )"
system/sepolicy/public/file.te:505:ERROR 'syntax error' at token 'fingerprintd' on line 14365:
# /data/system/xsettings/
type frdinject_data_file,file_type,data_file_type,core_data_file_type,mlstrustedobjecttype fingerprintd, domain;
checkpolicy: error(s) encountered while parsing configuration
[ 0% 6/2890] build out/target/product/taimen/obj/ETC/sepolicy_neverallows_inter
FAILED: out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/pub_policy.cil
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -C -M -c 30 -o out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/pub_policy.cil out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/pub_policy.conf ) && (out/host/linux-x86/bin/build_sepolicy -a out/host/linux-x86/bin filter_out -f out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/reqd_policy_mask.cil -t out/target/product/taimen/obj/ETC/sepolicy_neverallows_intermediates/pub_policy.cil )"
system/sepolicy/public/file.te:505:ERROR 'syntax error' at token 'fingerprintd' on line 14365:
# /data/system/xsettings/
type frdinject_data_file,file_type,data_file_type,core_data_file_type,mlstrustedobjecttype fingerprintd, domain;
checkpolicy: error(s) encountered while parsing configuration
17:33:06 ninja failed with: exit status 1
*/
//语法错误。type frdinject_data_file,file_type,data_file_type,core_data_file_type,mlstrustedobject 少了; 改为 type frdinject_data_file,file_type,data_file_type,core_data_file_type,mlstrustedobject;
报错:
error: Added package android.xfrd [AddedPackage]
Aborting: Found compatibility problems checking the public API against the API in /home/aun/android10-r1/frameworks/base/api/current.txt
-e
******************************
You have tried to change the API from what has been previously approved.
To make these errors go away, you have two choices:
1. You can add '@hide' javadoc comments to the methods, etc. listed in the
errors above.
2. You can update current.txt by executing the following command:
make api-stubs-docs-update-current-api
To submit the revised current.txt to the main Android repository,
you will need approval.
******************************
加入package没有更新api,在编译之前执行make api-stubs-docs-update-current-api -j4
报错:
原因:添加了函数和cpp、.h文件没有在android.bp中说明
解决:在android.bp中添加:
srcs: [
"daemon/main.cpp",
//add start
"daemon/shell_socket_service.cpp",
//add end
],