IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> android ----- goldfish内核编译 -> 正文阅读

[移动开发]android ----- goldfish内核编译

编译环境:

   - android 版本 - android-10.0.0_r41
   - 架构 - aosp_x86_64-eng
   - 内核分支:android-goldfish-4.14-gchips

编译资源

 参考视频教程:https://b23.tv/BV1sm4y1S7RE

编译流程

前提条件:已编译好android源码

  1. 本文选择了 android-10.0.0_r41分支的android 源码。可通过下面连接参考支持的机型的分支:
    https://source.android.google.cn/setup/start/build-numbers#source-code-tags-and-builds
    android 分支 2. 确认模拟器内核版本(在android 源码目录下)
    ??source build/envsetup.sh
    ??lunch aosp_x86_64-eng
    ??emulator
    请添加图片描述 如上图 kernel version : 4.14.112+… 确认内核版本是4.14的

下载android 模拟器内核源码

参考:https://source.android.google.cn/setup/build/building-kernels-deprecated

1.创建内核文件夹 (android-kernel)
??mkdir android-kernel
2. cd android -kernel
3. 下载内核
??git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
4. cd goldfish
5. 查看远程分支情况
??git branch -a 请添加图片描述6. 切换分支 (根据前面确定了模拟器的内核是4.14版本)
git checkout remotes/origin/android-goldfish-4.14-gchips

配置编译内核环境

在goldfish 目录下执行下面命令:

  1. export ARCH=x86_64
  2. export SUBARCH=x86_64
  3. export CROSS_COMPILE=x86_64-linux-android-
  4. export PATH=aosp-10.0.0_r41(android源码目录)/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin:$PATH

编译内核

make x86_64_ranchu_defconfig
make -j8

编译成功后生成 bzImage,如下图:内核编译成功

运行内核

回到android 源码目录执行如下命令:

  1. source build/envsetup.sh
  2. lunch aosp_x86_64-eng
  3. emulator -kernel 内核地址/goldfish/arch/x86/boot/bzImage
    请添加图片描述请添加图片描述

问题集锦

  1. error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel

sudo apt-get install libelf-dev

  1. fatal error: openssl/bio.h: No such file or directory
    21 | #include <openssl/bio.h>

sudo apt-get install libssl-dev

  1. scripts/Kconfig.include:35: compiler ‘x86-linux-android-gcc’ not found

这个问题是因为andriod 11源码/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin中没有x86-linux-android-gcc 这个文件。但是android10源码中有,所以我的解决方法是将为android10编译。

  1. error New address family defined, please update secclass_map
    解决方法:
  • 在内核目录下/goldfish/scripts/selinux/genheaders/genheaders.c 和/goldfish/scripts/selinux/mdp/mdp.c 删除下面引用:
    ??#include <sys/socket.h>
  • 在内核目录下/goldfish/security/selinux/include/classmap.h中添加下面引用:
    ??#include <linux/socket.h>
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:12:54  更:2022-04-15 00:14:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 21:00:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码