ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2025年12月16日火曜日

u-blox M10 測位頻度改善

ちょっと前に買った中華激安 GPS ロガーに載っている u-blox M10 という GNSS チップ,公称 10Hz で測位できるはずだが,測位してから数分経つと測位頻度が 6-8Hz 程度に低下することに気づいた.
不思議なことに室内での実験ではなかなか再現せず,車内 & 自作 Android アプリで頻発するので,自作 Android アプリの問題かと思ったが,PC <--> GPS ロガーでも測位頻度が低下していることを確認.
ということでこの GPS ロガーの実力であることが確定(;´д⊂)

改めて M10 のデータシートを眺めてみると,

  • 測位処理は MCU が行っており,捕捉する衛星数が多いと更新頻度が落ちる
    • アジア地域は BeiDou (中国のやつ) が多いので測位頻度は落ちがち
  • High Performance Mode という MCU クロックを上げる設定を行うと,測位頻度は上げられる

らしい.

まずは High Performance Mode に設定してみたが,見た感じ変わってなさそう.
あんま変わらなかったのでやり方は詳しくは書かないが,ここの P13 に書いてある.

で次なる作戦.

  • BeiDou を無効化する.これだけで捕捉衛星が 3/5 くらいになる.
  • 不要な NMEA センテンス出力を無効化する
  • ただし自作アプリ以外ではそれらを無効化しないほうが良いので,本体 Flash への設定は行わず,電源 On の間だけ有効な設定にする

そのための設定は割と簡単で,UBX protocol なるものが公開されていて,適切なバイナリデータを Bluetooth 経由で書き込めば良い.
詳しくはこれを見れば全部載っている.GGA, GSA, GSV センテンスを止めて,BeiDou を使用しない設定をする Kotlin コードはこんな感じ.

で実際にやってみた結果,10Hz 出たヽ(´ー`)ノ
あと BeiDou を無効化することによる測位精度がどうなるか調べた結果 (上図の青: BeiDou 有り,橙: 無し),全く問題なかった.
BeiDou 有りの方はやはり所々ポイントが抜けているのが気になる.この座標情報からラップタイムを計算するから,ポイントが抜けていないほうがいいので,BeiDou 無しで運用することにした.

2025年1月17日金曜日

Android14 で hosts 書き換えが効かないときの対応


●いきなり結論
プライベート DNS 設定を {「OFF」か「自動」} 以外にする

●現象
スマフォの OS を crDroid (Android14) に書き換えたら,hosts 書き換えによる広告ブロックが効かなくなった.
不思議なのが,WiFi では効いているっぽいが,モバイルデータ通信では効いていない.

●Chrome の問題?
で調べてみると,chrome では独自に DNS の名前解決結果を独自にキャッシュしているようで,それをクリアしないといけないらしい.
chrome://net-internals/#dns を開くと,Clear host cache を押したが効果なし.
Lookup ボタンもあるので,hosts に記載のあるアドレスを入力してみたが,やっぱり hosts は効いていないようだった.

●Android の問題?
Chrome の問題なのか Android の問題なのか切り分けるために,Terminal emulator で名前引きしてみたところ,やっぱり hosts が効いていない.この時点で Chrome は関係なくなったが,ググってみても AI に聞いてみてもそれらしい解決策は無し.

●発見
仕方がないので,Android 設定で DNS と名のつくものを探したところ,プライベート DNS なる項目を発見.
デフォルトでは自動になっていたので,OFF にしてみたが,やっぱり hosts は効かない.
そこで,自動・OFF 以外の項目を選んでみたところ,ビンゴヽ(´ー`)ノ 無事 hosts が効いて広告がブロックされるようになった.
素性のよくわからない DNS を使うのはイヤなので,DNS 指定で dns.google を指定しておいた.

●ただし課題が...
このプライベート DNS の設定は,VPN 接続時にも有効らしく,VPN 接続アプリで指定している自宅 LAN の DNS が無視されてしまう (つまり自宅 LAN 配下の機器の名前解決ができない).この場合,プライベート DNS を OFF にすれば VPN の問題はなくなったが,VPN 接続時は手動で OFF にするしかなさそう.

このプライベート DNS,hosts,そしてネットワークから指定された DNS,の優先順位がさっぱりわからん.

2023年6月24日土曜日

中華タブレット壊れた(;´д⊂)

ちょうど 3年前に買った中華タブが壊れた.
これ,Web サーフィンとか YouTube 見るとかには全く不満ない性能だったのだが,まれにフリーズ・再起動するとか,まれに設定が吹っ飛んでるとか,ちょくちょく不安定だった.
いくらコモディティ化が進んでるとは言え,流石に無名メーカーのタブを買うべきじゃなかったと反省した.

で次の中華タブを調達w 選定条件は,
・10インチ
・RAM 4GB 以上
・ストレージ 32GB 以上
・Web サーフィン,YouTube 視聴がストレスなくできる性能
・あまりに無名メーカーは避ける

