Build sandboxing disabled due to nsjail error

该错误通常与编译环境权限或配置问题有关,主要出现在Ubuntu 24.04或Docker容器中编译AOSP时。

  1. 在 Ubuntu24.04 上编译
    根据链接 https://groups.google.com/g/android-building/c/DbDKuaIik3M 所说,ubuntu24.04上的一些修改,会导致编译时遇到这个错误。

    临时解法是执行这个命令sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
    如果想持久化生效的话,可以编辑文件/usr/lib/sysctl.d/10-apparmor.conf,将上面的key value添加进去,使用sysctl -p /usr/lib/sysctl.d/10-apparmor.conf 或者重启生效

解决方案

方案1:Ubuntu 24.04系统修复

临时生效(重启后失效):

复制代码
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

永久生效

  1. 编辑配置文件:

    复制代码
    sudo nano /usr/lib/sysctl.d/10-apparmor.conf
  2. 添加以下内容:

    复制代码
    kernel.apparmor_restrict_unprivileged_userns=0
  3. 应用配置:

    复制代码
    sudo sysctl -p /usr/lib/sysctl.d/10-apparmor.conf # 或重启系统
  1. 在Docker里面编译
    在Docker里面编译可能会遇到这个错误,解决办法是创建容器时,添加一个 --privileged 参数

    docker run --privileged -it
    --user (id -u {USER}):(id -g {USER})
    -v $PWD:/home/builder/code
    -v /etc/passwd:/etc/passwd:ro
    -v /etc/group:/etc/group:ro
    android_mm_build:latest /bin/bash

⚠️ 注意:此参数会赋予容器接近主机root的权限,需确保镜像来源可信。

相关推荐
小此方19 小时前
告别云服务器连接困扰——Windows下利用VirtualBox安装配置Ubuntu虚拟机详细教程
服务器·windows·ubuntu
Soari2 天前
Linux 内核对比:PREEMPT_DYNAMIC vs PREEMPT_RT
linux·运维·ubuntu
明月不会写代码2 天前
Ubuntu 下 Kitty 终端配置记录
linux·ubuntu
weipt2 天前
利用wsl给windows电脑上安装一个ubuntu
linux·运维·ubuntu
阿钱真强道2 天前
01 嵌入式操作系统 | 课程导论与虚拟机安装 Ubuntu
linux·ubuntu·嵌入式·虚拟机
IT菜鸟程3 天前
Ubuntu 下 apt 版 Nginx 升级为源码编译版本完整操作指南(1.24.0 → 1.30.4 实战)
linux·nginx·ubuntu
Mr-Apple3 天前
系统找不到指定的文件-CreateInstance/CreateVm/HCS/ERROR_FILE_NOT_FOUND
linux·windows·ubuntu·wsl
自律最差的编程狗3 天前
Ubuntu下Docker部署Ollama 轻量模型
linux·ubuntu·docker
阿钱真强道3 天前
04 嵌入式操作系统 | 常用命令Ⅱ:用户权限、进程与网络
linux·ubuntu·进程管理·用户权限·网络排查
阿钱真强道3 天前
03 嵌入式操作系统 | 常用命令Ⅰ:文件、查找与压缩
linux·ubuntu·文件管理·命令行·压缩解压