新增 `DistractionDetectionLevel` 参数以控制驾驶员分心检测的灵敏度等级,并在 `dmonitoringd.py` 和 `helpers.py` 中实现不同等级对应的时间阈值配置。同时更新了相关逻辑以支持动态调整该参数。 fix(toyota): 支持 Toyota Wildlander PHEV 车型接入与控制 增加对 Toyota Wildlander PHEV 的指纹识别、车辆规格定义及接口适配,确保其在 TSS2 平台下的正常运行,并修正部分雷达ACC判断条件。 feat(ui): 优化 Dragonpilot 设置界面选项显示语言一致性 将 Dragonpilot 设置页面中的多个下拉选项文本进行国际化处理,统一使用翻译函数包裹,提升多语言兼容性。 chore(config): 更新 launch 脚本 API 地址并切换 shell 解释器 修改 `launch_openpilot.sh` 使用 `/usr/bin/bash` 作为解释器,并设置自定义 API 与 Athena 服务地址。 refactor(key): 实现 ECU 秘钥提取脚本并写入参数存储 创建 `key.py` 脚本用于通过 UDS 协议从 ECU 提取 SecOC 密钥,并将其保存至系统参数中供后续使用。 docs(vscode): 移除不再使用的终端配置项 清理 `.vscode/settings.json` 文件中过时的 terminal 配置内容。 feat(fonts): 新增中文字体资源文件 添加 `china.ttf` 字体文件以增强 UI 在中文环境下的渲染效果。 build(payload): 添加二进制负载文件 引入新的二进制 payload 文件用于辅助密钥提取流程。
83 lines
2.6 KiB
Bash
83 lines
2.6 KiB
Bash
#!/bin/env sh
|
|
|
|
persist_dir=/persist
|
|
target_dir=${persist_dir}/comma
|
|
# Change target dir from sunnylink to comma to make this no longer a test
|
|
|
|
|
|
# Function to remount /persist as read-only
|
|
cleanup() {
|
|
echo "Remounting ${persist_dir} as read-only..."
|
|
sudo mount -o remount,ro ${persist_dir}
|
|
}
|
|
|
|
# Function to check and backup existing keys
|
|
backup_keys() {
|
|
if [ -f "id_rsa" ] || [ -f "id_rsa.pub" ]; then
|
|
timestamp=$(date +%s)
|
|
backup_base="id_rsa_backup_$timestamp"
|
|
backup_private="$backup_base"
|
|
backup_public="${backup_base}.pub"
|
|
|
|
# Ensure we're not overwriting an existing backup
|
|
counter=0
|
|
while [ -f "$backup_private" ] || [ -f "$backup_public" ]; do
|
|
counter=$((counter + 1))
|
|
backup_private="${backup_base}_$counter"
|
|
backup_public="${backup_base}_$counter.pub"
|
|
done
|
|
|
|
# Backup the keys
|
|
cp id_rsa "$backup_private"
|
|
cp id_rsa.pub "$backup_public"
|
|
|
|
# Verify the backup
|
|
original_private_hash=$(sha256sum id_rsa | cut -d ' ' -f 1)
|
|
backup_private_hash=$(sha256sum "$backup_private" | cut -d ' ' -f 1)
|
|
original_public_hash=$(sha256sum id_rsa.pub | cut -d ' ' -f 1)
|
|
backup_public_hash=$(sha256sum "$backup_public" | cut -d ' ' -f 1)
|
|
|
|
if [ "$original_private_hash" = "$backup_private_hash" ] && [ "$original_public_hash" = "$backup_public_hash" ]; then
|
|
echo "Backup verified successfully."
|
|
# Safe to delete original keys after successful backup verification
|
|
else
|
|
echo "Backup verification failed. Aborting operation."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Existing keys backed up as $backup_private and $backup_public"
|
|
fi
|
|
}
|
|
|
|
# Trap any signal that exits the script to run cleanup function
|
|
trap cleanup EXIT
|
|
|
|
# Remount /persist as read-write
|
|
sudo mount -o remount,rw ${persist_dir}
|
|
|
|
# Ensure the directory exists
|
|
mkdir -p ${target_dir}
|
|
cd ${target_dir}
|
|
|
|
# Check for and backup existing keys
|
|
#backup_keys
|
|
|
|
# Generate new keys
|
|
if ! ssh-keygen -t rsa -b 4096 -m PEM -f id_rsa -N ''; then
|
|
echo "Failed to generate new RSA keys. Exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
# Convert the generated SSH public key to PEM format and store it temporarily
|
|
if ! openssl rsa -pubout -in id_rsa -out id_rsa.pub -outform PEM; then
|
|
echo "Failed to convert the public key to PEM format. Exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
# Display the public key
|
|
echo "Displaying the public key:"
|
|
cat id_rsa.pub
|
|
|
|
# Cleanup will be called automatically due to trap on EXIT
|
|
#echo "Operation completed successfully. System will reboot now."
|
|
#sudo reboot |