というわけで,低価格タブを検索するとよく名前が出てくる TECLAST の P40HD (2023モデル, 6GB MEM/128GB ストレージ) を \15,820 で購入.多分だけど,高級モデルを製造しているメーカーは高級モデル相応の品質を担保するノウハウを持ってるから,低価格モデルでもちゃんとしてる気がする.
で開封の儀,
内容物は本体,充電器,USB ケーブル (Type-C),シムトレイ取り出し pin,と最小.

表.ベゼルは狭いとは言えないが,まぁ普通の幅.
あと細かいこと言うと,ガラスの縁が丸めてあるのが光の反射からわかると思うけど,こういうところでケチっていないところが,超安物とは違うところ.
裏は金属で,質感はよい.
  • Chrome・YouTube・Google マップを使用してみたが,速度に全く不満なく使えた.
  • カメラは,例えば blog に貼り付ける用の写真程度なら問題ない写真が撮れる.
  • 指紋認証は無いが,顔認証はあるので,ログインは楽.
  • 使わないけど,SIM モデルなので少なくともドコモ系 sim なら外でも普通に使えそう.

全体的に,値段相応の質感,とかじゃなくて普通に質感が良い.
高級タブとの違いは CPU とかカメラとかのグレードが落ちているだけで,そこら辺を納得の上で買うのであれば満足度は高い.

あえて不満な点を挙げるとすれば,メモリ 4BG ストレージ 64GB でいいから,\12,000 くらいだったら良かったんだが.

2022年7月11日月曜日

Redmi Note 11 に TWRP インストール

楽天モバイルから脱出するために,POVO2.0 に移行しようと思ったけど,Redmi Note 8 Pro (以下 RN8P) は au 回線を拾わない.
仕方ないので Redmi Note 11 (以下 RN11) を \17,650 で購入.最近は中国から輸入しなくても,日本のショップで正規品が買えるので,いい時代になったなぁ.

で,TWRP を入れようと思ったらいつもの fastboot flash では入らなかったので,手順を以下に記しておく.

参考: これ
使用した TWRP イメージ: これ
(0) 予め PC で fastboot コマンドを使えるようにしておく.
(1) Xiaomi デバイス特有の Unkock をする.手順は省略.7日間我慢する.
(2) fastboot boot twrp_3.6.1-spes.img
(3) Advanced --> Flash Current TWRP を選択,画面下の Swipe to Confirm をスワイプ
(4) Reboot --> Recovery で,焼かれた TWRP を起動

TWRP が起動したら無事完了なので,あとはお好きな ROM を焼くだけ.

... と思ったら,3つくらい試した ROM が,ことごとく ROM 焼きに失敗 or 動作不良 (GSI ROM すら焼きに失敗).
crDroid とかは FASTBOOT を特殊なものに書き換えて MiFlash すら失敗するようになって,文鎮化しかけた ((((;゚д゚))))ガクガクブルブル
仕方ないので MIUI + root で運用することにした.(;´д⊂)

RN11 自体はどうなのかというと,RN11 自体に不満はないものの,RN8P に比べて色々スペックダウンしている.
○筐体の大きさ,画面の大きさは RN8P と同じ
○CPU, GPU ともに若干スペックダウンしているが自分の使い方では差は感じない
✕指紋センサーの場所が悪い.自分は背面にある方が好み.
✕指紋センサーの反応が悪い.RN8P が 0.2秒位なのに対し,RN11 は 1秒くらいかかる.
✕外装に高級感のかけらもない

まぁ今回は本来スマホを更新するタイミングではなかったし,前回 Pro を買ってしまったのでスペックダウンは仕方ないか.

2021年8月19日木曜日

Python で Android アプリ開発 (もどきに戻る)

今までのあらすじ:
・Android で Python/kivy スクリプトを動かしたい
・スクリプトを実行するためには Pydroid 3 起動,スクリプトをエディタで開く,実行 の 3ステップが必要でめんどい
・apk 化したら起動は楽だがスクリプトの利点が削がれる ←いまここ


で Github を色々探してみると,Kivy-Launcher というアプリ発見.これは Python スクリプトのリストを表示して,選択・実行できる.これも Python/kivy/buildozer で実現されており,ということはこの環境でストレージ上の Python スクリプトを実行する手段はあるということ.

次に,buildozer でビルドしたアプリに暗黙的インテント (Windows で言うところの拡張子関連付けみたいな情報をアプリ側に持たせる) を追加する手段があるか探してみたところ,あったよ... この時点で勝利を確信ヽ(´ー`)ノ

というわけで以下を実施.
・Kivy-Launcher を fork
・暗黙的インテントを追加
・起動直後のインテント解析等を行う python スクリプト (main.py) は,このままだと apk に内蔵されてしまい修正がめんどくさいので,main.py から SD カード上の main.py を呼ぶように修正し,起動後のスタートアップ処理は後者で処理する

適当なアプリで Python スクリプトへのショートカットを作り,これをタップするだけでスクリプト起動した.

更に main.py を SD カード上に置いたことにより色々やりやすくなり,例えば標準だと Python のエラーメッセージは adb logcat でしか見れない (PC と 要 USB 接続) が,main.py で try~exception でエラーをキャッチしてメッセージを画面上に表示することで,スマフォ単体でエラーが確認できるとか,色々改良しやすい.

やっとことさ理想の環境を手に入れたよヽ(´ー`)ノ

