skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
阅读:7268回复:37

是否已经无法再为传统扩展 (非webextension) 签名? 有何方法绕过?

楼主#
更多 发布于:2017-05-12 01:09
是否已经无法再为传统扩展签名? 看了些相关文档, 为传统扩展写个manifest.json就可以在AMO过签, 但涉及到 "options_ui" ("options_page") 或 "default_popup"部分, 而传统扩展根本没有这部分内容, 该如如何写, 绕过AMO检测过签, 是否俨然已经误解?
Your add-on failed validation with 3 errors.
  • Could not parse the manifest file.
  • An unexpected error has occurred.
  • Could not parse `manifest.json`.
知道了, 才发现, 需要过签扩展中的install.rdf -> unpack居然是true, 这也就是不过签的根本原因, 改为false立刻过签, 根本不需要补全manifest.json, 就说嘛这东西补进去也没什么意义, 对于非webextension扩展来说.
若单纯将unpack由true设置到false, 可以过签, 但百分之百无法在Fx上运行, 那unpack设置禁用后, 还需改对文件结构做哪些改动呢? 提供一些相关文档也行, 我也找了, 但没能直接命中关键点.

例如: Hugo Search All Tabs, Redirect Bypasser, xthunder, fastest search v3.31.1, unpack均默认为true, 在AMO过签, 就必须将unpack设置为false, 但设置禁用就无法在Fx上运行...

唉... 论坛脚本载入延迟很坑, 编辑了下, 发现内容全部被清空...
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
1楼#
发布于:2017-05-12 10:28
yfdyh000:传统扩展已不能签名。https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds 有无品牌版解除签名限制。

manifest.json 是 WebExtension...
回到原帖
是啊, 绕过签名限制倒是容易, 如unbranded builds, 或正式版用config.js.

但现在问题在于想未传统扩展到AMO签名, 目前看了些相关文档, 应该写个manifest.json就可以过签. 但涉及到"options_ui", "default_popup", 或"background", 这些部分传统扩展是没有的, 如何骗过AMO过检? 有些被南烛了...
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
2楼#
发布于:2017-05-13 01:14
yfdyh000:传统扩展加manifest.json就能骗过去?你成功过吗。没试过。

必须unpack是否取决于扩展呢,大多数扩展不需要。
回到原帖
可以骗过, 但需要补齐manifest.json中的全部内容, 但补齐后, 扩展安装在Fx上运行会出错.

还有关于unpack禁用与否, 确实取决于扩展本身, 但既然unpack设置为禁用就可以过签, 那只需解决为什么无法在Fx运行, 所以应该不是无解. 比如通过修改该扩展文件结构或其他的某些部分, 这应该比较容易做到吧?


2017.05.18
上传 传统扩展 到AMO, 扩展本身文件内容和结构符合AMO标准的情况下, install.rdf 和 manifest.json已经不能同时并存在一个xpi文件内, 同时出现则会提示"Both install_rdf and manifest.json found", 目前我这里已无法通过添加manifest.json绕过AMO检测过签, 不知道是否是个例, 但至今为止仍然可以上传传统扩展到AMO过签, 只是比以前麻烦些.
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
3楼#
发布于:2017-05-13 09:36
yfdyh000:如果只是能签名但没法用(manifest.json优先并生效),还是没骗过去嘛。回到原帖
对的, 所以已经移除manifest.json, 而仅将unpack设置到false来过签, AMO貌似除theme类以外, 不再接受unpack -> true的扩展文件被上传

随便抓几个我知道的扩展做签名测试, 从过签结果上看, AMO是针对不同扩展文件内容, 来判断检测, 与unpack启用/禁用没什么关系, 观点不成立, 再研究吧
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
4楼#
发布于:2017-05-13 23:55
白左:应该不可能开发者版本完全不让装测试扩展,只能临时加载吧……大概
比方说还有测试插件的需求?……啊不对,插件已经全部移除了

希望beta能沾FDE的光用上未签名扩展;或者既然FDE基于beta,直接用FDE也是好的,相当于名字没变,更...
回到原帖
谢谢啦, 这么出名的扩展还是知道的, 只是为了节省Fx资源, 尽量减少扩展的安装, 因为扩展+脚本+式样已经不少了, 这个扩展记下了, 认为有必要时就武装到Fx上, 再次感谢.
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
5楼#
发布于:2017-05-14 00:22
aaaa007cn:首先
install.rdf 的 unpack 相关信息看
https://developer.mozilla.org/en-US/Add-ons/Extension_Packaging
https://developer.mozilla....
回到原帖
改install.rdf的unpack或许不是bug, 因为测试了多个扩展, 不过签的原因各不相同, 有的是由于install.rdf中的内容不全, 会被系统判定为非webext扩展而无法过签, 有的是空文件所引起不能过签, 又或者因unpack所引起, 总之因素不一, 但目前有一点应该可以确定, 补全manifest.json, 并添加相关文件到扩展, 就可以过签, 但补全后的过签扩展, 能安装到Fx无法而正常运行, 就算骗过了也依然无用, 应该是install.rdf和manifest.json的优先级有冲突吧? 导致扩展不能正常运行. 所以最根本的还是传统扩展本身文件内容有不符合AMO要求, 以致于无法在AMO过签. AMO检测系统绝不是简单检测几个文件, 但也绝非无懈可击.

