radikoのAndroidアプリが起動しなくて困る

radikoというラジオをPCやスマートフォンで視聴できるサービスがあります.

スマートフォンを初期化したのでAndroid版の公式アプリを導入して起動しようとするとすぐに終了してしまいました.
地域判定中のメッセージのあと終了してしまいます.

FAQに何か載っていないか探してみました.

音声が途切れる、繋がらない(Android) | radiko.jp ヘルプ

一時的な回線の混雑や聴取場所のネットワークの状態(キャリア回線およびWi-Fi)、通信業者のパケット制限の影響等の原因が考えられます。
以下をお試しください。
・端末の再起動
・アプリケーションのバージョンアップ、または削除/再インストール
・地域判定オプションのチェックをすべて外す(変更する)
・バッファの設定時間の変更
・聴取場所やインターネット回線を変えて再接続
上記で解消しない場合は、「設定」→「アプリケーション(アプリ)」→「アプリケーション一覧」→「radiko.jpforAndroid」→「データを消去」をお試しください。

設定変更は設定画面にたどり着けないので無理ですがその他のは全部試しましたがやはりダメです.
こんな動き.

検索するとroot取得端末だとこういう動きになるようです.しかしこの端末はroot取得していません.
ふとアプリケーション一覧を眺めていると SuperSU が.このアプリケーションはroot取得後に利用するアクセス管理ツールなので関係ないだろうと思いながら削除してみるとradikoアプリが利用できるようになりました.
SuperSU – Google Play の Android アプリ

ということで,radikoアプリはroot取得端末じゃなくてもroot関連のアプリがあるとroot取得端末と判断して起動失敗することがあるようです.
恐らく録音などが出来ないようにroot環境で動かないようにしたいんでしょうけどはじめからroot取得済みで売られている端末などもあるし,少なくともPCでは録音は結構簡単に出来る(radigoとか)ので不便になるだけな感じも…….
ちなみにNHKラジオのらじる★らじるはSuperSUのある状態で動作しました.

バージョン情報

  • radikoアプリのバージョン 6.3.0

  • Android OSのバージョン 5.1.1(とてもとても古い……)

Android端末をLinuxのタッチパッド替わりにしたい(Bluetooth利用のBlink)

最近またポインティングデバイスにApple Wireless Trackpadを利用するようになりましたが持ち運びには少し嵩張ります.マウスを持ち運ぶのもかさばります.
Ubuntu TouchでHDMI接続時にタッチデバイスになるというのを見てAndroid端末をタッチデバイスにすることが出来るのでは?それなら荷物増え無いしいいかもと思って少し調べてみました.

BlinkはBluetooth接続かつPC側でデーモンを動かす必要があります.
先ずBluetoothペアリングをしておき,PC側でデーモンを導入します.

  • 必要パッケージの導入

$ sudo apt install bluez python-bluez xdotoolsudo apt-get install bluez python-bluez xdotool
  • デーモンの導入

$ git clone https://github.com/drpain/blink-server.git ~/.blink

以下のようにしてデーモンを起動するのですが,この記事を書いている時点でのDebian stretch testing amd64では以下のようなエラーとなります.

$ sudo ~/.blink/bluetooth_server.py
Traceback (most recent call last):
  File "/home/mk/.blink/bluetooth_server.py", line 25, in <module>
    profiles         = [ SERIAL_PORT_PROFILE ]
  File "/usr/lib/python2.7/dist-packages/bluetooth/bluez.py", line 176, in advertise_service
    raise BluetoothError (str (e))
bluetooth.btcommon.BluetoothError: (2, 'No such file or directory')

GuihubのHELPを参考に*/etc/bluetooth/main.conf*を以下のように修正します.

diff --git a/bluetooth/main.conf b/bluetooth/main.conf
index 372fd8c..2f7cc4a 100644
--- a/bluetooth/main.conf
+++ b/bluetooth/main.conf
@@ -64,6 +64,9 @@
 # 'false'.
 #FastConnectable = false

+# "drpain/blink-server: This is the server you would need to be able to run the Blink Android Application." https://github.com/drpain/blink-server
+DisablePlugins = pnat
+
 #[Policy]
 #
 # The ReconnectUUIDs defines the set of remote services that should try

設定を反映するためにbluetoothdを再起動してサーバを再起動します.

$ sudo service bluetooth restart