2021年8月18日水曜日

Python で Android アプリ開発 (もどきではない)

前回の記事で「Python + kivy で普通の Android アプリも開発できそう」と書いたけど,自分が知らなかっただけで,それは割と普通のことらしい.つまり Python スクリプトを apk 化する buildozer なるツールもあって,これを使えば Python スクリプト起動の手間の問題は解決する.ただ自分が Python を使いたいのはそういう apk ビルドの手間・ビルド環境の構築を省きたいからであって,ちょこっとスクリプトを修正して実行確認,みたいに手軽にやりたい.

ここで,Github Actions を使えば手間は減らせるんじゃね? 思った.Python 開発・デバッグは PC 上で行い,完了したらどのみち Github には push するので,それをトリガに Github に自動で apk ビルドをさせると.
というわけでやってみた.

・.github/workflows/build.yml をここからもらってくる
・buildozer.spec をここからもらってくる
・上記を適当に修正する
・SD カードアクセス等の,必要なパーミッションを追加する
・git push する

たったこれだけで出来たヽ(´ー`)ノ 普通の apk と何ら変わりなくインストール・起動も出来て,動作は apk 化する前と全く同じ.

普通の Android アプリを Java で書くのは色々めんどくさいけど Python + kivy はほんとにお手軽で書きやすい.しかもこれだけの労力・学習コストで「俺 Android アプリ作って公開してるんだぜ(ドヤァ」って言えるのはすごいwww

これからは特に問題ない限り,Android アプリは Python + kivy で開発しようと思った.

2021年8月15日日曜日

Python で Android アプリ開発もどき

出先で Android で GPS ログフォーマットを変換したい.処理的に大したことなくまた PC でも使いたいので perl とかで書きたいが,問題はスクリプト起動時に Android でコマンドライン入力するのは地獄.
なのでファイル選択やオプション選択などを GUI で操作したいが,そんな事ができる Android アプリがないか探してみたところ,Pydroid 3 というアプリ発見.
基本的には Python 実行環境だが,kivy という GUI を構築できるフレームワーク(?) が内蔵されていて,これを使って簡単な GUI アプリが構築できる.

というわけで作ってみた.→GitHub
画面の要素としてはファイル選択とリストボックス,ボタンと簡易.見た目はしょぼいが実用性は十分.Python + kivy 自体はそこそこ実用的で,Android ハードにバリバリアクセスするようなアプリでなければ普通のアプリでも開発できてしまうと思う.

あと,kivy 自体はクロスプラットフォームなので,全部 PC 上で開発・デバッグ後 Andoid で運用する,等もできるので,開発効率はよい.

ただ残念なのは,例えばホーム画面に Python スクリプトのショートカットを置いて直接スクリプトを起動できれば,使い勝手的に普通の Android アプリと遜色ないのだが,残念ながらそれができない.いちいち Pydroid 開いてスクリプトをエディタで open して run しないといけない.うーん,ここだけがほんとに残念.

2021年7月14日水曜日

Android TV STB で遊んでみる

eo 光の会員は「eo チケット」なる使いみちのないチケットが溜まっていくが,最近このチケットでストリーミングメディアプレーヤーなる Android TV のセットトップボックスが送料 \660 だけでもらえる様になったので Get.

で,早速使ってみたところ,YouTube やその他動画サイトアプリはギリギリストレスなく動くレベル.
部屋に大画面の TV があれば,大画面で YouTube や (chromecast で) Google フォトなんかが映せるのが最大の魅力と思うけど,残念ながら自室には PC モニタしかないので意味ねぇw
リモコンには音声認識ボタンが付いていて,これを押して喋れば即座に音声入力ができるので,PC / スマフォになれてない人が YouTube を見るには確かに使いやすいだろうと思った.

で,自分的にはこれで一体何がしたかったのか? というと,Android アプリがインストールできるはずなので,ChromeBook 的な使い方ができるのでは? と思ってやってみた.
まず,内蔵の Google Play から入れられるアプリは制限されているので,Apk Downloader などから apk をダウンロードし,X-plore 等からインストールする.またインストールしたアプリが一覧に現れないので,Sideload Launcher から選択して実行する.
でいろいろインストールしてみたところ,
・PS Remote Play: PS4 ターミナルにできるかと思ったがエラーで動作せず
・Microsoft Office: キーボード・マウスつなげて PC の代わりになるかと思ったが,動作せず
・Amazon App ストア: Google Play では変な制限で選べるアプリが限られているので入れてみたが,表示が変になって動作せず

うーん,やっぱり Android TV 非対応のアプリを無理やり入れても動作が非常に厳しい.
全然遊べねー┐('~`;)┌