至于修改顶楼原帖, 因为论坛脚本载入延迟, 导致顶楼内容全部丢失, 不得不重新填写内容, 与第一次发帖内容已经不尽相同, 但问题本身没变, 摊手...
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
6楼#
发布于:2017-05-14 04:02
在这次测试过程中, 起初想找一些unpack为true的扩展, 所以, 把Foxyproxy Standard 4.6.5修改了下, 剔除了内置广告, 也过了签, 就顺手传到坛子上了, 但考虑到开发团队长期维护的艰辛, 保留了捐赠渠道, 送给需要的人吧.
下载见: 实用精品扩展分类整理 功能比对及备份 顶楼索引详细见分楼楼层 (完结) (顶楼附件)
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
7楼#
发布于:2017-05-14 17:25
aaaa007cn:反正谋智表示 53 开始不接受新的传统扩展
但是可以给同一帐号下曾经提交过的同一个传统扩展更新新的传统扩展版本
除此以外的情况都应该直接给出这个错误
https://www.firefox.net.cn/read-54228


从目前最新...
回到原帖
是的, 我在测试的扩展中都至少添加了一个targetApplication, 但有些单单添加targetApplication还不行, 例如foxyproxy. AMO现在比以前做了很多限制, 加了很多新的判定.
哦, 忘了说了, 以为options_ui, default_popup, 和background也是必备, 看来想多了, 之前已经看了很多文档, 做了很多测试, 累了, 等空了再试试

谋智确实没有完全的抛弃seamonkey, 仍然还记得它
https://github.com/mozilla/addons-server/issues/4689
嗯, 确实挺有趣的
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
8楼#
发布于:2017-05-14 17:39
fang5566:是有办法给一个不上架unlisted传统扩展添加签名的,因为amo允许给一个从webext扩展给其提交一个传统扩展版本的更新。你可以先提交通过一个最小版本的webext扩展(其实就是一个manifest.json),如上楼所说的格式,加个i...回到原帖
不用的, 我传了很多修改的自用扩展, 所以找一个就可以测试, 不过这就目前也是可行的, 在刚刚发布53, 就已经这样做过了, 不过只是又有些变化, 还得变...
P.S. 以前没有对id中的词汇做限制, 现在已经有了诸多限制了, 例如mozilla
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
9楼#
发布于:2017-05-15 00:53
fang5566:那麻烦整理一下未上架传统扩展能过签的方法。大家看了也直观回到原帖
或许回复有些凌乱, 但基本上都已经解释清楚了. AMO系统会优先检测的是扩展本身文件及结构等等是否存在问题. 而当传统扩展本身文件内容及结构符合AMO要求, 却出现"Starting with Firefox 53, new extensions on this site can only be WebExtensions."错误提示时, 则只需要在install.rdf中添加除firefox以外的targetApplication, 基本可以过检签名(留点余地, 没什么是绝对的事情).  再有可以通过添加manifest.json在AMO检测过签(条件是扩展本身符合AMO系统要求). 若有些传统扩展本身存在问题, 也能导致不过签, 诸如文件内容含有的字段, 文件编码, 文件名过长, 空文件等等(有些感觉属于玄学, 不一一赘述, AMO系统经常升级变化), 当有这些问题存在时, 基本上都是一些与manifest.json有关的错误提示, 就需要花时间去找了, 这种情况有些费精力, 推荐二分法查找会省些时间与精力.

至于原因, 007都已经解释的很清楚了, 就不再多费唇舌, 传统扩展想签名的话, 仔细看看这个帖子吧, 基本上可以解决大多无法过签的传统扩展.

哦, 还有一个小的问题有待解决, 就是关于Description. 基本扩展都会在install.rdf中的Description填写指定内容, 并在local中相对应, 当general.useragent.locale的string与语言包相吻合时, Fx会自动转译语言包中的Description, 并显示在about:addons的相应扩展说明中. 但在AMO签名过程中, 由于必须更换id, 而引发Fx(部分扩展)无法通过chrome.manifest或相关文件, 找到对应语言包中Description所指定的内容, 此时Fx会自动调用install.rdf中Description做补充. 原因就是由于更换install.rdf或manifest.json中的id所致. 理论上不应出现这种现象, 这两天折腾签名, 已经耗费了很多, 最累的就是这两扇窗户, 等休整休整再继续查找解决之道.
目前还看, 只能通过在install.rdf中添加localized指定扩展的详细说明了, 还没有更好的解决方法
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
10楼#
发布于:2018-10-19 03:24
AMO已经禁止上传传统扩展
换句话说, 线下给传统扩展签名后, 第三方分发或自用已经是不可能了吗? 是否已经无解? 给咱指条明路吧...
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
11楼#
发布于:2018-10-22 04:02
aaaa007cn:52ESR or 第三方编译 or 自行编译回到原帖
倒是完全不影响使用, 现在最主要是想签名, 我试着在传统扩展内添加manifest.json, 结果可以过检签名, 但带有manifest.json的签名后的扩展, 安装后会出现一些小的问题, amo也够决绝的, 签名自用也不允许...
游客

返回顶部