新闻详情

新闻详情

首页 / 资讯中心 / 详情

突破 Chromium 限制:Titanium Browser 实现 Manifest V2 扩展支持的源码级原理详解

发布时间:2026/10/2 12:45:34来源:尧图网络
突破 Chromium 限制:Titanium Browser 实现 Manifest V2 扩展支持的源码级原理详解
突破 Chromium 限制Titanium Browser 实现 Manifest V2 扩展支持的源码级原理详解【免费下载链接】android-titanium-browserSecure open-source Android browser with support for extensions项目地址: https://gitcode.com/gh_mirrors/an/android-titanium-browserTitanium Browser 是一款基于 Chromium 的安全开源 Android 浏览器它的最大亮点是完整支持 Manifest V2MV2扩展。在 Chrome 官方逐步封杀 MV2 的今天这个特性显得尤为珍贵。本文将带你从源码角度看懂它是怎么突破 Chromium 的限制把 MV2 扩展救活的。一、为什么 Chromium 系浏览器默认不再支持 MV2 扩展先搞懂背景。Chromium 官方正把扩展生态从 MV2 迁移到 MV3为此在代码中埋了多道闸门构建层面browser_action、page_action这些 MV2 专属 API 已从编译源列表中移除MV2 扩展装上也跑不了商店层面webstore_privateAPI 中把 MV2 的弃用状态设为kHardDisable硬性禁用安装层面manifest_v2_handler.cc里有一个总开关g_allow_mv2_for_testing默认值是false——即使前两道闸门绕过MV2 扩展依然无法启用。这三道闸门环环相扣是官方刻意设计的结果。而 README.md 中的架构流程图明确把Manifest V2 Secure Off Store Install Support列为 Titanium Browser 的核心附加补丁之一这正是本文的主角。二、源码拆解三行 sed 命令撬开 MV2 闸门整个 MV2 复活过程全部集中在 patch.sh 的# ext: mv2段落只有三处改动却个个打在要害上把 MV2 API 加回编译列表patch.sh#L71向 Chromium 的chrome/common/extensions/api/api_sources.gni中重新注入browser_action.json和page_action.json。相当于把被官方拆除的零件重新装回工厂流水线MV2 扩展的图标按钮、页面操作等核心能力才不会被编译丢掉。解除商店 API 的 MV2 硬禁用patch.sh#L72将webstore_private_api.cc中的MV2DeprecationStatus::kHardDisable改为kNone。这直接影响了从扩展商店下载安装时的兼容性判定。打开 MV2 总开关patch.sh#L73把manifest_v2_handler.cc中的g_allow_mv2_for_testing从false改为true。变量名虽然带 for_testing但它是 Chromium 内部允许加载 MV2 扩展的最终裁决点改为true后 MV2 扩展即可正常安装与运行。 值得一提的是这种基于sed的打补丁方式配合 args.gn 的构建配置无需维护庞大的 Chromium fork只需几行脚本随 Chromium 版本升级即可平滑适配——这也是项目能持续跟进最新内核的原因。三、基石配置is_desktop_android 让扩展有家可住MV2 闸门打开只是第一步。Android 版 Chrome 对扩展能力的裁剪非常多而 args.gn#L2 中的一行配置是关键is_desktop_android true这个 GN 构建参数会把浏览器按桌面级 Android对待解锁桌面版 Chrome 才有的完整扩展运行环境DevTools、权限模型、API 集合等。配合 patch.sh#L120 把_manifest_features.json中的platforms加入desktop_android扩展里声明的win/mac平台限制也能在手机上生效。patch.sh 中还有一组ext:前缀的补丁ext: toolbar、ext: popup、ext: incognito等分别解决了扩展工具栏按钮渲染、弹窗尺寸、隐身模式运行等移动端适配问题——这些细节补丁才是 MV2 扩展在手机上真正好用的保障。四、进阶机制安全加载商店外扩展Chromium 默认只信任 Chrome Web Store 下发的扩展。patch.sh#L76 在download_crx_util.cc的OffStoreInstallAllowedByPrefs中开了一个白名单口子请求来源为chrome-extension协议时放行URL 或 Referer 属于 Opera、Edge 官方商店/CDN 域名时放行。同时项目还内置了一套捆绑扩展分发机制由三个文件协作完成文件作用extensions/BUILD.gnGN 构建规则把bundled.json与.crx文件打包进 APK 的assets/extensions/目录extensions/bundle.py构建脚本下载.crx解析其头部提取扩展 ID 与版本生成/更新bundled.json索引extensions/stage_bundled_extensions.inc运行时 C 代码浏览器启动时读取bundled.json将 APK 资产中的.crx释放到扩展目录并合并进外部扩展偏好external prefs这条APK 资产 → 启动时释放 → 外部扩展注册的流水线让可信扩展可以随应用安全分发无需用户手动折腾——也就是 README.md 中所说的 Secure Off Store Install Support。五、新手上手如何在 Titanium Browser 中加载 MV2 扩展理论讲完实操非常简单加载未打包扩展进入 chrome://extensions打开右上角Developer mode点击Load unpacked在存储选择器SAF中选中扩展所在文件夹即可MV2 扩展直接可用。从商店安装打开 Chrome Web Store通过菜单按钮⋮开启Desktop site桌面站点之后像桌面端一样正常安装。隐身模式使用进入扩展管理页 → 找到扩展 →Details→ 开启Allow in Incognito。如果你感兴趣动手编译仓库提供了构建脚本克隆后按 README.md 的 Building 章节配置 CI 密钥即可产出签名版本git clone https://gitcode.com/gh_mirrors/an/android-titanium-browser结语 Titanium Browser 用不到十行核心补丁就精准撬开了 Chromium 为 MV2 设置的三道闸门恢复 API 编译、解除商店硬禁用、打开总开关再叠加is_desktop_android桌面化配置与商店外安全加载机制让 uBlock Origin 这类经典 MV2 扩展在 Android 上重获新生。对想折腾移动端扩展生态的开发者来说这个开源项目GPL-2.0 许可见 LICENSE的 patch.sh 本身就是一份极具参考价值的 Chromium 扩展机制学习材料。【免费下载链接】android-titanium-browserSecure open-source Android browser with support for extensions项目地址: https://gitcode.com/gh_mirrors/an/android-titanium-browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Android直读U盘底层实现:绕过libaums解析USB与文件系统 2026/10/2 13:27:17