と思ったところ,UserLand はちゃんと動くこと判明.
Distribution のインストール作業はリモコンだけでは厳しいので USB マウス・キーボードが必要だが,それが終わったあとのセッション起動はなんとかリモコンだけで ok.セッションを立ち上げてしまえばあとは ssh ログインできるので,何ら普通のサーバと変わりない.
ということで,小型省電力 Linux サーバ爆誕ヽ(´ー`)ノ

2021年6月15日火曜日

ラクテンモヴァーイル!!

日本のスマホ代は高すぎる!
事実,100% もの俺が (ビリビリ!) 0円まで下げてほしいと思ってる.

0sim (500MB までタダ) が生きていた去年までは,Fusion IP phone SMART (通話,基本料タダ) + 0sim (データ通信) で 0円運用できていたが,0sim が終了して以来,仕方なく LinksMate のデータ sim を契約していた.
で,楽天モバイルが 1GB までタダ,通話・SMS もタダと言う衝撃的なプランを発表したので,これなら 0円運用に何の問題もないって思うよね?

あるの!

・楽天自社回線 (Band3) のエリア.都市部以外は非常に怪しく,都市部であっても建物内はたいていアウト.最近はスマホ QR 決済を多用するので通信遮断は非常にきつい.
・今のスマフォ Redmi Note 8 Pro は au 回線 (Band18) を拾わない.それに楽天回線のカバー率が上がれば au ローミングが終了してしまうので,Band18 目当てで今機種変するのは得策とは言えない.

で考えた結果,しばらくは楽天モバイル + LinksMate の DualSim 運用で行くことにした.

・LinksMate は楽天エリア外でのバックアップ用に残す.なんだかんだ言ってもドコモ回線のエリアが最強.
・キャリア問わず,データ回線が繋がっていれば楽天 Link は使用できるので,無料通話の恩恵は受けられる.

で,この目的での LinksMate は非常に使い勝手が良くて,
(1) データプランが月単位で自由 & 無料で変更できるので,楽天回線の拡大に合わせて安いデータプランに変えられる
(2) 残ったデータ容量は翌月まで繰り越せる
(3) 最低 ¥165 (100MB) なので,これならほとんど使わなくてもキープしておいていいと思える値段
(4) (1), (2) のあわせ技で,月平均 1GB 消費すると仮定すると,一月ごとに 2GB, 100MB のプランに交互に切り替えることによって,1.05GB/¥292 で運用できる.調べた限りこれ最安じゃないかな.

自宅の楽天回線の受信感度はこんな感じでプチプチ切れるけど,そんな不安定さからも開放されて,今日から俺もラクテンモヴァーイル!!

2020年12月18日金曜日

古い Android 端末を Linux サーバとして復活させる

ちょっとしたサーバを立ち上げる必要が出てきたので,余ってて使いみちがない GalaxyNote SC-05D で Linux 環境を構築することにした.そういうことをするための UserLAnd というアプリがあるが,SC-05D は Android 4.1 と古く UserLAnd が入らないので,それの昔のバージョンである GNURoot を入れる.

あとは sshd を立ち上げてしまえばあとはなんとでもなるが,GNURoot のメンテはもう終わってるらしく,色々環境を修正しないといけない.


(1) apt 環境修正
apt-get update が 404 になるので,/etc/apt/sources.list を修正

root@localhost:~# cat /etc/apt/sources.list
deb http://archive.debian.org/debian/ wheezy main contrib non-free
deb-src http://archive.debian.org/debian/ wheezy main contrib non-free
root@localhost:~# apt-get update
root@localhost:~# apt-get upgrade
(2) sshd インストール,環境修正
root@localhost:~# apt-get install openssh-server
root@localhost:~# passwd                ← root パスワード変更

/etc/ssh/sshd_config の以下を修正
Port 10022
UsePrivilegeSeparation no
PermitRootLogin yes

root@localhost:~# service ssh restart   ← sshd 起動
で PC から WinSCP を使って GNote にファイル転送したところ,大きいファイルが GNURoot 環境で読めない & 消せないファイルが出来上がって困ったが,WinSCP の設定を図のとおりにすることで改善した.

ちょっと使ってみたところ限りなく普通の Linux に近い.なんと言っても apt でビルド済みのパッケージがインストールできるので,非常に使い勝手が良い.
余ってる Android 端末の活用方法としてはありなんじゃないだろうか.


2020年6月30日火曜日

Android タブレット購入

家族から「ノート PC を増設せよ」と要望があったけど,どうせ Web ページしか見ないし有効活用されない PC が増えてももったいないので,Android タブレットを購入.
選定条件は
・10インチ
・RAM 3GB 以上
・ストレージ 32GB 以上
・Web・YouTube がストレスなく動作する程度の CPU
という条件で一番安かった ALLDOCUBE M5XS を¥11,980 で購入.聞いたこと無いメーカーwww

で開封.内容物は本体・充電器・充電ケーブルのみ.

で軽く使ってみたところ,
◎10インチはタブレットとしては大きめなので,画面が大きくて良い.
○CPU パワー的には,Web ブラウジング・YouTube は特に問題なく動かすことが出来た.
○わけわからん中華メーカだけど日本語表示は問題ない.変な中華アプリとかも入っておらず,素の Android だった.
△ベゼル幅が広めだけど値段相応.
×カメラ性能はお察し.
×指紋・顔認証が無いのでログイン(?) がちょっと面倒

裏.
○全体が金属筐体なので,安っぽさはない.
○表も裏も保護シートが貼ってあるので,わざわざ貼る必要がない.

開封するまで知らなかったんだけど,値段的に WiFi モデルだろうと思っていたら,なんと dual sim 仕様だったwww 外で通話できるよwww

ゲームとかしない限り普通にストレスなく使えるので,このスペックで¥1.2万は満足ヽ(´ー`)ノ

