2018/01/19

PRODUCT_DEFAULT_DEV_CERTIFICATE にパスワード付き署名を設定する場合は注意

AOSP をビルドする際、デフォルトだと署名には
`build/target/product/security/` 以下にある `testkey.x509.pem` と `testkey.pk8` が使われます。
しかし、実際にリリースするデバイスには自分の署名を使うべきです。



普通は sign_target_files_apks を使いますが、`PRODUCT_DEFAULT_DEV_CERTIFICATE` を使うことも可能ということでやってみました。
(ただし、 Android 4.4!)

参考
- [Signing Builds for Release  |  Android Open Source Project](https://source.android.com/devices/tech/ota/sign_builds) - [Android keys - release keys | Cool Fish In Glacier](http://cfig.github.io/2015/10/15/signing-keys-in-android/)
### パスワード付き署名を使うとビルドが通らない まずは、パスワード無しの署名を設定してみたところ、無事ビルドが通りました。 `/system/etc/security/otacerts.zip` も正しく作成されていました。 ところが、署名にパスワード設定したところビルドが通らなくなってしまったのです。 ### `-j8` を取るしか無い? エラーを見てみると、パスワード入力を求められて終了しています。 どこかに回避策は無いかと探してみたところ、`make` の並列オプション `-j8` 8 は並列数 をとれば、パスワード入力のところで止まるよというアドバイス。 確かにそうだろうけど、このご時世に並列ビルドしないなんて。 他にも `/source/build/tools/signapk/SignApk.java` を改造してパスワードをハードコーディングすればいい。というのも。 せめて、外部ファイルからパスワードを読み込めるようにする方が良いんじゃない?
参考
- [Certificate password prompt in build - Google グループ](https://groups.google.com/forum/#!topic/android-building/3L-ZJOyWSdY)
### 結局 PRODUCT_DEFAULT_DEV_CERTIFICATE を使うのは止めました AOSP の公式サイトにも `PRODUCT_DEFAULT_DEV_CERTIFICATE` の記述は無くなっていますし昔はあった様子、使うべきではないということなのでしょう。 諸事情で `sign_target_files_apks` ではない方法を探していたのですが。

0 件のコメント: