首语
自己手里有一台Windows电脑,但是工作开发都是Linux系统下进行,想着给自己的Windows电脑安装Linux系统,说干就干。
安装Ubuntu
先决条件:Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。
我们的电脑是Windows系统,而Android源代码的编译需要在Linux下进行。我们需要安装一个Linux系统,而折腾双系统比较麻烦,我们可以通过WSL(适用于Linux的Windows子系统)在Windows下建立一个Linux子系统,方便快捷。
那如何启用WSL呢,打开控制面板->程序->启动或关闭Windows功能,勾选“虚拟机平台“和“适用于Linux的Windows子系统。重启电脑,即可启用WSL。
接下来去Microsoft Store搜索Ubuntu,下载20.04.5 LTS版本。
下载完成后双击打开一个Linux 命令行界面,此时我们就处在一个Linux环境下了。
注意:默认会下载在C盘,后期下载源码考虑磁盘空间可以将其安装到其它磁盘,只需要在安装前调整应用保存磁盘就可(设置->系统->存储->高级存储设置-》保存新内容的地方)。 打开命令行界面可能会报如下错误
WslRegisterDistribution failed with error: 0x800701bc Error: 0x800701bc WSL 2 ??? https://aka.ms/wsl2kernel
原因是WSL内核没有升级,可通过如下链接进行升级
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
设置账户名和密码后就可以使用了。同时在文件资源管理器的左侧看到Linux目录,点击可查看所有文件,可进行增删改查等操作。
图形界面
图形用户界面我们安装的是Xfce(运行在类Unix操作系统的自由软件)。
- 给root用户重设密码(牢记)
sudo passwd root
- 安装图形用户界面
注意:默认镜像源下载xfce4部分依赖下载不下来,可配置清华的镜像源。
代码语言:javascript复制sudo vim /etc/apt/sources.list
镜像源如下
代码语言:javascript复制deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
安装图形用户界面命令
代码语言:javascript复制sudo apt update && sudo apt -y upgrade
sudo apt-get purge xrdp
sudo apt install -y xrdp
sudo apt install -y xfce4
sudo apt install -y xfce4-goodies
# 配置文件参数修改
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
sudo sed -i 's/3389/3389/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/max_bpp=32/#max_bpp=32nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24nxserverbpp=128/g' /etc/xrdp/xrdp.ini
echo xfce4-session > ~/.xsession
sudo nano /etc/xrdp/startwm.sh
# 将以下这两行注释掉:
# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession
# 添加这一行
startxfce4
# 修改完成后Ctrl x->Y->Enter 即可
# 脚本运行
sudo /etc/init.d/xrdp start
运行成功后,打开Windows远程桌面,输入Ubuntu的ip(通过ip addr
查看),点击连接,会弹出一个输入账号和密码的页面。
账号:root,密码:之前给root重设的密码。点击OK,弹出一个弹框,选择select default config即可,这时,我们就可以看到图形界面了。
顺手安装一个Google Chrome。
代码语言:javascript复制wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
启动Google Chrome会报错如下
代码语言:javascript复制[19374:19374:1007/203507.298835:ERROR:zygote_host_impl_linux.cc(90)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
意思是root运行没有--no-sandbox
不支持,添加即可,启动
google-chrome --no-sandbox
当然我们可以修改快捷方式的command,一劳永逸。这时,Google Chrome成功启动了,当然Google安装OK了,想干啥都行了。
下载Android源码
AOSP镜像使用的是清华AOSP镜像,可访问 https://cs.android.com 或 https://github.com/aosp-mirror 在线搜索及浏览 AOSP 源码。 Android源码通过repo工具下载。repo的使用需要python,还需要git。 下载配置git
代码语言:javascript复制sudo apt-get install git
# 用户设置
git config --global user.name "yhj"
git config --global user.email "hujuny@foxmail.com"
# 检查配置
git config --list
下载repo
代码语言:javascript复制mkdir ~/bin
sudo apt install curl
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
# 配置权限和环境变量
chmod a x ~/bin/repo
PATH=~/bin:$PATH
下载python
代码语言:javascript复制sudo apt-get install python
# 建立软链接
sudo ln -s /usr/bin/python3 /usr/bin/python
源码拉取(只拉取了特定版本)
代码语言:javascript复制mkdir AOSP
cd AOSP
mkdir android-10.0.0_r25
cd android-10.0.0_r25
# 初始化仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r25
初始化仓库时会报如下错误
代码语言:javascript复制Downloading Repo source from https://gerrit.googlesource.com/git-repo
fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 110] Connection timed out
在~/.bashrc文件下添加如下代码即可
代码语言:javascript复制export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
代码同步
代码语言:javascript复制repo sync
几小时后,代码同步成功,这个版本大约100G左右。
总结
本文安装Ubuntu、图形界面、下载Android源码都是为后续进行Android源码的编译、开发服务的,当然也适合给自己的Windows电脑搭建Linux环境。配置过程中如有问题可评论区进行交流。 后续会更新Android源码目录结构、如何使用Android Studio调试系统APP(Settings、SystemUI等)及Framework等内容,敬请期待。