2020年5月29日金曜日

楽天モバイル get → 失敗

楽天モバイル 1年無料が,Rakuten Mini (端末) セットで \3,301 + 楽天ポイント 6300P でやってたので早速 get.
Rakuten Mini は eSim で普通に申し込むと sim カードは来ない.で Redmi Note 8 Pro で楽天モバイル回線が使えるかも,と sim カードのプランに変更して申し込んだ (自動的に Rakuten Mini はモバイル回線では使えなくなる).

で,届いたので早速 RN8P に挿してみたら... sim は認識したようだが一切の通信ができなかった.それもそのはず,楽天モバイルのサービスエリア外では au 回線を使うらしいので,どうも RN8P ではそのバンドに対応していないっぽい.
当然 Rakuten Mini に sim カードは刺さらないし eSim の契約に変更して手数料取られるもの嫌だし,楽天モバイル回線がいきなりゴミになったwww

気を取り直して Rakuten Mini 開封.
内容物はこんなかんじ.これ以外に USB-C をイヤホンジャックに変換するケーブルが入っていた.

で特筆すべきはその小ささ.横幅はクレジットカードと変わらず,縦はそれより長い.
これだけ小さいと新鮮だけど,かつてのガラケーはこんなもんだったよねぇ.昔使ってた 810P がだいたい同じ大きさだわ.

小さい分画面の大きさがー,とか言う端末ではないのはわかっているが,ホーム・戻るボタンはソフトボタンじゃなくてせめて画面外に出してほしかった.スペース空いてるんだし.

裏.おそらくガラス製で,黒の筐体だけど光が当たると濃い青~紫に色がついていて,なかなか高級感あり.

しばらく使ってみたけど,性能もそこそこあるので普通にブラウジング・YouTube とか見てもサクサク動く.
あと好印象なのは,楽天のアプリとかも普通にアンインストールできるので消せないクソプリインアプリもない.
画面は小さいのでメインで使うのはきついと思う.
あとバッテリーが持たない.数時間触っていたらバッテリーが半分になった.

どうせこれだけ小さいのならメインでバリバリ使うことはないんだし,もっと尖らせてe-Inkディスプレイとかでも良かったんじゃないかな.そのほうがバッテリーも持ちそうだし.

で,自分としてはモバイル回線につながらないこいつをどう活用したものか.

試しに 3D プリンタでフルスペック Android ウォッチ作ってみたが,常用する勇気はないwww
まぁ BlueTooth テザリングして,バイクツーリング時のナビとかにはいいかもしれない.

2020年2月11日火曜日

軽量化に勝るチューニングなし

軽量化は加速・減速・コーナリングスピード全てに効果的なチューニングというわけで,ロジクール K480 の軽量化を実施.

ネジは 5箇所で,電池フタの中に 2箇所,ゴム足の奥に 3箇所.
ネジ外したあとも,ツメで強固に嵌っているので根気よく剥がしていくいかない.自分はツメ 2箇所くらい折れた...

ようやく裏蓋が外せた図.そこに見える鉄板が諸悪の根源で,厚さ 1.2mm の鉄板で超重い.これがネジで止まっているので外す.

鉄板を外すと,キーボードの接点シートの裏を支えるものがなくなってしまいキー入力ができなくなるので,自分は 100均の下敷きを 3枚重ねてネジ止めした.若干キー入力がかっちりしなくなったけど,仕方ない.
でもやっと妥当な重さになって満足
ヽ(´ー`)ノ

ついでに,ここを参考にロジクール K480 のキーバインドを変えてみた.
/system/usr/keylayout/Generic.kl を Vendor_046d_Product_b33d.kl にコピーしてここのように編集することで,K480 を接続したときだけキーバインドが変更される.

・CTRL ⇔ CAPS LOCK
・Fn + ファンクションキ ⇔ (Fn 押さずに) ショートカットキー
・変換 → 全角/半角 (自分は「変換」で IME ON/OFF しているので,iWnn でも ON/OFF できるように変更する)

かなり入力のストレスが減ったヽ(´ー`)ノ
ただし,F2 ⇔ アプリ切り替え だけは,K480 が単一のキーコードではなく Alt+TAB という複数のキーコードを送信するというキモイことをしているようで,置き換えることができなかった.

2019年12月15日日曜日

Redmi Note 8 Pro に TWRP インストール & root 化

Redmi Note 8 Pro に TWRP を入れて root 化した.ほとんどここの手順通りだけど,以下自分がやったこと.
※MIUI Global 10.4.2 (PGGMIXM) での話なので,それ以外の場合は適宜 xda などの情報で判斷してください.

●必要なファイル
・TWRP,ここの TWRP for Begonia のリンクから入手
・fastboot ドライバ,ここの15 seconds ADB Installer v1.4.3
・必要に応じて Magisk とか

●手順
・アンロック手順はググれば色々出てるので省略,以下 unlock 後の手順
・PC に 15 seconds ADB Installer v1.4.3 をインストール
・twrp-3.3.1-9-begonia.zip を解凍しておく.recovery.img が解凍される.以下,C:\tmp に解凍したものして説明する.
・電源 off 後 Vol Down & 電源で fastboot に入れる
・管理者モードでコマンドプロンプトを開き,以下のコマンドを入力.下線部が入力するコマンド.

C:>cd /d C:\tmp ←recovery.img がある場所に移動

C:\tmp>fastboot devices ←fastboot 接続できているかの確認
**************** fastboot

C:\tmp>fastboot flash recovery recovery.img ← TWRP を焼く
target reported max download size of 134217728 bytes
sending 'recovery' (65536 KB)...
OKAY [ 1.777s]
writing 'recovery'...
OKAY [ 0.536s]
finished. total time: 2.320s

C:\tmp>

・USB ケーブルを抜き,電源長押で電源 off 後,VolUp & 電源で TWRP を起動する
・初回起動時は中国語で意味がわからないので,真っ先に右下のボタンで言語を英語にする
・メイン画面の Mount→System にチェック
・メイン画面の Advanced→File Manager→/system/system_root に移動,そこの recovery-from-boot.p を削除するなりリネームするなりする
・メイン画面の Advanced→Close AVB 2.0→Close the boot Verification of AVB2.0 にチェックを入れて Swipe to Confirm をスワイプ
・Magisk をインストール,自分は手っ取り早くメイン画面の Advanced→Install ROOT で済ませた

2019年12月14日土曜日

超高級機スマフォ Get

3年前に買った Redmi Note 3 Pro のバッテリーがヘタってきたので,スマフォを新調することにした.
候補としては Xiaomi Redmi Note 8 (1.7万円) か Redmi Note 8 Pro (2.2万円).
普段なら Note 8 無印にするところだが,ちょっと前に見せてもらった iPhone 11 Pro の夜景モードの写真に感動したのと,RN3P のカメラの光量が少ないときの画質に不満があったので,カメラがちょっとでもいい方の Pro にした.自分的に 2万円超えのスマフォなんて超高級機ですよwww

で届いたので開封の儀.
RN3P との比較では,筐体の横幅は変わらず,高さは +1cm だが,画面の高さが 3cm も広くなった.
ただ自分的には,広い画面が必要なのは漫画読むときで,漫画ビュアーは横幅に律速して縦がどんだけ広くても余白になるだけなので意味がない.RN3P の筐体の大きさでベゼルレスにしてくれたらそれでいいんだけど.あと自分はノッチが大嫌いだけど,ノッチもない機種は本当に高級機になってしまうので,ここは妥協せざるを得ない.

裏.撮影に使ってるカメラがしょぼすぎて伝わんないんだけど,グラデーションがかかったメタリックグリーンで非常に高級感あり.カメラ部分は結構飛び出しているけど,付属の TPU カバーつけたら飛び出しはなくなった.

で,自分的に一番の目的の,カメラの夜景モードはどうなの? ということで撮影してみた.
同一場所で撮ったものじゃないから比較するものなんだけど,まぁ街灯の下という大体同じ条件での RN8P と RN3P との比較.RN8P は少しでも光源で照らされていればきれいに写ってくれる印象で,暗所撮影でありがちな手ブレもない.RN3P の真っ暗・ブレブレの写真とは雲泥の差.2万円台のスマフォのカメラでこれだけの撮影ができるようになったのはすごい.

2019年1月3日木曜日

ふゆやすみのこうさく

あけおめ.

超久々に車載データロガーを update.

自作データロガーのハードを 2号機にしてから,ラップタイマの磁気センサの感度が極端に悪くなって,ラップ計測できなくなってしまった.車からデータロガーのハードを外して調査・修理しようかと思ったが,
妥協発動

GPS ラップタイマ機能を自作データロガーの Android アプリに組み込んでしまうことにした.普通は GPS Laps とか使えば済むんだけど,自作データロガーの機能も無いと困るので (ここは妥協しないw).

Bluetooth 通信 (外部 GPS と通信) と,GPS ログからラップタイム算出するのは既に別のソフトで実装済みなのでサクッと移植.
問題はコントロールラインを設定する UI をどうしよう? というとこで,理想は Google マップなんかを表示させて GUI で設定することだけど,

妥協発動

一度サーキット毎に設定してしまえばそうそう変えるものではないし,凝った GUI は不要! というわけで,
←こういうのを Google マイマップ (PC) で作って kml にエクスポートして,

Android アプリでは
←こういうふうにその kml を選択できるようにしておいた.

磁気センサのラップタイマが動かなくなったのは残念だけど,GPS でも 3/100秒 くらいの精度が出るのはわかってるしね.サンデードライバーにはこれで十分っす.

ま,人生何事も妥協が大事ということで.

2018年12月8日土曜日

落ちクマ

PC から WiFi 経由で Android のファイルブラウズをしたいのだけれど,
・日本語ファイル名が化けない
・外部サーバを介さず LAN 内で完結する
・SD カードを読み書きできる
・上記の機能がすべて無料で使える
を満たす Android アプリが,何故か無い.