サーバは要rootのようです.
この状態でAndroid側からクライアントPCを選択して接続すればok.

$ sudo ~/.blink/bluetooth_server.py
READY FOR CONNECTIONS, RFCOMM channel 1
('INBOUND CONNECTION ', ('68:76:4F:3B:D1:E0', 1))
COMMAND RECEIVED [{"action":"mouse-move","x":null,"y":null}]
['xdotool', 'mousemove_relative', '--', 'None', 'None']
COMMAND RECEIVED [{"action":"mouse-move","x":-1,"y":0}]
['xdotool', 'mousemove_relative', '--', '-1', '0']
COMMAND RECEIVED [{"action":"mouse-move","x":0,"y":0}]
['xdotool', 'mousemove_relative', '0', '0']
COMMAND RECEIVED [{"action":"mouse-move","x":-1,"y":0}]
['xdotool', 'mousemove_relative', '--', '-1', '0']

上の方のモード切替スイッチをタップして規定の「Swipe Area」から「Mouse」にします.「Mouse Area」で操作するとxdotoolのログが大量に出つつ操作できます.

27629912281 e0ba729509 n
27094267013 3fb8577a76 n

操作は少し解りづらくてこんな感じです.

  • タップ→左クリック

  • タップ, ホールド, リリース → 右クリック

中クリックやドラッグは多分未実装で使えません.
カーソル移動はちらつきますがとりあえず使える感じです.

でも導入に要設定変更&要rootなのが面倒ですね.

PulseAudioでライン入力を使う

PCの熱が辛い

最近暖かくなってきました.NotePCにあまり仕事をさせていなくてもCPU温度は65~75度くらい.

$ acpi -ti
Thermal 0: ok, 71.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 99.0 degrees C

Flash動画をブラウザ経由で再生すると初めのうちはそうでもないけどすぐに130%くらいCPUを使ってPCの動作重く&CPU熱くなります(特にニコ生TS).そして最近は100度を超えてシャットダウンしてしまうように.

  • 再生初め

$ top -bn1 | grep -A 3 PID
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
21114 mk        20   0 1114852 214732 103616 S  43.8  1.3   0:13.54 plugin-containe
22343 mk         9 -11  588044  12992   9416 S  12.5  0.1   1:30.03 pulseaudio
 3816 mk        20   0  561012 172172 147924 S   6.2  1.1   1:51.02 Xorg
  • 暫く経ったら

$ top -bn1 | grep -A 3 PID
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
21114 mk        20   0 1168452 241256 125892 S 147.1  1.5   2:12.09 plugin-containe
25291 mk        20   0   43820   3936   3176 R  17.6  0.0   0:00.03 top
 3816 mk        20   0  574540 171532 146696 S  11.8  1.1   2:08.95 Xorg

※plugin-containeがpepperflashのプロセス.

pepperflashをAdobe Flash Playerに変更するとましになったような気もしましたがよくクラッシュする&スクリーンセーバ自動抑制機能などもないようなのでちょっと使いづらいです.

$ sudo update-alternatives --config flash-mozilla.so
alternative flash-mozilla.so (/usr/lib/mozilla/plugins/flash-mozilla.so を提供) には 2 個の選択肢があります。

  選択肢    パス                                                                          優先度  状態
------------------------------------------------------------
* 0            /usr/lib/browser-plugin-freshplayer-pepperflash/libfreshwrapper-flashplayer.so   70        自動モード
  1            /usr/lib/browser-plugin-freshplayer-pepperflash/libfreshwrapper-flashplayer.so   70        手動モード
  2            /usr/lib/flashplugin-nonfree/libflashplayer.so                                   50        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:

スマホやChromeCastで動画再生を試みる&PC経由でBluetoothヘッドセットで音声を聞きたい

スマホやChromeCastで再生して外部ディスプレイに映すようにしたらどうだろうと試してみるとニコニコ動画/生放送は画質が悪くなってしまうけど他のサービスでは良さそうです.しかし音声をBluetoothヘッドセットで聞きたいです.それもPCと一緒に.
ということで,以下のような接続を試してみました.PC(Debian)でのBluetoothはblueman-appletを,音声デバイスの切り替えなどはpavucontrolを,Bluetooth音声のプロファイルはA2DPを利用しています.

  • ○ Android → Bluetooth → PC(Debian) → Bluetooth HeadSet

  • ○ iOS → Bluetooth → PC(Debian) → Bluetooth HeadSet

  • ✘ Android → 3.5mmライン → PC(Debian) → Bluetooth HeadSet

  • ✘ iOS → 3.5mmライン → PC(Debian) → Bluetooth HeadSet

  • ✘ ChromeCast → HDMI → HDMIモニタ → 3.5mmライン → PC(Debian) → Bluetooth HeadSet

