Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Amazon Fire TV の Kodi (64bit 環境) に pvr.chinachu を導入

先日,Amazon Fire TV を購入して Kodi をインストールするところまでを書きました.

その後,pvr.chinachu をインストールしたのでその手順を自分の備忘録をかねて書いておきます.ここでは pvr.chinachu がどういったツールかなどの詳細説明はしていません.単純にインストール方法だけを書いています.pvr.chinachu などの詳細が知りたいときには https://chinachu.moe, https://harekaze.org などを参照してください.

最初に,ちょっとした話.pvr.chinachu ですけど,気がつかなかったですがバイナリも配布されていたんですね.てっきり自分でビルドしないとダメだとばかり思っていました.最初にバイナリをためしてみてダメそうなら自分でビルドするようにした方が良いかと思います.バイナリの最新版は https://github.com/Harekaze/pvr.chinachu/releases/download/v4.0.0/pvr.chinachu.4.0.0-multiarch.zip のあたりかな.で,Fire TV の場合ですけど,64bit Kodi を使う場合には.このバイナリは使えませんでした.はい.Kodi の 32bit 版を使えば使えるのかもしれないですけど,私自身は未チェックです.

ということで,最初に pvr.chinachu のビルド環境を整えましょう.Android NDK が必要になりますので,入ってない場合にはインストールします.https://developer.android.com/ndk/index.html?hl=ja からダウンロードしてインストールしましょう.zip ファイルなので,解凍して path を通すだけで良いかと思います.

次,必要となる Kodi のダウンロード.Amazon Fire TV では 64bit CPU を使っているので,Android 用の 64bit バージョンをダウンロードします.最新版は http://mirrors.kodi.tv/releases/android/arm64-v8a/kodi-17.3-Krypton-arm64-v8a.apk のあたりかな.32bit バージョンでも動作するかと思いますけど,わざわざ 32bit を選ぶ理由もないと思うので私は 64bit を使っています.32bit 版を使う場合には適宜,下記の記述の arm64-v8a を armeabi-v7a に読み替えてください.一応,ユーザーディレクトリの Download 以下にダウンロードした物として下記は説明します.

で,pvr.chinachu のビルド.少し試した感じでは pvr.chinachu 単体をビルドして zip を作成し,Kodi 上からインストールしてもまともに動作しませんでした.ということで,https://github.com/Harekaze/pvr.chinachu/wiki/android-installation に沿って Kodi の apk 自体を作り直します.

最初に下記の shell スクリプトを作成します.名前は mkapk.sh とでもしておいてください.KEYSTORE, ALIAS, PASSWORD の箇所は適宜修正してください.また,APKURL の箇所は先ほどダウンロードした Kodi の apk の場所を設定してください.下記の shell スクリプトのコマンド内容は基本的に pvr.chinachu のホームページのドキュメントの通りですけど,若干,使いやすいように修正してあります.

ndk-build APP_ABI=arm64-v8a

KEYSTORE=foobar.keystore
ALIAS=fizzbuzz
PASSWORD="qwertyuiop"
P=`pwd`

keytool -genkey -v -keystore $KEYSTORE -alias $ALIAS -noprompt -keyalg RSA \
    -keysize 2048 -validity 20000 -keypass $PASSWORD -storepass $PASSWORD \
    -dname " cn=$RANDOM, ou=$RANDOM, o=$RANDOM, c=US"

APKURL="/Users/hoge/Downloads/kodi-17.3-Krypton-arm64-v8a.apk"

FILENAME="${APKURL##*/}"

set -eux
WORKDIR=$(mktemp -d)
cp -r libs $WORKDIR/lib
cp -r template $WORKDIR/addons
cp ChangeLog.txt $WORKDIR/addons/pvr.chinachu/
cp LICENSE $WORKDIR/addons/pvr.chinachu/
pushd $WORKDIR
mkdir assets
mv addons assets/

cp $APKURL .
zip $FILENAME -d META-INF/*
zip -r $FILENAME lib -i *.so
zip -r $FILENAME assets/addons
cp $FILENAME $P

popd
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore $KEYSTORE \
    -storepass $PASSWORD $FILENAME $ALIAS

これで準備が整いましたので,下記コマンドを実行して pvr.chinachu を clone して pvr.chinachu が同梱された Kodi を作ります.

# git clone https://github.com/Harekaze/pvr.chinachu
# cd pvr.chinachu
# ../mkapk.sh

実行するとカレントディレクトリに,kodi-17.3-Krypton-arm64-v8a.apk が出来ていますので,これを Amazon Fire TV にインストールします.インストール方法は「Amazon Fire TV Stick を DLNA 対応メディアプレーヤーにするため kodi をインストール」などを参考にしてください.あ,すでに Kodi がインストールされているとインストールに失敗するかもしれませんので,あらかじめ入っている Kodi は uninstall しておいてください.uninstall も adbLink 上から出来ます.「Uninstall APK」から Filer で kodi で検索して出てきたパッケージを削除すれば良いでしょう.

toshi-mtk.hatenablog.com

これで,インストールは終了.

この状態で,pvr.chinachu がインストールされた状態になっていますので,「アドオン」>「Myアドオン」>「PVRクライアント」>「Harekaze (Chinachu PVR client)」から設定を行って起動すれば使えるようになります.

繰り返しになりますが,上記は 64bit 版の記述になります.32bit 版は arm64-v8a を armeabi-v7a に読み替えてください.ただし,私自身は試していないのでそれだけでオッケーかどうかは不明です.ごめんなさい.

また,私が試したビルド環境は Mac です.Linux だと上記のままいけそうですけど,Windows の場合は...よく分かりません.ごめんなさい.Windows でも bash を使えばそのままでいけるのかな?

あと,pvr.chinachu のドキュメントに Kodi をパッケージングし直す方法の他に,ライブラリの .so を move する方法も書かれていますが,root 化が必要です.普通にやるとパーミッションがないって怒られるかと思います.なので,Kodi の再パッケージングを選択しています.

これで Fire TV でテレビも見えるようになりました.完璧ですね.けど...以下自粛.:-)

ざっとこんな感じです.参考まで.

Amazon Fire TV
Amazon
Amazon