首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在安装程序构建和签名之后,有什么可能修改或自定义安装程序的方法?

问在安装程序构建和签名之后,有什么可能修改或自定义安装程序的方法?
EN

Stack Overflow用户
提问于 2021-04-12 07:56:19
回答 1查看 69关注 0票数 3

我们想品牌的软件,根据客户的网站,它是从哪里下载的。例如,通过显示客户的徽标等,我们所需要的只是一个ID,软件可以在运行时处理其余的定制。

定制的数量可能很大,我们希望避免预构建和存储这些安装程序。

我愿意考虑所有的选择,特别是一些现成的想法。

我认为,如果不破坏签名,就不可能更改已签名的安装程序(exe/dmg)。

我正在玩弄一些想法(以及它们的取舍):

  • 将ID存储在安装程序下载文件名中(Con:脆性,浏览器可能更改名称或追加后缀以避免重复名称)
  • 请用户输入下载页面上显示的代码(Con:给用户带来一些不便)
  • 在它旁边提供一个带有安装程序和配置文件的zip (Con:一些用户将无法解压缩,或者只解压缩没有配置文件的安装程序)
  • 在Linux上,安装程序外壳脚本可以在下载时进行修改,如脚本不能签署。
  • 设置一个服务器,在下载请求时动态地构建和签名安装程序。为了加快速度,它可能是另一个包装主安装程序的安装程序,它的唯一任务是提取并运行带有ID参数的主安装程序。(Con:复杂的基础设施,面向公共服务器的代码签名证书,用于MacOS公证的速度非常慢)
EN

回答 1

Stack Overflow用户

发布于 2021-04-12 11:29:41

基于铬的浏览器,如Google、Chromium、Opera、Microsoft等,保存了Windows 10 (仅在NTFS文件系统上)和Linux (仅在Ext4上)下载的所有文件的来源URL和引用者URL。

有关详细信息,请参见例如这里。在Windows上,元数据也可以从命令行访问,也可以直接从Java访问。

Mac上似乎也有类似的功能。例如,请参见关于超级用户的这问题。

从安装程序中访问此元数据有助于自定义安装程序的行为。虽然数据不会在所有设置中都可用(例如Internet只存储一个区域ID而不存储URL),并且可能丢失(例如,用户删除数据或将文件复制到不支持元数据的文件系统),但它可能覆盖大多数用户。当未找到元数据时,要求用户输入代码仍可用作后盾。

我对这种方法的主要关注是,铬开发人员可能会决定在不久的将来删除这个特性,或者让它成为可选的,就像wget的开发人员一样(例如这里)。

在最新的Windows 10上,我仍然可以通过最新的Google Chrome和Microsoft Edge浏览器获得下载文件的以下元数据:

代码语言:javascript
复制
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://httpd.apache.org/
HostUrl=https://mirror.klaus-uwe.me/apache//httpd/httpd-2.4.46.tar.bz2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67054571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档