OSX系统启动与后台服务

  1. OSX启动过程
    1. mac固件激活,初始化硬件,加载BootX引导器。
    2. BootX加载内核与内核扩展(kext)。
    3. 内核启动launchd(init)进程。
  2. launchd进程
    1. 开机后先加载system wide daemon;加载完成后显示登录窗口;
    2. 登录后加载per user agents;
    3. 用户启动的所有的进程实际也是有launchd加载的!!!
  3. Launch Daemon与Launch Agent
    1. 两者都是后台服务,前者是系统级的;后者是用户级的;
    2. 前者在开机时会启动,类似windows的service;而后者必须要用户登录后才会启动;
    3. Launch Daemon/Agent都是有plist文件定义的,文件是xml格式;
    4. Daemon目录:
      1. /System/Library/LaunchDaemons
      2. /Library/LaunchDaemons
    5. OSX在开机时的操作:
      1. 注册在上述目录中的plist内的port和file descriptor
      2. 执行keepAlive=true以及RunAtLoad=true的Deamon
    6. 执行完deeon之后才会显示登录对话框
    7. 登录之后执行Launch Agents
    8. Agents目录:
      1. /System/Library/LaunchAgents
      2. /Library/LaunchAgents
      3. ~/Library/LaunchAgents
    9. 其它同Deamon
    10. 附图一张,测试一下修复之后的上传功能是否正常。 
    11. 2015122210312780909335
  4. Daemon的其它知识
    1. on-daemon:
      1. 相对于keepAlive而言,它允许被杀掉;而keepalive的daemon一旦被杀,launchd又会启动;
      2. on-daemon可以绑定端口,一旦收到发送到某个端口的包,自动启动某个进程;或其它依赖的情形也有可能导致daemon被启动;
    2. 允许定时daemon
    3. 允许监视某个文件或目录
  5. LoginItem
    1. 这个相当于Windows的“启动”开始菜单;
    2. 对于使用沙盒方式运行的程序,应当使用Service Management Framework方式加载。
      1. 要求必须有两个应用,一个是主应用一个是Helper;其中Helper不是沙盒应用;
      2. helper程序存放在主程序的Contents/Library/LoginItems目录下
      3. 主程序在运行时调用SMLoginItemSetEnabled()函数来设置helper程序为自启动程序。
    3. 主程序必须在Application的目录下,开机启动的设置才会生效,否则会失败
  6. StartupItem
    1. 此方法已不推荐
    2. 它从性质上像LoginItem,但不要求必须登录,又类似于Deamon。
  7. 优秀文章:
    1. MAC服务管理(launchd)
    2. OS X那些事—恶意软件是如何启动的
Continue Reading

OSX外接机械键盘配置

最近入手了一个GS87D,摸索了一下配置。

GS87D的键盘布局与magic keyboard不太一样,最大的问题是底部的Modifier键布局不同。MagicKeyboard和内置键盘空格左侧都是FN,Ctrl,Option,Command右侧是 Command,Option。而87D则左边只有3个按键,右边则有4个,其中第2个是键盘的FN键不可重新映射的。

为了不和MAC键盘上的FN键冲突,以下GS87D键盘内置的FN键(空格右侧第二健)用FNX代替。

先尝试了键盘内置的切换ALT/WIN位置的快捷键(FNX+ALT),这样键位变成了:

Ctrl,Option,Command,Space,Option,FNX,Application(右键菜单),Ctrl。

这样看起来很恶心,首先是左右不对称,然后是没有了FN键,很多OSX上的操作都不能用了,为了解决这个问题,找到了一个相当不错的软件:Karabiner-Elements,这玩意可以映射键盘按键,并且是开源的。

先安装,有两个Application,一个是配置用的将常驻内存;一个是EventViewer。这个应用最常用的功能应该就是可以测试一下你按下的是哪个按键。

装完后我的配置如下:

这样的话,底部功能键就变成了:

Ctrl ,Option,Command,Space,Command,FNX,Option,FN。

这样一来相对内置键盘就有两个区别:

  1. FN从最左侧移动到最右侧。
  2. 右Command和右Option之间多了一个FNX键。

这两个问题都是键盘布局造成的,无法解决。

在安装步骤中有一个问题困扰了我很久,并导致内置键盘的功能键+Touchbar上虚拟按键的组合键完全失效,例如:Command+ESC,Ctrl+F4这样的都不能用。解决办法是:

  1. 在配置程序的设备页面中同时勾选No product name和Apple Internal Keyboard这两个设备(前面的勾即可),他们的VenderID应该相同,都是1452。
  2. 在配置程序的功能键页面,勾选Use all F1,F2…为标准功能键。

还有问题,如果你将键盘关机再开机,那么键位将恢复到Ctrl,Win,Alt的顺序;又要再按一次FNX+ALT来切换两个键位的位置,所以我后面干脆把左侧的两个按键也用Karabiner来重新映射而不是使用键盘内置的切换功能,一劳永逸。上图中已经体现了这个配置结果。

Continue Reading