Bluetooth ではうまく行くのですが,3.5mmライン入力がうまく行きません.ChromeCastはBluetoothが使えないのでちょっと困ります.
ライン入力の波形は出ているしレコーダアプリでラインからの音の録音は出来るのでPCに音は流れてきているようです.

以下のFAQページによると`module-loopback`モジュールを読み込むと良いようです.

以下のようにすると反映されてライン入力からの音が出るようになりました.

$ pactl load-module module-loopback

ログアウトすると設定は消えるので以下の辺りの設定ファイルに書いておくと良さそうです.

$ man default.pa|grep -A5 'SYNOPSIS'
SYNOPSIS
       ~/.config/pulse/default.pa

       /etc/pulse/default.pa

       /etc/pulse/system.pa

/etc/pulse/default.pa~/.config/pulse/default.pa にコピーして編集してPulseAudioを再起動して反映出来ました.

$ mkdir -p ~/.config/pulse
$ cp /etc/pulse/default.pa ~/.config/pulse/default.pa
$ vi ~/.config/pulse/default.pa
$ diff /etc/pulse/default.pa ~/.config/pulse/default.pa
167a168,170
>
> # 3.5mm Juck In
> load-module module-loopback
$ /usr/bin/pulseaudio -k
$ /usr/bin/pulseaudio --start --log-target=syslog

再起動しても問題無さそうです.
とりあえずこの状態でライン入力からの音声とPCの音声が同時にBluetoothヘッドセットで聞ける状態になりました.

しかし問題点がひとつ.ライン入力とBluetooth(A2DP)入力を同時に行おうとするとライン入力の音が聞こえなくなってしまいます.これは要調査ですね…….

<追記>

~/.config/pulse/default.pa の以下をコメントアウトで行けてるよう.これ出力側だけかと思ってたんですが入力も効くんですかね.

> #load-module module-switch-on-connect

てことでライン入力とBluetooth入力とPCの音声が全部同時に出力できるようになりました :)

</追記>

環境

Linux環境でAndroidアプリを利用できるShashlikを試す

Linuxデスクトップ環境でAndroidアプリを利用できるShashlikを試してみました.
Shashlikを導入してAndroidパッケージの.apkを導入すると通常のLinuxアプリケーションのように呼び出せるというものです.
ただし,.apkはx86サポートのものでないといけないようです.
現在は0.9.1が最新で,Kubuntu(KDE Plasma 5)向けとなっています.

以下はShashlikを使ってFlappy Birdが動いている動画です.

Shashlikの導入

今は.debが配布されているのでこれをダウンロードして導入します.入手場所は以下のページから.140MBと結構大きいです.

$ wget http://static.davidedmundson.co.uk/shashlik/shashlik_0.9.1.deb
$ sudo dpkg -i shashlik_0.9.1.deb

/opt/shashlik以下に導入されます.qemuで動くみたいですね.

$ dpkg -L shashlik
/.
/opt
/opt/shashlik
/opt/shashlik/android
/opt/shashlik/android/emulator-user.ini
/opt/shashlik/android/system
/opt/shashlik/android/system/build.prop
/opt/shashlik/android/config.ini
/opt/shashlik/android/kernel-qemu
/opt/shashlik/android/system.img
/opt/shashlik/android/ramdisk.img
/opt/shashlik/android/userdata.img
/opt/shashlik/bin
/opt/shashlik/bin/aapt
/opt/shashlik/bin/ddms
/opt/shashlik/bin/shashlik-install
/opt/shashlik/bin/bios.bin
/opt/shashlik/bin/constants.py
/opt/shashlik/bin/shashlik-run
/opt/shashlik/bin/adb
/opt/shashlik/bin/vgabios-cirrus.bin
/opt/shashlik/bin/emulator64-x86
/opt/shashlik/data
/opt/shashlik/data/shashlik-apps.directory
/opt/shashlik/data/shashlik.png
/opt/shashlik/lib
/opt/shashlik/lib/libc++.so
/opt/shashlik/lib64
/opt/shashlik/lib64/lib64GLES_V2_translator.so
/opt/shashlik/lib64/lib64EGL_translator.so
/opt/shashlik/lib64/lib64OpenglRender.so
/opt/shashlik/lib64/libGLES_V2_translator.so
/opt/shashlik/lib64/lib64GLES_CM_translator.so
/opt/shashlik/lib64/libGLES_CM_translator.so
/opt/shashlik/lib64/libEGL_translator.so
/opt/shashlik/lib64/libut_rendercontrol_dec.so
/opt/shashlik/lib64/libOpenglRender.so

