JKS形式のキーストアからPKCS #8形式の秘密鍵とPEM形式のX.509証明書を取り出す

通常、APKファイルの署名にはJKS形式のキーストアを使う。一方、Androidプラットフォームのビルド時にAPKファイルへ署名するときは、PKCS #8形式の秘密鍵とPEM形式のX.509証明書が必要になる。次のようにすると、JKSキーストアから必要なファイルへ変換することができる。


$ keytool -importkeystore -srckeystore keystore -destkeystore keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcalias alias -destalias alias -noprompt
$ openssl pkcs12 -in keystore.p12 -out keystore.pem
$ openssl pkcs8 -topk8 -in keystore.pem -outform DER -out privatekey.pk8
$ openssl x509 -inform PEM -in keystore.pem -outform PEM -out cert.x509.pem
$ signapk cert.x509.pem privatekey.pk8 unsigned.apk signed.apk

Terminal IDEでgit-flowを使う

Terminal IDEgit-flowをインストールしたときのメモ。

Terminal IDEのgitはhttps://のレポジトリをクローンできないので*1ブラウザーなどでgit-flowとshFlagsをダウンロードして、作業ディレクトリに展開する*2

$ unzip /sdcard/Download/gitflow-0.4.1.zip
$ unzip /sdcard/Download/shFlags-1.0.3.zip

Androidのshは/system/bin/shなので、git-flowスクリプトを変更する。

$ nano gitflow-0.4.1/git-flow
diff --git a/git-flow b/git-flow
index fa87e71..361158b 100755
--- a/git-flow
+++ b/git-flow
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/system/bin/sh
 #
 # git-flow -- A collection of Git extensions to provide high-level
 # repository operations for Vincent Driessen's branching model.

gitflow-shFlagsのリンクを張り直す。

$ cd gitflow-0.4.1/
$ rm gitflow-shFlags
$ ln -s ../shFlags-1.0.3/src/shflags gitflow-shFlags

Terminal IDEに入っているgetoptは引数無しの時1を返すので、次のようにgitflow-shFlagsを修正する。

$ nano gitflow-shFlags
diff --git a/src/shflags b/src/shflags
index f69928e..9639cf6 100644
--- a/src/shflags
+++ b/src/shflags
@@ -119,6 +119,7 @@ __FLAGS_GETOPT_VERS_BSD=2
 getopt >/dev/null 2>&1
 case $? in
   0) __FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_STD} ;;  # bsd getopt
+  1) __FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_ENH} ;;
   2)
     # TODO(kward): look into '-T' option to test the internal getopt() version
     if [ "`getopt --version`" = '-- ' ]; then

$HOME/local以下にgit-flowをインストールする。

$ make prefix=$HOME/local install

正しくインストールされていることを確認する。

$ type git-flow
git-flow is /data/data/com.spartacusrex.spartacuside/files/local/bin/git-flow

$ git flow help
usage: git flow 

Available subcommands are:
   init      Initialize a new git repo with support for the branching model.
   feature   Manage your feature branches.
   release   Manage your release branches.
   hotfix    Manage your hotfix branches.
   support   Manage your support branches.
   version   Shows version information.

Try 'git flow  help' for details.

*1:AIDE有料オプションAgitでは可能。

*2:ZIPファイルのあるディレクトリはダウンロードに使ったソフトウェアによって異なる。

FreeBSDでRedmineを動かす(FreeBSD+nginx+thin+Redmine+SQLite3)

 前回nginxとRedmineのインストールが終わったので、引き続き、設定に移る。

 Redmineredmineアカウントで動かすので*1、まず、redmineユーザーとredmineグループを作成しておく。

*1:portsでインストールしたときのデフォルト設定ではwwwアカウントが使われる。

続きを読む

FreeBSDにRedmineをインストール(FreeBSD+nginx+thin+Redmine+SQLite3)

 これまでRedmineを動かしていたPCのディスクがクラッシュしてしまったので、別のPCにFreeBSDRedmineをインストールし直すことにした。

 今回の環境は、次の通り。

続きを読む

情熱プログラマー

 『情熱プログラマー*1』という本を読んだ。「ソフトウェア開発者の幸せな生き方」という副題が示しているように、ソフトウェア開発者として幸せな人生を送ることをテーマにしたエッセイ集だ。同じ著者による2006年の『My Job Went To India オフショア時代のソフトウェア開発者サバイバルガイド』を改訂改題したもので、一部内容が重複しているらしい(自分は『My Job〜』を読んでいないので、詳しくは分からない)。印象深かったエッセイのタイトルをいくつか挙げてみよう。

*1:Chad Fowler著 でびあんぐる監訳『情熱プログラマーオーム社, 2010

続きを読む

ソフトバンクモバイルでプラス記号つきの国際電話発信が可能に

 DialerJPDialerのようなツールが不要になったのは嬉しいことである。

 一週間ほど前に、ソフトバンクモバイルから『iPhoneにおける「+」キーの国際電話発信操作を対応開始』という発表があった。同社のウェブサイトによると、iPhoneのみでなく3Gケータイ全機種でプラス記号を使った国際電話発信が2010年3月1日から可能になったようである*1。筆者も実際に試してみて、変換操作なしにプラス記号で始まる国外への発信ができることを確認した。一方、日本国内への電話を「+81」で始まる形式で発信することはできなかった。

 ドコモでの対応状況も調べてみた。いつからそうなっているのか不明だが、国内国外を問わず、変換操作なしにプラス記号で始まる電話番号へ発信することができた。