这个界面可以运行在非图形 GUI 环境下,比如 initramfs。实现方式参考 裸 KMS 思路:直接使用 DRM/KMS 设置显示模式,用 DRM dumb buffer 和 CPU 软件绘制界面,不依赖 X11、Wayland、GBM、EGL、GLES 或桌面 compositor。
默认构建需要 C 编译器、make、基础 libc 头文件和静态 libc,不需要
libdrm 开发包。
默认构建使用 src/font_atlas.c 中的内嵌位图字形表,不依赖系统字体文件、
Fontconfig、FreeType 或 libfreetype.a。
DRM/KMS 功能通过项目内最小 ioctl 封装保留。默认产物静态链接 libc,
不依赖 libc.so.6 或其它共享库。
make产物位于 build/andsec-disks-crypt-init-ui。
如果构建机缺少静态 libc,或需要动态链接调试版本,可使用:
make STATIC=0如果更换 fonts/wqy-microhei.ttc、调整界面文案或新增字号,需要在开发机安装
freetype2 后重新生成字形表:
make font-atlas需要在真实 TTY/initramfs 等可获取 DRM master 的环境运行:
build/andsec-disks-crypt-init-ui -D /dev/dri/card0可用参数:
-D <device>:指定 DRM 设备,默认/dev/dri/card0。
键盘交互:
Tab切换用户名、密码、继续启动、关机。Enter只在按钮上确认,不切换焦点。Backspace删除当前输入框内容。Esc不退出;方向键等转义序列会被忽略。- 选择“关机”按钮并按
Enter后,程序会恢复显示和终端状态,再请求系统关机。
andsec-disks-crypt-init-ui命令安装到/usr/local/andsec/bin文件夹下scripts/andsec-initramfs-hook脚本安装到/etc/initramfs-tools/hooks/andsec-initramfs-hookscripts/00-andsec-disk-crypt脚本安装到/usr/share/initramfs-tools/scripts/init-premount/00-andsec-disk-crypt