Androidアプリのパッケージを入手

Shashlikの上で動かすAndroidアプリのパッケージを入手します.

Once installed grab any Android application package (APK) from the net.
For example our favourite app, Flappy Bird, can be found here: http://beste-apps.chip.de/android/app/flappy-bird-apk-android-app,cxo.66885070/

ということでここからFlappy Birdを入手しました.

Androidアプリの導入

shashlik-installコマンドを使ってAndroidアプリを導入します.

$ /opt/shashlik/bin/shashlik-install ~/Downloads/com.dotgears.flappybird.apk
Successfully installed Flappy Bird
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
kbuildsycoca4 running...
kbuildsycoca4(19354) VFolderMenu::loadDoc: Parse error in  "/home/mk/.config/menus/applications-merged/xdg-desktop-menu-dummy.menu" , line  1 , col  1 :  "unexpected end of file"
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
Successfully installed Flappy Bird

20160222_17:02:57-19417
これでKDE Plasma 5環境ならスタートメニューに登録されるはずです.

ちなみに,x86じゃない.apkを導入しようとするとこんな感じで怒られました.
20160222_18:02:13-5944

Androidアプリの起動

KDE Plasma 5環境ならスタートメニューに登録されているはずですが,今の環境はawesomeなのでメニューに出てきません.
コマンドラインから起動します.

$ /opt/shashlik/bin/shashlik-run com.dotgears.flappybird FlappyBirds

起動にはそこそこ時間がかかります.

20160222_18:02:35-30707
20160222_18:02:52-31990
20160222_18:02:15-344

起動した後はもたつきなどもなく普通に動く感じです.
ただ,真っ黒な画面のままで起動に失敗することがあります.起動が速くなって安定して動くようになるととても便利そうです.

しかし問題は.apkの入手先ですね.PlayStoreが使えないと苦労しそうです.


Android の Google Authenticator のデータをダンプしてバックアップする

Android の Google Authenticator 色々な認証に使えて便利ですが,以前 Nexus5 を紛失した時や LGL22 でデータが飛んでしまった後復旧が面倒でした.どうにかバックアップが取れないかなと調べてみました.

Android からデータを取得

/data/data/com.google.android.apps.authenticator2/databases/databases がデータが格納されているファイルらしいです.
adb pull で持ってきたいけど権限がないので一旦 /storage/sdcard0/ に cp する

% adb shell
shell@g2:/ $ su
root@g2:/ # cp /data/data/com.google.android.apps.authenticator2/databases/databases /storage/sdcard0/

ローカルPC に退避

% adb pull /storage/sdcard0/databases .

/storage/sdcard0/ に cp したデータを消す.暗号化領域の下のはずだけど一応上書きしてから削除

% adb shell
shell@g2:/ $ su
root@g2:/ # ls -l /storage/sdcard0/databases
-rw-rw---- root     sdcard_r    16384 2015-10-09 22:51 databases
root@g2:/ # head -c 16384 /dev/random > /storage/sdcard0/databases
root@g2:/ # head -c 16384 /dev/random > /storage/sdcard0/databases
root@g2:/ # head -c 16384 /dev/random > /storage/sdcard0/databases
root@g2:/ # head -c 16384 /dev/random > /storage/sdcard0/databases
root@g2:/ # head -c 16384 /dev/random > /storage/sdcard0/databases
root@g2:/ # head -c 16384 /dev/random > /storage/sdcard0/databases
root@g2:/ # rm /storage/sdcard0/databases
root@g2:/ # ^D
shell@g2:/ $ ^D

データ形式を確認してdump

該当ファイルは file コマンドによると SQLite3 のようなので dump してみる

% file ./databases
./databases: SQLite 3.x database
% sqlite3 ./databases
SQLite version 3.8.11.1 2015-07-29 20:00:57
Enter ".help" for usage hints.
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE android_metadata (locale TEXT);
INSERT INTO "android_metadata" VALUES('ja_JP');
CREATE TABLE accounts (_id INTEGER PRIMARY KEY, email TEXT NOT NULL, secret TEXT NOT NULL, counter INTEGER DEFAULT 0, type INTEGER, provider INTEGER DEFAULT 0, issuer TEXT DEFAULT NULL, original_name TEXT DEFAULT NULL);
 :

ここで取得した PRIMARY KEY を HOTP TOKEN を割り出す script の "google-authenticator.py に食わせると Android App と同じコードが帰ってくるのを確認しました.勿論普通に認証も可能.

IMG_20151010_012917

ということで要root ですが, /data/data/com.google.android.apps.authenticator2/databases/databases を退避して他の端末に持って行っても動作するかも.少なくとも PRIMARY KEY は入手できるので手動で入力すれば OK ですね.
とはいえ端末紛失時には作りなおしたほうが良いでしょうが.

root が取れない場合は登録時に PRIMARY KEY をメモしておくくらいですかね.QR Code だけしか見えない場合は Google Authenticator に食わせる前に別のリーダーを利用したりすれば可能です
例えば以下のような読み取り内容の場合 6QHI5WW6H3FMJ2ZI が PRIMARY KEY です.

otpauth://t│·········· otp/mk@micro?secret=6QHI5WW6H3FMJ2ZI

Android の所謂Stagefright 問題対応を試す

てことで暫く運用して問題なさそう&思ってたより対応遅そうなのでこちらにもメモ.
所謂Stagefright 問題.

メディアプレイヤーフレームワーク Stagefright に欠陥があり,メディアファイルにより任意のコードが実行可能.対象はAndroid 2.2(Froyo) 以降全てと幅広い.(なお,95%のAndroid が対象らしい.逆に2.1以前が 5% もあるのに驚いたり)
MMS 経由で攻略メディアファイルを送信してユーザの操作なしに乗っ取り可能.日本ではMMS が利用できる環境は少ないけれどこのパターンは気づかないうちに乗っ取られるのがとても怖い.

脆弱性の確認は以下のアプリでも可能.

対策はAndroid 5.1.1_r5 にする,Google が各端末メーカに提供したパッチを配布したのでそれがリリースされるのを待って適用する.
しかし,Nexus でさえやっと8/5 にリリースなので,日本の端末は何時になるだろう……という感じ.

ちなみにCynamonMod は即日対応完了している.

先ずはMMS で勝手にメディアファイルが展開されるのを防げないかと幾つかのアプリを確認してみたがメディアを自動読み込みしないというような設定のあるものは見当たらなかった.

検索したりしていると以下のフォーラムを発見.build.drop でStagefright を無効にしてしまうというもの.

media.stagefright.enable-aac=false
media.stagefright.enable-fma2dp=false
media.stagefright.enable-http=false
media.stagefright.enable-player=false
media.stagefright.enable-qcp=false
media.stagefright.enable-scan=false

build.drop の書き換えは権限さえあれば以下のアプリでお手軽に出来る.

root が無くても書き換えが可能な場合もあるらしいが,AU で契約している端末(KYOCERA URBANO PROGRESSO)はダメだった.

% ./adb pull /system/build.prop
% vim build.prop
% ./adb push ./build.prop /system/build.prop 
failed to copy './build.prop' to '/system/build.prop': Read-only file system
% ./adb shell
shell@android:/$ ls -l /system/build.prop
rw-r--r- root     root         4977 2014-07-29 21:20 build.prop
/dev/block/mmcblk0p12 /system ext4 ro,relatime,user_xattr,barrier=1,nodelalloc,data=journal 0 0

手持ちのAU と契約している端末は2012年5月のものらしい.セキュリティ修正は何時やってくるのか,そもそもやってくるのか…….

可能なら CynamonMod にしてしまいたいところですが,国内端末とかはなかなかですね…….

TeamViewer Linux版 を少し試す & 文字化け対応

