简介
安装Linux系统
安装 Deepin-Linux系统
Deepin 官网: https://www.deepin.org/
Deepin iso镜像下载地址: https://www.deepin.org/download/
制作安装Deepin系统安装U盘工具 deepin-boot-maker.exe http://cdimage.deepin.com/applications/deepin-boot-maker/windows/deepin-boot-maker.exe
安装 Deepin教程
使用教程:
1. 下载 deepin.iso 镜像文件 ( 2.5GB ) https://www.deepin.org/download/
2. 下载 deepin-boot-maker.exe 制作安装Deepin系统安装U盘工具
3. 插入U盘 启动deepin-boot-maker.exe 选中 deepin.iso 镜像
4. 在 电脑》管理》磁盘管理 中对磁盘进行新建卷 必须留两个空白磁盘 ,例如空白 E: 空白F: , 这两个磁盘将会作为 Linux系统的挂载点 根目录/ 和主目录 /home 的挂载点
挂载点 挂载点中文名 文件系统 大小
/ 根分区(必选) EXT4(推荐) 最少30G
/home 家目录(推荐) EXT4(推荐) 建议500G
/swap 内存临时置换区域 EXT4(推荐) 最少15G
5. 电脑进入BIOS中 设置以 USB为启动盘
6. 进入安装 Deepin系统 在Linux的安装磁盘中选择 空间较大的挂载 /home 选择空间较小的盘 加载系统根目录 / 并选中文件格式为 ext4
7. 等待安装完成后重启电脑
8. 此时可能会出现 grub error no find file xxxx 此时参考
https://www.cnblogs.com/sting2me/p/4216935.html Ubuntu 开机启动是出现 grub rescue 解决办法 输入如下命令
[1]. 先使用ls命令,找到Ubuntu的安装在哪个分区,ls会罗列所有的磁盘分区信息,比方说:
【 前缀 grub rescue> 】 ls
(hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)
[2].然后依次调用如下命令: msdosX表示各个分区,注意 msdos 与 数字 之间没有空格!
假设找到(hd0,msdos3)时,显示了文件夹中的文件,则表示 Linux 安装在这个分区
【 前缀 grub rescue> 】 ls (hd0,msdosX)/boot/grub
...config ....ipc ....linux
[3].假设找到(hd0,msdos3)时执行
【 前缀 grub rescue> 】 rescue>set root=(hd0,msdos3)
【 前缀 grub rescue> 】 rescue>set prefix=(hd0,msdos3)/boot/grub
【 前缀 grub rescue> 】 rescue>insmod normal
【 前缀 grub rescue> 】 normal // 【开始进入Linux引导】
[4]. 成功进入Linux 后执行 如下命令 完成 grub的修正 , 重启测试是否已经恢复了grub的启动菜单 , 如果跳过该步骤重启会再次进入grub
sudo update-grub
sudo grub-install /dev/sda // sda 硬盘号码
下载安卓源码
初始化源码下载编译环境
https://blog.csdn.net/qq910689331/article/details/83622290
sudo apt-get update && sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk3.0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-8-jre openjdk-8-jdk pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev gcc-multilib maven tmux screen w3m ncftp liblz4-tool pngquant rsync python2.7
不出意外这里安装lib32ncurses5-dev 会报如下错误
下列软件包有未满足的依赖关系:
lib32ncurses5-dev : 依赖: libncurses5-dev (= 6.0+20170715-2)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决方法:替换软件源
1. sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2. sudo vim /etc/apt/sources.list ## 编辑 /etc/apt/sources.list 添加如下命令
## Generated by deepin-installer
deb [by-hash=force] http://packages.deepin.com/deepin panda main contrib non-free
#deb-src http://packages.deepin.com/deepin panda main contrib non-free
########## add begin
deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
########## add end
3. sudo apt-get update ## 更新软件源
4. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 ## 对软件源进行签名
5. sudo apt-get update && sudo aptitude install lib32ncurses5-dev ## 重新安装 lib32ncurses5-dev
6. 选择 Y Y Y 进行 更新操作
下列“新”软件包将被安装。
lib32ncurses5-dev{b} lib32tinfo-dev{ab}
0 个软件包被升级,新安装 2 个,0 个将被删除, 同时 19 个将不升级。
安装依赖软件包
sudo apt-get install curl
sudo apt-get install git
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install lib32ncurses5-dev
sudo apt-get install clang
sudo apt-get install libexpat1-dev:i386
sudo apt-get install lib32ncurses5
sudo apt-get install libncurses5:i386
sudo apt-get install qemu-kvm
创建 swap 虚拟分区来分担内存压力
使用分区来做SWAP(虚拟内存):
1. 使用fdisk或者系统磁盘工具创建一个新的分区来创建交换分区(假设 /dev/sdb3 是创建的交换分区) 占用大小 16GB
2. mkswap /dev/sdb3 # 使用 mkswap 命令来设置交换分区
3. swapon /dev/sdb3 # 启用交换分区
4. vim /etc/fstab # 写入/etc/fstab,以便在引导时启用:
/dev/sdb3 swap swap defaults 0 0 # 新增该行
删除交换分区:
1. /sbin/swapoff /dev/sdb3 # 先停止swap分区
2. vim /etc/fstab # 删除自动挂载配置命令
/dev/sdb3 swap swap defaults 0 0 ## 删除该行
free 命令查看 swap分区情况 内存情况
free
total used free shared buff/cache available
Mem: 8293052 3674244 4389456 17720 229352 4485076
Swap: 15172948 180372 14992576
下载源码
(直接下载安卓官网源码仓库 repo)-方式1
repo墙内已保存文件: https://raw.githubusercontent.com/ZukGit/WordPress_MD_Git/master/system/linux/repo
1. 把桌面 bin 加入到 PATH
vim ~/.bahrc 加入如下命令 把桌面的bin目录 加入到 PATH中
export PATH=$PATH:~/Desktop/bin
2. 下载 repo 并 赋权
mkdir ~/Desktop/bin
cd ~/Desktop/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ./repo 【 需要配置VPN】】
chmod a+x ./repo
sudo apt install python // 【3. 安装 python 拉取代码过程中会使用python 】
git config --global user.email zukgit@foxmail.com // 【4. 设置 git 配置信息】
git config --global user.name zukgit
repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r21 // 【5. 开始初始化 repo 需要配置VPN】
repo sync // 【6. 开始抓取代码 注意下面的报错 注释掉 /.repo/manifests/default.xml 中分支 】
repo --trace sync -cdf // 输出详细拉取分支信息 用来排查哪一个git 分支拉取失败
下载越更新包 aosp-latest.tar(清华镜像站)-方式2
https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 初始化包大约40GB 建议直接浏览器下载(可以帮助加速) 不要用 wget
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar # 解压下载的包
cd AOSP # 解压得到的 AOSP 工程目录 # 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录 # 或 repo sync -l 仅checkout代码
清华镜像 aosp-latest.tar 40GB 解压后 40GB大小
编译安卓源码
设置bashrc 环境配置文件
export PATH=$PATH:~/Desktop/bin
unset _JAVA_OPTIONS #这句一定放在Java环境变量配置的命令的最前面
## https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
export JAVA_HOME=~/dev/java/jdk1.8.0_191 #JDK的安装路径
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
alias findm="grep -rnws --include='*.[mb][kp]' 'LOCAL_MODULE\|LOCAL_PACKAGE_NAME\|name:'"
alias cls='clear'
alias cdd='cd ~/Desktop'
编译命令
编译命令: source build/envsetup.sh && lunch aosp_arm64-eng && make -j6 2>&1 | tee build.log ## shell窗口和本地build.log 同时记录编译过程Log信息
source build/envsetup.sh && lunch aosp_arm64-eng && make -j4 2>&1 | tee build.log
source build/envsetup.sh && lunch aosp_arm64-eng && make 2>&1 | tee build.log 【arm 64位机器】
source build/envsetup.sh && lunch aosp_x86_64-eng && make 2>&1 | tee build.log 【X86 64位机器】 推荐该版本 本地虚拟机
运行虚拟机命令
参考资料: https://blog.csdn.net/pcsxk/article/details/52016739
sudo apt-get install qemu-kvm
sudo su
source build/envsetup.sh && lunch aosp_x86_64-eng && emulator 【以 root 用户 执行 emulator 安卓虚拟机】
##################
sudo su
source build/envsetup.sh
lunch aosp_x86_64-eng
emulator