推荐一款OSX下的截屏软件SnipPaste

一直想要一款心目中理想的截图软件:

1. 简洁快速

不要有乱七八糟的功能,加载和使用的速度快。

2. 支持截图后的标注操作,功能够用就行。

支持画框,箭头,文字,涂抹(马赛克)基本上就够用了。

3. 支持通过快捷键保存到剪贴板和文件

有两种比较常用的模式:

一)截图后立刻编辑(标注)然后保存(可通过快捷键选择进剪贴板或文件),一般截图都是这个情况。

二)截图后不需要编辑直接进剪贴板或文件。大量截图不需要标注的,这种情况比较少见,而且如果标注窗口支持快捷键的话对操作影响也很小,所以其实只需要完美的支持模式一即可。

前面用过的软件很多,主要是系统自带+SNIP。

SNIP其实也非常不错,前面我也推荐过,后面为什么改用系统的我不记得了。最近在大白软件站看到了截图软件推荐的SnipPaste就用一下试试,发现也非常不错。

 

UntitledImage

软件支持win/osx,目前osx仍是beta,官网上也没有截图。

优点:

1. 功能简洁但足够的强大;

2. 上面所有的需求都支持,同时还支持取色,这一点很好;

3. 支持多种快捷键保存方式,模式一和二都能比较好的支持。

4. 有一个很好用的paste功能:当你想要“标注”一个已经存在的图片时,从系统里复制然后paste就可以编辑了。

5. 支持很多有特色的选择操作(按像素调整选择区域)

缺点:

1. 先说最大的缺点:不支持长页面的截图,这一点确实是很大的问题,但已列入更新计划。XNIP就支持,但免费版有水印。

2. 标注界面比xnip少一个很常用的自动编号数字的功能。写操作手册时很需要。

3. 标注段选择保存为文件支持两个模式:手工保存(cmd+S)和快速保存(cmd+shift+s),前者快捷键简单但需要用户确认一次文件名,而快速保存则可以取消。建议交换这两个快捷键。不过支持另外一个快捷操作的配置:Enter/鼠标双击/中键双击的默认操作配置。可以把Enter配置成进剪贴板,双击快速保存。

4. 之前以为不支持选择控件,其实是需要开启一个配置项。

 

总结一下:

XNIP与SnipPaste我觉得都挺不错,关键功能上Xnip支持Scroll截图占优;但细节功能上后者明显更为强大。Xnip的高级功能收费(Scroll免费版有水印),SnipPaste细节功能较多且适合喜欢键盘操作的开发人员使用。SnipPaset能够快点支持Scrollfalr话就可以抛弃Xnip了,如果能够支持前面的标注自动增长序列更好。

话说我现在的截图用的是系统自带的,我完全不记得为什么放弃XNIP了:)因为不支持对TouchBar截图?

 

Continue Reading

让Chrome忽略证书检查

今天想打印社保资料,发现社保局网站已经升级,但网站使用的证书提示已被吊销(revoked),原因你懂的。

 

这个提示不像别的证书过期,域名不一致等是可以忽略的,到这就完全不能再进入这个网站了。查网上资料说Chrome有一个设置可以取消:

 

打开设置一看,木有,搜索也木有,继续放狗,找到这么一句:
https://productforums.google.com/forum/#!topic/chrome/NigLWtl3kDg;context-place=topicsearchin/chrome/authorid$3AAPn2wQcdfWeRneStHUG50nH0DvVV7fQA8jcyBszE-ZXcF6hJzxslfzwVH0zeohMQaeMDrMKzNpDt%7Csort:date%7Cspell:false

人家16年的时候就说已经取消了还是long time ago,

这里面提到了一个修改组策略的方案可以解决此问题:
https://scotthelme.co.uk/certificate-revocation-google-chrome/

 

这也是3年前的资料了,不知道准不准,不过我用的是MAC所以这个解决方案对我来说也没用,再放狗找到了这个:
http://hints.macworld.com/article.php?story=20140510112547107
其中关键的一句就是这个命令:

但是这个命令其实是不能正常执行的,因为中间有两个地方有空格,修改如下:

/Applications/”Google Chrome.app”/Contents/MacOS/”Google Chrome” –ignore-certificate-errors &> /dev/null

 

把其中两个有空格的地方括起来就能执行了,当然还有其它方法解决空格的问题。注意:你的Chrome得是安装在/Applications这个目录。

执行这个命令后,Chrome将会启动,并且在地址栏下面弹出这样的提示:

看到这个提示OK了。

Continue Reading

解决注册机不能在OS X 10.12(Sierra)不能运行的问题

很多破解机不能用了,上次遇到一个软件,打包了这个结果不记得名字了,在网上找了很久。

这两个东东分别是
Special K for Sierra Utility
Core KG-K Patcher Fix For Sierra
找了很挺久,分别对应两种常见的破解机,Patcher一下即可在Sierra上运行了。

放一个百度的链接出来,方便下载:

百度 https://pan.baidu.com/s/1c11F9KG

Continue Reading