安装optee环境,利用proxychains代理解决连接不稳定的问题

宿主操作系统

  • ubuntu 18.04 LTS

参考链接

搭建流程

添加依赖

# 直接执行以下命令
$ sudo dpkg --add-architecture i386
$ sudo apt-get update

$ sudo apt-get install android-tools-adb android-tools-fastboot autoconf \
        automake bc bison build-essential ccache cscope curl device-tree-compiler \
        expect flex ftp-upload gdisk iasl libattr1-dev libcap-dev \
        libfdt-dev libftdi-dev libglib2.0-dev libgmp-dev libhidapi-dev \
        libmpc-dev libncurses5-dev libpixman-1-dev libssl-dev libtool make \
        mtools netcat ninja-build python-crypto python3-crypto python-pyelftools \
        python3-pycryptodome python3-pyelftools python-serial python3-serial \
        rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev
        
$ pip3 install --user pycryptodome

获取源码

# 创建工程文件夹
mkdir optee
cd optee

# 下载repo工具
curl https://storage.googleapis.com/git-repo-downloads/repo-1 > repo
chmod a+x repo

# 下载.repo文件,-m指明目标xml文件,-b指明版本分支,--repo-url使用镜像源
python3 repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml -b 3.12.0 --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo

# 同步代码,j4表示开启4个线程
repo sync -j4 # 直接repo sync会由于连接不稳定而失败

解决repo sync连接不稳定的问题

由于optee工程的代码量很大,国内似乎没有相应的镜像,所以同步optee的代码非常耗时,而且会因为连接不稳定而失败,异常痛苦……尝试通过系统命令export http_proxy=192.168.253.1:7890设置代理(绕过GFW),但是repo sync的网络连接并不会经过设置好的代理……最后我利用proxychains解决了代理失败的问题。proxychains安装过程参考另一篇博客

# 利用proxychains来通过代理同步代码
proxychains ./repo sync -j4

获取toolchains

cd build
# 这里会下载两个工具,所以还是使用proxychains
# 如果失败,删掉toolchains文件夹下的所有文件后重新执行命令
proxychains make toolchains

编译并运行代码

# 第一次执行的时候会下载一些文件,所以最好还是使用proxychains
# 若失败则关掉proxychains重试
make run

启动框架

在启动的qemu交互环境中输入c并回车,即可生成一个TEE和一个REE终端