Help us understand the problem. What is going on with this article?

macOSアプリにオレオレ再署名する(e.g. 夜フクロウを省電力に改造してみる)

More than 3 years have passed since last update.

macOSのアプリケーション署名の仕組み

ぶっちゃけまだそんなに理解してない。
Androidと似たような感じだということ、標準でコマンドが用意されていて簡単にできることはわかった。

Code Signing Tasks

署名は基本的にcodesignコマンドで行える。manページも用意されているのでそれを見たほうが早いかも。

再署名の必要性

文章を書くのが面倒くさいので経緯は箇条書きで...

  1. Twitterクライアントである夜フクロウが複数GPU搭載のmacにおいて自動切替に対応していない(Info.plistに対応の記述がない)
  2. そのせいで起動するたびにディスクリートGPUが叩き起こされる
  3. 驚異的なバッテリー消費
  4. やばい
  5. でも夜フクロウ使いたい
  6. Info.plist書き換えればいけそう
  7. いけた
  8. けど署名が無効になっているので暗号化されたファイルを復号化できなくなった
  9. 起動するたびに再ログインを求められる
  10. めんどくさい
  11. 再署名したらいいんじゃね?

夜フクロウのInfo.plistの書き換えによるGPU切替対応(偽装)の方法はブログの方に書きました。

再署名しよう

実際に再署名をしていきます。

署名用の証明書を作る

  1. キーチェーンアクセス を開きます。
  2. キーチェーンアクセス > 証明書アシスタント > 証明書を作成をクリックします。 スクリーンショット 2016-11-22 23.13.42.png
  3. 好きな名前をつけ、証明書のタイプでコード署名を選択します。 スクリーンショット 2016-11-22 23.19.08.png
  4. 警告されるのでちゃんと意味を理解してから続けるをクリックします。 スクリーンショット 2016-11-22 23.19.12.png
  5. 署名用の証明書ができます。

署名する

実際にアプリに署名していきます。

  1. ターミナル(シェル)を開き、再署名したいアプリケーションのあるディレクトリに移動します。
  2. codesign --force --deep-verify --verbose --sign "<さっきつけた好きな名前>" <アプリケーション>.app

ex) codesign --force --deep-verify --verbose --sign "zeriyoshi-modified-apps" Night\ Owl.app/
スクリーンショット 2016-11-23 0.32.12.png
3. 完成

その他

  • 一度でもそのアプリを使ったことがあるならば、改造をする前にAppCleaner等で設定ファイルもろとも完全に削除した後、一度再起動してからインストール、改造、再署名としたほうが安全
  • MBP2016のTouchBarはスクリーンショットの撮影にはすごく便利だと思いました
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした