2018/01/20

pk8 & x509.pem を jks キーストアに登録する方法

以下のように2段階の処理で可能一発で変換するツールは見つけられなかったけど、コマンドラインで処理できるのでスクリプトを書いておけばOK。

### pkcs12 キーストアファイルに登録
以下のようにして、pkcs12 形式のキーストアファイルに登録する。

`-name platform` は省略可能。省略すると `1` というエイリアスになる。

```console
`gutter: false;
$ openssl pkcs8 -in platform.pk8 -inform DER -outform PEM | openssl pkcs12 -export -in platform.x509.pem -inkey /dev/stdin -name platform -out platform.pk12
```

### pkcs12 を jks キーストアにインポートする

`-alias` と `-destalias` は省略可能。

```console
`gutter: false;
$ keytool -importkeystore -destkeystore mykeystore.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -alias platform -destalias platform
```

参考
- [how to import x509.pem pk8 file into jks(keystore)? - Stack Overflow](https://stackoverflow.com/a/40145242) - [鍵ストアファイルとアプリの署名に関する情報の整理 – iroha Tech Note](http://tech.at-iroha.jp/?p=734)

2018/01/19

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

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

2017/09/10

Vino の設定は gconftool-2 では出来ない

Ubuntu で Vino の設定をコマンドラインで行う場合、「`gconftool-2` を使う」と書いてあるサイトが沢山あるのですが、
既に `gconftool-2` は使えません。
`gconftool-2` は GNOME2 用の設定ツールなので、GNOME3 で導入された `gsettings` を使用しますUnity がベースにしている GNOME のバージョンがイマイチよくわからん…。

`gsettings` を使って、以下のように Vino を有効化することができます。

```console
`gutter: false;
$ gsettings set org.gnome.Vino enabled true
```

設定できる項目一覧は以下のように取得可能です。

```console
`gutter: false;
$ gsettings list-keys org.gnome.Vino
notify-on-connect
alternative-port
disable-background
use-alternative-port
icon-visibility
use-upnp
view-only
enabled
prompt-enabled
disable-xdamage
authentication-methods
network-interface
require-encryption
mailto
lock-screen-on-disconnect
vnc-password
```

Ubuntu 18.04 LTS からデフォルトデスクトップが Unity ではなく GNOME に戻るようなので、またいろいろ変わるんだろうなぁ。

参考
- [vino - Enable remote VNC from the commandline? - Ask Ubuntu](https://askubuntu.com/a/265012)
- [Gconf, Dconf, Gsettings and the relationship between them - Ask Ubuntu](https://askubuntu.com/questions/249887/gconf-dconf-gsettings-and-the-relationship-between-them)
- [Growing Ubuntu for cloud and IoT, rather than phone and convergence | Ubuntu Insights](https://insights.ubuntu.com/2017/04/05/growing-ubuntu-for-cloud-and-iot-rather-than-phone-and-convergence/)

2017/08/07

lib32bz2-1.0 がインストール出来ない

@ Ubuntu 16.04 LTS (64bit)

久しぶりに [Android Studio](https://developer.android.com/studio/index.html) を新規インストールしようと思ったら、`lib32bz2-1.0` がインストール出来ませんでした。

```console
`gutter: false;
$ sudo apt install lib32bz2-1.0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package lib32bz2-1.0
E: Couldn't find any package by glob 'lib32bz2-1.0'
E: Couldn't find any package by regex 'lib32bz2-1.0'
```

どうもパッケージ名が変わったというか、正式なパッケージ名にアーキテクチャをつける方式に変更になったみたいです。

参考
[apt - Unable to locate package lib32bz2-1.0 - Ask Ubuntu](https://askubuntu.com/questions/637113/unable-to-locate-package-lib32bz2-1-0#comment910010_637121)
というわけで、以下のようにすればインストールできました。 ```console `gutter: false; $ sudo apt install libbz2-1.0:i386 ``` 他の 32bit 系のパッケージでも参考になるかもしれないですね。

2017/07/07

タイルオーバーレイの x, y 座標を緯度・経度に変更する方法 (Google Maps Android API)

Google Maps Android API v2 では[タイル オーバーレイ](https://developers.google.com/maps/documentation/android-api/tileoverlay?hl=ja)が使えるようになり、独自の地図を重ねあわせたりするのに使えます。