前回の記事に書きましたが、有機EL 4K BRAVIAを買いました。4K!!!!!OLED!!!!!Fuuuu!!!!11111
さて最高なわけですが… もっと最高にすべく録画サーバーと連携させることにしました。
ちなみに録画サーバーに関しては現状こんな感じ。
社会にはAndroidTVでChinachuをいい感じに楽しめるKodi用プラグインがございまして。
こちらを利用していい感じにしていきます。
作者の @mzyy94氏に圧倒的感謝!!!
そんなメモ
お品書き
- BRAVIA A8F(KJ-55A8F)
- テレビです
- Chinachu
- かの有名な録画サーバーミドルウェア
- Kodi
- AndroidTVとかRaspberry Piとかをいい感じなメディアセンターにするアプリケーション
- pvr.chinachu
- Kodi上で動作するChinachuクライアント
- adb
- Androidをいじるときにはいつも必要なアレ
- Java
jarsigner
とkeytool
が必要だったんだ。まぁadbを持っている人は大抵Android Studioでも入っているでしょうし、それの辺りに入っているやつを使えば良いんじゃないかな。
- Android NDK
pvr.chinachu
のビルドに使います
- MSYS2
- 私はWindows10ユーザーなんだ。WSLでも良いかもね。
ハマった点
「Kodi Add-onをインストールするだけっしょ?余裕!」って思ってたんですけどね。 …インストールできない。ログを覗くとこんなエラーが出てました。
00:19:39.798 T:18446744071727315232 ERROR: Unable to load /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/pvr.chinachu/libpvr.chinachu.so, reason: dlopen failed: library "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/pvr.chinachu/libpvr.chinachu.so" needed or dlopened by "/data/app/org.xbmc.kodi-1/lib/arm/libkodi.so" is not accessible for the namespace "classloader-namespace" 00:19:41.985 T:18446744071727315232 ERROR: UpdateAddons - failed to create add-on Harekaze (Chinachu PVR client), status = 6 00:20:03.971 T:18446744071713397024 NOTICE: Log level changed to "LOG_LEVEL_DEBUG_FREEMEM"
なんでだろ?と思ったらAndroid 7では非公開APIを叩けないみたいですね。悲しみ。
Android N で注意すること その2 (NDKを使っているアプリ) - Qiita
ってことでapkの中に直接 pvr.chinachu
を埋め込みました。
事前準備
adb shellしてみる
「おいおい、microUSBの穴すら無いのかよ」と思いましたが、よく考えたらWi-Fiでつなげばいいんだよね。
sony - ADB connection to an AndroidTV - Stack Overflow
adb connect 192.168.0.10 adb shell
搭載されているCPU
MediaTek MT5891
が搭載されていました。
この辺りの文献を信用するならば Cortex A53 - ARMv8
辺りっぽいですね。
しかしながら armv8a
なKodiは動きませんでした…何ゆえー
調べてみたら32bitモードで動いているみたいですね。よくあるやつぅー
MT5891: 32 or 64 bit SoC? - Sony
Android NDKを得る
https://developer.android.com/ndk/downloads/?hl=ja
ビルド
ビルドしてKodiのapkに埋め込むって感じ。
ソースを持ってくる
Harekaze/pvr.chinachu: Chinachu PVR client for Kodi/XBMC
https://github.com/Harekaze/pvr.chinachu/archive/v4.0.0.zip
ビルド
上記の通りMSYS2環境下で行いましたとさ。雑にコマンドを貼り付けておきますのでお好きにどうぞ。
/c/soft/android-ndk-r16b/build/ndk-build.cmd APP_ABI=armeabi-v7a '/c/Program Files/Android/Android Studio/jre/bin/keytool.exe' -genkey -v -keystore foobar.keystore -alias fizzbuzz -noprompt -keyalg RSA -keysize 2048 -validity 20000 -keypass qwertyuiop -storepass qwertyuiop -dname "cn=hoge, ou=fuga, o=higi, c=US" wget -O /tmp/kodi-17.6-Krypton-armeabi-v7a.apk http://mirrors.kodi.tv/releases/android/arm/kodi-17.6-Krypton-armeabi-v7a.apk 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 /tmp/kodi-17.6-Krypton-armeabi-v7a.apk . zip kodi-17.6-Krypton-armeabi-v7a.apk -d META-INF/* zip -r kodi-17.6-Krypton-armeabi-v7a.apk lib -i *.so zip -r kodi-17.6-Krypton-armeabi-v7a.apk assets/addons popd cp $WORKDIR/kodi-17.6-Krypton-armeabi-v7a.apk ./ '/c/Program Files/Android/Android Studio/jre/bin/jarsigner' -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore foobar.keystore -storepass qwertyuiop kodi-17.6-Krypton-armeabi-v7a.apk fizzbuzz
インストール
単純に adb install
adb install kodi-17.6-Krypton-armeabi-v7a.apk
設定
よしなにー
Configuration · Harekaze/pvr.chinachu Wiki
動作確認
いぇーい
所感
最高に便利。最高!
参考文献
Amazon Fire TV の Kodi (64bit 環境) に pvr.chinachu を導入 - Plamo Linux 日記