Flutter代码质量守卫
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/flutter-apk-security-sh-beoy7v。
技能介绍
要解决的问题
Flutter 应用的 Android 发布产物(APK/AAB)一旦打包,很多信息就「看不见」了:清单里的权限、签名证书、嵌入的密钥、资产文件,都混在编译后的产物里。想知道线上包安不安全,要么翻源码,要么对着解包结果猜。而且 Flutter 的业务逻辑通常编译进 libapp.so 的 native snapshot,把解包出来的 Java/Kotlin/smali 当源码看并不靠谱——它们只是证据,不是真相。
技能如何工作
这是一个 Agent 工作流,不是独立扫描器。它会:
- 在目标应用之外的临时检查目录里工作,用只读命令做本地检查
- 完整保留原始产物,不修改、不重打包、不重签名、不删除
- 逐项记录证据:文件路径、manifest 节点、resource 路径、包名、证书 subject、权限名、资产路径,以及提取字符串的上下文
- 对密钥做脱敏,只展示短前缀/后缀或稳定标识符
如果你只给了包名或 Play 商店链接,它会用 apkeep 先把 APK 拉下来再走常规检查流程,并在报告里记录下载来源、包名、请求的版本和产物路径。
适用边界
- 只做检查和报告,不会改动你的权限、签名、依赖、认证、支付、隐私行为、生产环境、发布配置或 API key 迁移策略
- 只拉取你有权审查的、或公开的应用,遵守应用商店条款
- 不索取、不存储 Google 账号凭据;需要 Google Play 访问时由你提供邮箱和 AAS token,并提醒使用风险可接受的账号
使用场景
- 应用准备提交 Play 商店前,想确认 release APK 的签名证书与权限声明是否符合预期
- 线上包出现异常反馈,需要拿到对应版本的 AAB,核查其中是否嵌入明文密钥或硬编码令牌
- 安全合规审计时,要对已发布的 APK 做权限清单的逐项取证,并保留文件路径与证书 subject
- 手里只有包名和应用商店链接,想先拉取 APK 再做一次只读的完整安全审查
适合人员
- Flutter 应用开发者,担心 release 包的签名或权限声明在构建过程中被意外改动
- 移动端安全工程师,需要对 APK/AAB 做取证式审查,并留存可复核的证据记录
- Android 发布负责人,想在应用上架前确认产物没有被引入多余的敏感权限
- 没有专职安全岗的小团队技术负责人,想自己完成一次发布产物的安全自查