なので Cyanogenmod, LineageOS では内蔵の sshd を立ち上げていた (PC からは WinSCP) のだが,今のところこれが最強.
しかし Redmi Note 3 Pro を AOSP 系の Pixel Experience にしたら sshd が入っていなかった.
Android アプリにも sshd はあるけど,root じゃないので SD カードアクセスができず使えない.

仕方がないので dropbear を Android 向けに build することにした.
GitHub を漁るといろいろ Android に移植済みの dropbear があるが,最も新しそうな dropbear-android を使用することにする.

【手順】
(1) Android NDK 環境をここ見ながら構築する.
自分は↓で行けた.
/home/yoshi/android-ndk-r16b/build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=/home/yoshi/android-toolchain
(2) dropbear-android のビルド
setenv TOOLCHAIN /home/yoshi/android-toolchain
./build-dropbear-android.sh
で,珍しく一発でビルドが通った.

で,RN3P に持っていって起動したら,
# /data/dropbear -r ./ssh/rsa_key_db -F -P ./ssh/pid -A -N root -T ./ssh/authorized_keys -U 0 -G 0
[23486] Dec 08 15:37:22 Not backgrounding
[23487] Dec 08 15:37:25 Child connection from 192.168.0.13:62545
[23487] Dec 08 15:37:27 Password auth succeeded for 'root' from 192.168.0.13:62545
[23487] Dec 08 15:37:27 Failed to open any /dev/pty?? devices
[23487] Dec 08 15:37:27 No pty was allocated, couldn't execute
[23487] Dec 08 15:37:27 Exit (root): Exited normally
んー,terminal の open に失敗してる? そもそも /dev/pty とか Android に無いんじゃないの?

調べてみると,Linux では openpty() で端末を open するのが一般的らしいが,Android に openpty() はない.しかし,ここで他の Android dropbear プロジェクトで,openpty() を独自実装しているものが見つかった.このコードをサクッとコピペして再ビルド.
[28075] Dec 08 21:54:33 Not backgrounding
[20372] Dec 08 22:03:01 Child connection from 192.168.0.13:55309
[20372] Dec 08 22:03:01 Password null
[20372] Dec 08 22:03:01 Password null
[20372] Dec 08 22:03:01 Password null
[20372] Dec 08 22:03:01 Pubkey auth succeeded for 'root' with key sha1!! ... from 192.168.0.13:55309
勝利ヽ(´ー`)ノ

上記のパッチ当て済みのものを GitHub に公開したんで,欲しい人はどうど.

2018年12月2日日曜日

Xiaomi Redmi Note 3 Pro ブートローダーアンロック回避

Xiaomi Redmi Note 3Pro に Pixel Experience (Android 9.0) を入れようと思った.
TWRP から焼き直したら一発でしょ,とか思ってたらそうは問屋が卸さなかった.

Updater process ended with ERROR: 7
なんですと...? Σ( ̄□ ̄ι こうなってくるととたんにめんどくさくなってくる.

Pixel Experience を入れようとしたら TWRP を update しないといけない
→TWRP (recovery.img) を焼き直すためには unlock しないといけない
→unlock するためには Xiaomi に unlock 申請し,MIUI を焼き直さないといけない(?) これの申請に 72時間かかるとか...

やってられないので,ブートローダーアンロックなしで TWRP を焼く手順を試してみた.→参考

(1) EDL モードで MIUI 公式 ROM を書き込める準備をする,まだ焼いてはダメ→参考参考2
自分が使った ROM は手元にあった kenzo_global_images_6.11.3_20161103.0000.00_6.0_global_f7309f8161.tgz
(2) MIUI の公式ロムを解凍した dir の images\recovery.img を,TWRP で上書きする.
(3) (1) の手順に従って MIUI を焼く.(まだリブートしてはダメ)
(4) 焼き終わったら,VolUp + 電源長押しで TWRP を起動する.ここで一回でも MIUI が立ち上がってしまうと,焼いた TWRP が元に戻されてしまうっぽいので注意.
(5) TWRP が立ち上がったら,あとはお好きなように.

←というわけで勝利ヽ(´ー`)ノ


Android P 目玉機能の (Android 7.0 で既に載ってたのね,知らなかった) 2画面分割とか試してみたけど,多分使わないなw タブレットならともかく,6インチくらいの画面で同時作業するシーンが思い浮かばない...
あとブートが異様に速くなったけど,そんなに頻繁に再起動するもんでもないしねぇ.

逆に LineageOS から AOSP 系の ROM になったことで,いろいろと細かい便利機能がなくなったのが不便.(例えば,電源長押しでフラッシュライト ON とか)
ROM 入れ替えなくても,よかったかも.

-----
後日追記:
結局 Lineage 14.1 に戻した orz
アプリ起動時に 1秒ほど反応がなかったり,そのまま画面がフリーズする現象が出た.ROM が悪いのかと思い Liquid Remix も試してみたけど,同じ現象 orz
RAM が足りてない感じではないんだけどなぁ...

2017年12月17日日曜日

2台目「み」

家族用にスマフォを購入することにした.

