さわっても熱くない花火

ちょっとした驚きを食べながら生きています

有機EL 4K BRAVIA + pvr.chinachu = 最高

前回の記事に書きましたが、有機EL 4K BRAVIAを買いました。4K!!!!!OLED!!!!!Fuuuu!!!!11111

yanoshi.hatenablog.jp

さて最高なわけですが… もっと最高にすべく録画サーバーと連携させることにしました。

ちなみに録画サーバーに関しては現状こんな感じ。

yanoshi.hatenablog.jp

社会にはAndroidTVでChinachuをいい感じに楽しめるKodi用プラグインがございまして。

github.com

こちらを利用していい感じにしていきます。

作者の @mzyy94氏に圧倒的感謝!!!

そんなメモ

お品書き

  • BRAVIA A8F(KJ-55A8F)
    • テレビです
  • Chinachu
    • かの有名な録画サーバーミドルウェア
  • Kodi
    • AndroidTVとかRaspberry Piとかをいい感じなメディアセンターにするアプリケーション
  • pvr.chinachu
    • Kodi上で動作するChinachuクライアント
  • adb
    • Androidをいじるときにはいつも必要なアレ
  • Java
    • jarsignerkeytool が必要だったんだ。まぁ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が搭載されていました。 f:id:yanoshi:20180914014002p:plain

この辺りの文献を信用するならば Cortex A53 - ARMv8 辺りっぽいですね。

Sony Bravia 4K GB performance in GFXBench - unified graphics benchmark based on DXBenchmark (DirectX) and GLBenchmark (OpenGL ES)

しかしながら 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

動作確認

いぇーい f:id:yanoshi:20180914014212p:plain f:id:yanoshi:20180914014221p:plain

所感

最高に便利。最高!

参考文献

Amazon Fire TV の Kodi (64bit 環境) に pvr.chinachu を導入 - Plamo Linux 日記

メモ: Kodiの日本語化

「Kodi」の言語を日本語に設定する方法