avbtool: error: argument ... invalid choice: ‘make_key‘ 问题,通常是由于 avbtool 版本过旧或 环境未正确配置 造成的

您遇到的 avbtool: error: argument ... invalid choice: 'make_key' 问题,通常是由于 avbtool 版本过旧环境未正确配置 造成的。以下是具体原因与解决方案:


一、问题原因

  1. avbtool 版本不兼容
    make_key 是较新版本 avbtool 支持的命令。若您使用的是旧版 Android 源码或独立安装的 avbtool,可能缺失该功能。

  2. 未正确集成 AOSP 构建环境
    如果您直接从平台厂商(如全志)获取 SDK,其可能定制了老版本 avbtool,而非 Google 官方最新版本。


二、解决方案

根据您的场景选择以下任意一种方法生成密钥对:


方案 1:升级到支持 make_key 的 avbtool(推荐)
步骤 1:获取新版 avbtool

直接下载 Google 官方最新版 avbtool(Python 脚本):

wget https://raw.githubusercontent.com/android/platform_external_avb/master/avbtool
### 解析 Mingw32-make 出现 'INTERNAL: readdir: Invalid argument' 错误 当遇到 `mingw32-make` 报告 `INTERNAL: readdir: Invalid argument` 的内部错误时,这通常意味着在尝试读取目录条目期间遇到了无效参数的情况。此问题可能由多种因素引起,包括但不限于文件路径过长、存在特殊字符的文件名权限不足等问题。 #### 使用 Process Monitor 进行调试 为了精确定位引发该错误的具体原因,可以借助 Sysinternals 提供的工具——Process Monitor (ProcMon),通过设置过滤器来监控特定进程的行为: - **启动 ProcMon** - 添加过滤条件: - 进程名称等于 `mingw32-make.exe` - 操作类型为 `CreateFile` 这样可以帮助识别哪些文件操作触发了异常状况[^2]。 #### 文件路径长度限制 Windows 系统对于单个文件路径有最大长度限制,默认情况下不超过 MAX_PATH(通常是 260 字符)。如果项目结构非常深者包含很长的名字,则可能会超出这一界限而导致此类错误发生。建议调整工作区位置至较短路径下重新构建工程[^4]。 #### 特殊字符处理 某些版本控制系统其他软件会在创建临时文件时加入非标准字符,在 Windows 平台上这些字符可能导致兼容性问题。检查并清理源码树中的所有隐藏文件夹及其内容,特别是那些带有波浪线 (~) 其他不常见符号前缀的对象[^3]。 #### 权限验证 确认当前用户账户拥有足够的权利访问整个项目的各个部分以及所依赖库的位置。有时即使看似简单的读写动作也可能因为缺乏适当授权而失败[^1]。 ```bash icacls "C:\path\to\project" /grant Everyone:F /t ``` 上述命令会授予everyone组对该目录及其子项完全控制权;仅用于测试目的,请谨慎使用以免造成安全隐患。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值