加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于Mac上签名对运行时影响的研究

(2022-11-04 17:14:01)
标签:

codesign

optionsruntime

arm64

x86_64

--master-disable

分类: 计算机与 Internet
先说基础知识
1. Intel CPU为基础的x86_64,应该永远可以没有签名时被启动(只要用户想)
2. ARM 永远需要签名正确。

最近有同事说x86_64遇到签名问题,启动运行不了,因为加载不了未签名的文件。
理论上不管可执行文件有没有签名,都应该不影响启动。
但事实不能加载,报签名错不能加载,开始考虑是服务器上自动签名,把可执行签上了entitlement。
但实际研究发现,是options=runtime的影响,加了这个就是强制所有被加载模块验证签名。
相当于强制把x86_64变成了arm64.

第二个case是,可执行完全没签名,新机器12.6报启动不了,QtCore签名不对.
我12.4,另一同事13不能重现,他们12.6一直重现。
由于是新机器,根本不是Output不能运行的问题,连Streamer也不能运行的。
原因在于,第一次启动之前需要允许未授权程序被运行,并且一个个同意未签名具体文件,这个操作通常只要做一次。
sudo spctl --master-enable
sudo spctl --master-disable
运行disable以后,可以看到App Store,可信开发者,以及AnyWhere这隐藏的第三个选项。
重新enable之后,第三选项消失,但其实已经允许。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有