trustzone 和optee 出来挺久了,android 系统也都已经使用了。arm芯片基本上都支持trustzone技术和TEE,TEE将为系统提供一个安全的运行环境,用于保护系统中的重要数据和安全操作。这边根据网上的一些资料,学习和构建一个optee的环境。
准备开发环境
新版本的optee 使用ubuntu 18.04 会比较好,某些版本的软件安装起来会比较简单。
如果是在国内的话,下载代码什么的会比较慢,我直接用了aliyun的日本的vpc,配置环境,安装运行都比较快。
登陆远程PC:
# 添加-Y 参数允许进行远程X forwarding
ssh ubuntu@XXX.XXX.XXX.XXX -Y
官网要求安装下面的软件:
sudo apt-get install android-tools-adb android-tools-fastboot autoconf \
automake bc bison build-essential cscope curl device-tree-compiler \
expect flex ftp-upload gdisk iasl libattr1-dev libc6:i386 libcap-dev \
libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev \
libpixman-1-dev libssl-dev libstdc++6:i386 libtool libz1:i386 make \
mtools netcat python-crypto python-serial python-wand unzip uuid-dev
另外还需要补充:
sudo apt install python3-openssl python3-crypto python3-pyelftools python3-pycryptodom
下载代码
# 使用3.8.0的,运行在qemu armv8上的代码
repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml -b 3.8.0
repo sync
代码编译
更新toolchain
cd /mnt/optee/buildmake toolchains -j2
编译代码:
make -j `nproc`
运行:
make run
运行结果,因为是远程操作的,很本地的不太一样
启动了两个窗口,一个是normal world,一个是secure world, normal world这边是个buildroot 做的linux, secure world就是optee了
qemu的监控控制台,以前没用过,目前也不知道有啥用,等待后续发掘