電話さえかけられればいいレベルなので性能はいらないので,
・ミッドレンジの CPU
・バッテリーはなるべくでかく
・カスタム ROM 開発が盛り上がっている (メーカーが update を打ち切っても有志による開発で生き延びる可能性が高まる,まぁこれは自分の趣味)
ということで選ぶと,やっぱり Xiaomi が最有力候補になった.というわけで GearBest で Redmi 4X 購入.送料等全て含めて¥13,349也.

で,届いた.Redmi Note 3Pro のときは袋の中はダンボール箱で梱包されていたが,今回の大きさはどう見てもプチプチで包んだくらいの大きさしかない.
国際便って非常に扱いが雑なのか,プチプチでくるんだくらいでは箱がバキバキになるので,いやーな予感がしつつ開封してみると,ビーチマットみたいなクッションで包まれていた.

でも箱の角は凹んでいいる(;´д⊂)
この梱包でどんだけ力をかけたら凹むんだよ(;´д⊂)
今回は無事だったけど,下手すりゃ中身のスマフォも折れ曲がるんじゃなかろうか.

つうわけで開封.
いつものように内容物は充電器と USB ケーブルだけで,イヤフォンは付属せず.まぁこれだけのコスパだから文句もないけど,そろそろ充電器も別売でもいいんじゃなかろうか.
ちなみに USB は Micro USB で,Type-C ではない.

おもて.ハードキーがないスッキリしたデザイン.
「戻る」キー等は画面下の静電式のタッチキーだが,ここはバックライト等ないので暗闇では押しにくいかもしれない.

うら.シャンパンゴールドを買ったけど,もうちょっと薄い金色かと思ったら,思った以上に金ピカでワラタw

ちなみに Xiaomi のスマフォ裏には「mi」のロゴがあるけど,「どこのメーカー?」って聞かれてこの「み」ロゴを見せたら「?」って顔されたwww

Redmi Note 3Pro との大きさの比較.
かつて RN3P と同じくらいの大きさの GalaxyNote を使っていたときは見る人みんなから「でかっ」て言われたけど,今や RN3P くらいの大きさが普通になってきて,R4X の小ささが逆に新鮮 (といっても 5inch の大きさがあるが)

ちょっとだけ使った感じでは,RN3P とほぼおなじ感想で,超満足.中華スマフォ恐るべし.
◎メタルボディで質感は非常に高い.
◎動作もサクサクで問題なし
◎バッテリー 4000mAh で自分の使い方だと 3日持つ
◎指紋認証が超便利

けど,今回に限っては「LeEco Le S3 X626」のほうがよかっかたもそれない (クーポンで R4X より安かった).バッテリー以外は LeEco のほうがスペックが上.

到着までのタイムラインはこんな感じ.(Priority Line)
2017-12-06 22:59:55 Gearbest に注文
2017-12-08 10:54:16 シェン・ジン 貨物は、送付者から取られました。
2017-12-08 15:02:28 シェン・ジン スキャンされた船積み
2017-12-09 08:47:23 中国 商品は深センを残した
2017-12-10 12:32:00 りんくう営業所 ↓集荷
2017-12-10 21:49:00 関西中継センター ↓輸送中
2017-12-11 08:28:00 xx営業所 ↓配達中
2017-12-11 12:59:00 xx営業所⇒配達完了

2017年7月31日月曜日

LineageOS を Redmi Note 3 Pro にインストール

Redmi Note 3 Pro に LineageOS を入れてみた.目的は,Android 6.0→7.1 に上げることによって,いわゆる Doze 問題 (過剰な省電力制御により GMail その他の着信通知が来ない問題) が解決するかもしれないと期待して.

手順はここで,使ったファイル (バージョン) は以下の通り.特に Firmware は LineageOS のバージョンに見合ったバージョンでないと,LineageOS インストール時にエラーで怒られる.
kenzo_global_images_6.11.3_20161103.0000.00_6.0_global_f7309f8161.tgz
lineage-14.1-20170726-nightly-kenzo-signed.zip
miui_HMNote3ProGlobal_V8.5.3.0.MHOMIED_Firmware.zip
open_gapps-arm64-7.1-pico-20170729.zip
ZCX_TWRP_0917.zip
addonsu-14.1-arm64-signed.zip

インストール後の問題は特に見当たらず,すべてのデバイス・センサも正常動作している.

で肝心の通知問題は,電源 OFF 30分ほど経過で GMail, Fusion IP Phone ともに着信しない orz
色々探ってみたところ,これら着信通知が来ない原因は複数ありそう.
(1) アプリの設定.GMail だと,新着メールの通知設定とか
(2) Android の設定→電池→電池の最適化 の設定
(3) SIM・キャリア依存の問題
(4) 機種固有・使用者固有の環境
他にもあるかもしれないが,とにかく複数条件の AND になっているため,人によって解決する・しないがバラバラで,情報としても混沌としている.特に (3) は見落とされがちなのかこれに言及しているページは少ないが,とにかく (3) に関して色々ぐぐってみるとそのものズバリのページ発見!!
自分も 0sim なので,4分に設定したところ,今のところ GMail, IP Phone, LINE どの通知も問題なくなったヽ(´ー`)ノ
もしかしてこれ設定したら,OS を入れ替える必要はなかったんかも...