[TeamViewer Linux版 あるのか.しらなかった

“Linux版TeamViewerの無料ダウンロード” https://www.teamviewer.com/ja/download/linux.aspx

https://plus.google.com/u/0/+KenichiroMATOHARA/posts/MtcA41kdpD9
(元投稿消えている)

ということでTeamViewer にLinux版があるのを知り試してみました.

導入自体はパッケージがあるのでこんな感じで(hash は見つからなかった……)
amd64版もあるようですがteamviewerd.service が起動しなかったりしたのでMultiarch なi386 を利用しています.arm版もあると嬉しい.

% wget http://download.teamviewer.com/download/teamviewer_i386.deb
% sha1sum teamviewer_10.0.41499_i386.deb 
438a1b27531faf8a89148b011e5214aa3f95ab1e  teamviewer_10.0.41499_i386.deb
% sha256sum teamviewer_10.0.41499_i386.deb 
0694c756b8cb5f2b09c8d6db960ced3e899d4ce43060e77ef4f1c36254dc31c4  teamviewer_10.0.41499_i386.deb
% sudo dpkg -i teamviewer_10.0.41499_i386.deb

このとき日本語Linux環境で利用した場合所々文字化けが起こります.
Screenshot from 2015-08-02 08-03-25

TeamViewer はWine経由で動作しているよう&Wineでよく見かける感じの文字化けだったのでWineの設定を探し設定変更したところ文字化けしなくなりました.

  • 修正内容
    /opt/teamviewer/tv_bin/wine/share/wine/wine.inf[Fonts] セクションに以下の設定を追加
HKLM,%FontSubStr%,"MS Gothic",,"Ume Gothic"
HKLM,%FontSubStr%,"MS PGothic",,"Ume Gothic"
HKLM,%FontSubStr%,"MS UI Gothic",,"Ume Gothic"
HKLM,%FontSubStr%,"MS Mincho",,"Ume Gothic"
HKLM,%FontSubStr%,"MS PMincho",,"Ume Gothic"

デーモンの再起動

% teamviewer daemon stop
% teamviewer daemon start

次バージョン以降で修正されることを期待してサポートにも投げてみました.(窓口合ってたかな?)

いつもはssh over (X/RDP/VNC)な感じで事足りてたしTeamViewer はプロプラ&個人用途以外は有償なのであまり興味はなかったのですが,今回使ってみてAndorid のの画面も引っ張ってこれるのはいいなと思いました.丁度ちょっと前に幾つかのAndroid版VNC Server software を試してうまく動かなかったので特に.

TeamViewer Linux版 を少し試す & 文字化け対応

[TeamViewer Linux版 あるのか.しらなかった

“Linux版TeamViewerの無料ダウンロード” https://www.teamviewer.com/ja/download/linux.aspx

https://plus.google.com/u/0/+KenichiroMATOHARA/posts/MtcA41kdpD9
(元投稿消えている)

ということでTeamViewer にLinux版があるのを知り試してみました.

導入自体はパッケージがあるのでこんな感じで(hash は見つからなかった……)
amd64版もあるようですがteamviewerd.service が起動しなかったりしたのでMultiarch なi386 を利用しています.arm版もあると嬉しい.

% wget http://download.teamviewer.com/download/teamviewer_i386.deb
% sha1sum teamviewer_10.0.41499_i386.deb 
438a1b27531faf8a89148b011e5214aa3f95ab1e  teamviewer_10.0.41499_i386.deb
% sha256sum teamviewer_10.0.41499_i386.deb 
0694c756b8cb5f2b09c8d6db960ced3e899d4ce43060e77ef4f1c36254dc31c4  teamviewer_10.0.41499_i386.deb
% sudo dpkg -i teamviewer_10.0.41499_i386.deb

このとき日本語Linux環境で利用した場合所々文字化けが起こります.
Screenshot from 2015-08-02 08-03-25

TeamViewer はWine経由で動作しているよう&Wineでよく見かける感じの文字化けだったのでWineの設定を探し設定変更したところ文字化けしなくなりました.

  • 修正内容
    /opt/teamviewer/tv_bin/wine/share/wine/wine.inf[Fonts] セクションに以下の設定を追加
HKLM,%FontSubStr%,"MS Gothic",,"Ume Gothic"
HKLM,%FontSubStr%,"MS PGothic",,"Ume Gothic"
HKLM,%FontSubStr%,"MS UI Gothic",,"Ume Gothic"
HKLM,%FontSubStr%,"MS Mincho",,"Ume Gothic"
HKLM,%FontSubStr%,"MS PMincho",,"Ume Gothic"

デーモンの再起動

% teamviewer daemon stop
% teamviewer daemon start

次バージョン以降で修正されることを期待してサポートにも投げてみました.(窓口合ってたかな?)

いつもはssh over (X/RDP/VNC)な感じで事足りてたしTeamViewer はプロプラ&個人用途以外は有償なのであまり興味はなかったのですが,今回使ってみてAndorid のの画面も引っ張ってこれるのはいいなと思いました.丁度ちょっと前に幾つかのAndroid版VNC Server software を試してうまく動かなかったので特に.

Android のTTS でハングアウトメッセージを流す

Ingressで複数人で移動することがあったのですが,連絡は基本的にGoogle ハングアウト.motercycle では基本的に確認できません.Android には標準でTTS(Text To Speak) が利用出来ます.ハングアウトメッセージをTTS に繋げることが出来たら大雑把に状況確認が出来るのではと試してみました.

N2 TTS の導入

TTS にはKDDI研究所のN2 TTS を利用しました.導入手順は以下のページにあります.

追加音声も4×4種類あります.

今回はfa001 を利用しました.

Screenshot_2015-06-23-07-19-04Screenshot_2015-06-23-07-18-50Screenshot_2015-06-23-07-18-30

Voice Notify の設定

ハングアウトアプリからTTS に流し込めれば良いのですが,出来ないようです.Google Play Store で使えそうなアプリを探したところ通知を読み上げてくれるVoice Notify というアプリを見つけました.

このアプリを導入し,音声通知をOn に
Screenshot_2015-06-23-07-19-33

通知対象のアプリにハングアウトだけ登録します.アプリケーションが多い場合はメニューから Igoner All で一旦全部解除してから filter で検索すると便利です.
Screenshot_2015-06-23-07-20-29Screenshot_2015-06-23-07-20-16

ここで通知対象のアプリを増やすとそのアプリの通知も読み上げられます.メッセージの内容が読み上げられるかはそのアプリの通知内容次第になります.例えばGoogle+ では内容により省略されたりします.

ハングアウトの設定

通知をしたいハングアウトの通知をOn にします.これでハングアウトから通知があればその内容が読み上げられます.

Screenshot from 2015-06-23 07-35-06


これで実際に試してみましたが,思っていたより内容は把握出来ました.長文だと辛いですが短文なら十分.ボリュームは6割位でイヤホンマイク片耳(ダイソーで購入した@100のもの)で聞いていましたが低速なら問題なし,50km/h以上だと聞き取りづらくなってきました.恐らく高速道路だとダメでしょうね.この辺はスピーカーやイヤホン次第で変わると思います.

mineoを刺したLGL22のA-GPSサーバを変更してみる

Screenshot_2015-04-21-20-55-30
LGL22 にmineo のSIM を挿して運用していますが,どうもGPS の動作がおかしい.IngressGPS Status & Toolbox を起動して1時間とかずっと置いといても測位できなかったりする.
以下のページを見るとキャリアが用意したA-GPS 情報を配布しているサーバは外からアクセスできなくてMVNO だと使えない,Google提供のA-GPS サーバがあってこれは外から使えるらしいということが分かりました.A-PGS 使えなかった時はタイムアウトして欲しい気もしますが….

  • トークセッション. MVNOとGPSについて (大内)

    趣旨:「MVNOではGPSは使えない」という誤解がありますが、正しくありません。しかし、一部のスマホでGPSの位置情報がうまく利用できないように見えるのも事実です。Androidを例に位置情報取得の仕組みとその原因についてご紹介します。

ということで,/etc/gps.conf のSUPL 部分を以下のように書き換えてみました.

SUPL_HOST=supl.google.com と SUPL_PORT=7275 or SUPL_PORT=7276 部分.書き換えた後再起動しても症状は変わらないよう.

Cinnamon Mod だと元々Google のサーバを向いているとのことなので CM12 をそのまま真似してみる.

これで数日使ってみているけど今のところ問題無さそう.
ただ,この方法は /system 領域の編集が必要なので通常は要root
もうすぐキャリア端末のSIM Free がやりやすくなるようですが,この辺りも解決して欲しいですね.APN みたいに設定画面から書き換えできるようにするとか.

以下は書き換え時のメモです.

$ ./adb shell
$ su
# mount -o rw,remount /system
# cp -p /etc/gps.conf /etc/gps.conf.org
# vi /etc/gps.conf
# cat /etc/gps.conf
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
SUPL_HOST=supl.google.com
SUPL_PORT=7276
# mount -o ro,remount /system
# exit
$ exit