Android Linux换核 + goldfish环境搭建
文章目录
- 前言
- 一、环境准备
- 0. 硬件准备
- 1. KVM
- 2. 源码准备
- 2.1 goldfish
- 2.2 交叉编译工具
- 3. Android Studio
- 4. Java
- 二、编译内核
前言
这篇博客主要记录下利用Android模拟器,在Android7.1.1系统下换goldfish3.10-n-dev
核的过程,在此之前参考了网上大大小小的换核教程,没有那种一次性走到头的,可能是时间太久,多多少少都有点bug。所以打算整理下,如果您按照此过程有啥bug,欢迎交流~
其他系统、内核换的过程大同小异。SDK的安装这里推荐用Android studio下载,因为AS可以更好的管理SDK的更换,以及模拟器的选择等。
先说下我的配置。
实体机系统:Win10 64位
虚拟机系统:Ubuntu18.04 64位
目标android版本:Android7.1.1 x86_64
待移植内核版本:android-goldfish-3.10-n-dev
本来想本着简单的风格记录下,但是换位思考后觉得还是在中间加了很多图,所以导致篇幅太长。见谅-_-
一、环境准备
0. 硬件准备
由于源码还不小,再加上需要在虚拟机里编译源码,所以尽可能的给虚拟机高点配置,这里建议硬盘100G+,内存4G+,处理器4c+
1. KVM
由于要用到虚拟机,难免会用到KVM.
- 首先保证你的实体机已经使能
Virtual Technology
功能,这里注意,由于BIOS不同,有的主板对这个功能的命名不同,比如我的技嘉主板命名为SVM Mode
, - 虚拟机使能虚拟化功能如下图。(这里以Vmware为例)
保证在Ubuntu里kvm测试通过,如下
wz@ubuntu:~$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
2. 源码准备
2.1 goldfish
保证git提前配置好,这里就略过去了。直接在官方源或者镜像源pull即可。(自选其一)(废话:建议把关于android的源码、linux源码、等放到一个文件里)
# 官方源(自备梯子)
git clone https://android.googlesource.com/kernel/goldfish.git# 镜像源 (中科大)
git clone git://mirrors.ustc.edu.cn/aosp/kernel/goldfish.git # 镜像源 (清华)
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
下载后,在goldfish文件夹里checkout到指定分支,如下
cd ~/Desktop/goldfish
# 查看所有分支
git branch -a
# 切换到指定分支
git checkout remotes/origin/android-goldfish-3.10-n-dev
2.2 交叉编译工具
由于我们用的x86_64交叉编译的工具,这里提供了gitee的repo,这里多说一句,由于需要拉的东西很大,很多官方的源拉资源很慢,所以推荐国内的gitee,遇到大的项目,gitee是个不错之选。
# prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9
git clone https://gitee.com/wangzhe8889/prebuilts_gcc_linux-x86_x86_x86_64-linux-android-4.9.git
这里说些废话,由于我一开始想用arm的内核,但是后来移植内核时模拟器一直黑屏,所以才换了x64,所以当时也找了关于arm的交叉编译工具,这里也分享下。仅供参考。(想移植x86_64直接无视就好^_^)
# prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
git clone https://gitee.com/wangzhe8889/prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9.git
# prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9
git clone https://gitee.com/wangzhe8889/prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9.git
下载好后配置变量
# 记事本打开~/.bashrc文件
sudo gedit ~/.bashrc
# 末尾添加
# 这里路径换成你的
export PATH=/home/wz/Desktop/new/prebuilts_gcc_linux-x86_x86_x86_64-linux-android-4.9/bin:$PATH
export ARCH=x86_64
export CROSS_COMPILE=x86_64-linux-android-
export REAL_CROSS_COMPILE=x86_64-linux-android-# 使能下bash
source ~/.bashrc
3. Android Studio
直接去官网下载即可 ,这里建议直接在VMware虚拟机里打开下载,这样自动识别系统,下载即可。
本地解压后,进入android-studio/bin/
目录执行./studio.h
即可启动AS
打开后在configure
里找到AVD Manager
和SDK Manager
,如下图
首先说SDK的配置,其实看着下载就行,我也是随便下的,因为硬盘空间大,我就都下了,参考我画框的。
再就是AVD的配置了,新建一个安卓虚拟机,随便选一个外观,主要是System Image的选择(见下图),然后记得最后一步的时候在进阶(Advanced)设置中选择冷启动(cold),保证每次都开机清空上次的状态,如果不勾选,可能导致换核失败,表现为换核后还是之前的核(亲测)
建好之后就可以自己试着启动下,然后通过adb记录下当前的内核,或者眼瞅法(在setting里看属性)。建议这里记录下,以检查是否换核成功。
adb命令如下:
# 保证虚拟机启动
adb shell
cat /proc/version
老样子,还得先配置下环境变量
# 记事本打开~/.bashrc文件
sudo gedit ~/.bashrc
# 末尾添加
# 这里SDK路径换成你的
export ANDROID_HOME=/home/wz/Desktop/Android/Sdk
export PATH=$ANDROID_HOME/emulator:$PATH
# 修改后使能下bash
source ~/.bashrc
4. Java
虽然不知道有啥用,看着别人都配置,也就跟着了,不知道不配置是不是也可以,有缘人可以试下,哈哈
sudo apt-get install openjdk-8-jdk
# 查看java版本
java -version
二、编译内核
编译内核就很简单了,你会发现前戏几小时,正片几分钟完事。
保证以下命令在你goldfish文件夹内运行。路径根据自己的对应修改
# 指定到输出路径,方便查看,保证文件夹存在
make ARCH=x86_64 O=../out_7_1 x86_64_ranchu_defconfig# make 线程的选择看你自己
make ARCH=x86_64 O=../out_7_1/ -j64# 先保证 可以命令行启动
emulator -avd Android7_1_1# 指定内核,搞定,注意路径
emulator -avd Android7_1_1 -kernel /home/wz/Desktop/new/out_7_1/arch/x86/boot/bzImage
启动后,adb查看内核版本
成功换核后用户会变成Ubuntu用户名称如下:
generic_x86_64:/ $ cat proc/version
Linux version 3.10.0+ (wz@ubuntu) (gcc version 4.9 20140827 (prerelease) (GCC) ) #3 SMP PREEMPT Sun Aug 23 13:04:59 PDT 2020
就酱,芜湖~
成功的就麻烦点个赞吧,失败的bug贴出来,讨论一波~
Android Linux换核 + goldfish环境搭建相关推荐
- 高版本Android真机逆向测试环境搭建
高版本Android真机逆向测试环境搭建 618购入了新机Xiaomi K50,真滴便宜又好用,续航很强界面很丝滑.正好拿来做逆向测试机? 怎么可能!这也太奢侈了!不过淘汰的Xiaomi Note 7 ...
- Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具)
Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具) 在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一 ...
- Linux 0.11 实验环境搭建与调试
缘起 之前我写过一篇博文:Linux 0.11 实验环境搭建 本以为有了这个环境(gcc-3.4 & gdb-6.8),就可以调试无忧了.谁知遇到了以下问题: (1)用 gdb 调试 main ...
- Linux下服务器基本环境搭建步骤详解(三种软件安装方式)
Linux下服务器基本环境搭建 小伙伴们注意看:下面使用三种方式分别安装JDK.Tomcat.Docker进行演示 操作系统基于CentOs7. 文章目录 Linux下服务器基本环境搭建 前言 一.L ...
- 【原作者:吴秦(Tyler)http://www.cnblogs.com/skynet/archive/2010/04/12/1709892.html】Android开发之旅:环境搭建及HelloWo
Android开发之旅:环境搭建及HelloWorld 2010-04-12 00:45 by 吴秦, 801360 阅读, 138 评论, 收藏, 编辑 --工欲善其事必先利其器 引言 本系列适合0 ...
- 嵌入式Linux下的Qt环境搭建
嵌入式Linux下的Qt环境搭建 本文介绍如何在嵌入式Linux开发板上配置Qt运行环境,并进行Qt程序运行测试 一.tslib编译 要想Qt 支持触摸需要编译 tslib ,以生成触摸相关插件. t ...
- linux虚拟机VMware centos环境搭建
linux虚拟机VMware centos环境搭建 一.虚拟机 二.安装流程 三.linux环境下使用命令规则 1.常见的命令 2.与xshell连接 四.总结 一.虚拟机 虚拟机的意思就是说在我们的 ...
- Linux 下ffmpeg的环境搭建与安装
Linux下ffmpeg的环境搭建与安装 背景 [FFmpeg是什么] 1· FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源软件.采用LGPL或GPL许可证,提供了录制.转 ...
- Linux下Java开发环境搭建
最近刚开始玩Linux,搞开发搭建环境是第一步,于是总结了这篇Linux下Java开发环境搭建的博客,记录一下我爬过的坑. 一.JDK的下载 jdk8官方下载地址:http://www.oracle. ...
最新文章
- 初学MyBatis-Plus
- Vivado下生成及烧写MCS文件
- j2ee html5,HTML5+J2EE实现文件异步上传
- 一文详解超参数调优方法
- python pyqt5安装_Python3 安装PyQt5及exe打包图文教程
- Win11如何跳过开机更新 Win11跳过开机更新教程
- 排序 -> 选择排序
- 初学网站建设,要学习些什么?
- php函数收集参数,DELL 14G服务器 对应 金牌银牌铜牌铂金CPU 参数简单汇总
- Excel转html
- linux man手册更新,linux man手册介绍【manual】
- Android 插件化原理(三),通过hook启动插件Activity,修改Resources,调用插件资源
- DISCUZ!X1模板home空间模板修改说明home.php
- sqrt函数java_Java BigDecimal sqrt()用法及代码示例
- 工程师思维的核心 |《转向:用工程师思维解决商业难题》
- loj 1224 - DNA Prefix
- 成都拓嘉辰丰电商:拼多多全店推广的作用
- EasyExcel基本使用-简单导入
- linux系统结束vim进程的指令,Linux/Vim命令(持续更新)
- 教你如何在机器学习竞赛中更胜一筹
热门文章
- Java 线程池(ThreadPoolExecutor)原理分析与使用 – 码农网
- java(八) —— 线程安全与线程池问题
- 汽车诊断中常说的DTC是什么?
- LTS 轻量级分布式任务调度框架(Light Task Schedule) - 推酷
- 测绘技能大赛-无人机航测虚拟仿真(外业部分)
- 便携式医疗电子将科幻场景搬进生活
- 怎样设置苹果HomePod扬声器?
- linux实验报告山东科技大学,-linux程序设计实验报告
- Hive-窗口函数/开窗函数(重点理解~~~)
- 创建一个像人类一样的神经网络来诊断肺癌