Android直读U盘底层实现:绕过libaums解析USB与文件系统

1. 不靠 libaums,Android 直读 U 盘到底难在哪先别急着搜库、抄代码。这事儿得从根上讲清楚:Android 上读 U 盘,系统明明自带“OTG 文件管理”功能,插上去偶尔也能弹出提示,可一旦你想在自己的 App 里直接读取 U 盘里的…

阅读更多 →
基于DRV8818与STM32F042K6的工业步进电机控制系统设计 2026/10/2 13:27:11

基于DRV8818与STM32F042K6的工业步进电机控制系统设计

1. 为什么选 DRV8818 和 STM32F042K6 这套组合先聊一个很多人问我的问题:做步进电机控制,市面上驱动芯片一大堆,A4988、DRV8825、TB6600这些都烂大街了,为什么还要折腾 DRV8818PWPR 和 STM32F042K6 这种相对冷门的搭配&#xff1f…

阅读更多 →
Java环境监测系统源码毕业设计:Spring Boot+MyBatis实现数据采集与告警 2026/10/2 13:27:04

Java环境监测系统源码毕业设计:Spring Boot+MyBatis实现数据采集与告警

简介:这份资源是面向计算机专业学生与Java初学者的一套环境监测系统完整源码,可直接用于毕业设计、课程设计或项目练手。系统围绕空气质量、温湿度、二氧化碳浓度等环境数据的采集、处理与展示展开,采用Java语言配合MVC分层架构,后…

阅读更多 →
Zvec 向量数据库贡献指南:从源码编译、测试到提交 PR 的完整开发者流程 2026/10/2 13:27:04

Zvec 向量数据库贡献指南:从源码编译、测试到提交 PR 的完整开发者流程

向量数据库数据库嵌入式数据库 【免费下载链接】zvec A lightweight, lightning-fast, in-process vector database 项目地址: https://gitcode.com/GitHub_Trending/zve/zvec 点击查看 免费下载 Zvec 是一个内嵌式(in-process)向量数据库&a…

阅读更多 →
AI编程助手能力扩展实战:superpowers技能包机制与工程化集成指南 2026/10/2 13:26:58

AI编程助手能力扩展实战:superpowers技能包机制与工程化集成指南

1. 从“superpowers”这个标题说起:它到底是什么第一次看到“superpowers”这个词,很多人脑子里蹦出来的可能是超级英雄电影,或者是某个游戏里的技能系统。但如果你是在技术社区、代码仓库或者开发者聊天群里反复刷到这个关键词,那…

阅读更多 →
Pixelle-Video 完整教程:输入一个主题,AI视频生成只要3分钟 2026/10/2 13:26:52

Pixelle-Video 完整教程:输入一个主题,AI视频生成只要3分钟

Pixelle-Video 完整教程:输入一个主题,AI视频生成只要3分钟 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pixe…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