
2026/11/05 0:18
Android 16 を点字ディスプレイ付きキーボード電話に移植する作業
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
弱視の利用者が、Android 11(2024年4月のセキュリティパッチ適用済み)とMediaTek Helio P60チップセットおよび4 GBのRAMを搭載し、元々不安定で過剰なプレインストールアプリに悩まされていたKapsys SmartVision3を、カスタム改変版Android 16(2026年5月のセキュリティパッチ適用済み)を実行する高速かつアクセスしやすいスマートフォンに変容させました。同デバイスは、利用者の母親の古いNokia 1280の代替としてeBayで400ドルで購入されましたが、頻発するクラッシュ、カクつき、バックグラウンドタスクの失敗を伴うとともに、重度のプリインストールアプリを内蔵しており、TalkBack用のキーボード入力を処理するためにはカスタム
libinput.so関数(SV3KeyboardForTalkback)が必要とされていました。Universal Android Debloater NGといった標準的なデブロアーツールの試みは失敗に終わりました。これはROMがカスタムリカバリーへのアクセスを許可しておらず、本質的に「腐っていた」ためです。初期のLineageOS 23.2(Android 16)をGSIとしてフラッシュさせる試みでは、繰り返しリカバリーモードへのブートループが発生し、ログには"Error: Retry fail /cache partition not found"や未知のパラットフォームデバイスタイプといったエラーが表示されました。チームは、Androidが"dont check"フラグをチェックする前に未署名のvbmetaファイルを拒否することに気づき、Googleの公開テストキーで署名して対処せざるを得ませんでした。アンロックとvbmetaの修正を行った後も、MTKClientによるバックアップのフラッシュではウォッチドッグのフリーズを引き起こし、手動での15秒間の電源ボタンリセットが必要でした。重要な決定的な突破口は、KapsysのアプデートAPI(デバイスIMEIとシリアル番号を使用して)を使って公式ファームウェアの完全なバックアップを抽出できたことです。これにより、ADBによる不完全なバックアップ(87個のファイルが欠落)を克服しました。Dynamic System Updates(DSU)を使った大規模なデバッグを経て、利用者はカスタム改変版Android 16を実装し、以下の特定の変更を加えました:キーボード入力およびTalkBackインタラクションを再現する新しいアクセシビリティアプリの追加、TalkBackのウクライナ語検出機能への修正、不要な画面ステータスアナウンスを静かにするためのTalkBackリソースへのパッチ適用。最終的な結果として、ブLOATが除去され、処理速度向上、バッテリー持続時間の延長、カスタムowntracksサーバーによる位置情報プライバシー保護、そしてGoogle AssistantではなくGeminiを使用するよう変更された動作可能なアシスタントボタンが実装されました。このプロジェクトは、公式サポートが不十分なデバイスであっても、高度なファームウェア改変によってアクセシビリティニーズのために効果的に再利用可能であることを示しています。本文
視覚障がい者のためのノキア 1280→SmartVision3: Android 16 化とアクセシビリティ改善への道
母親の老式スマホ(元ノキア 1280)が故障し、新しい端末を探すことに。 視覚に不自由な彼女にとって**「ボタン操作」と「音声ガイド(TalkBack)」**は不可欠でした。
キャプシス社製「SmartVision 3」を購入したが、OS が古く動作不良が続く中、Android 16 (GSI) へのアップグレードとカスタマイズに成功しました。
背景:なぜこの端末を選んだのか?
- 現状の課題
- 母親は視覚が不自由であり、スマートフォンの複雑な操作や画面表示には適していませんでした。
- 必要なのは物理キーパッドでの操作と、音声ガイド機能付きの安価な Fire TV Stick を使用していたこと。
- 購入経緯
- eBay で中古として40 ドルで購入しました(キャプシス社の SmartVision 3)。
- 期待した機能: 物理キーパッド、音声ガイド内蔵、アプリ「Be My Eyes」対応など。
- 初期の問題点
- OS の古さ: Android 11 でセキュリティパッチは 2024 年 4 月更新のみ(保証期間中だが事実上終了)。
- 動作不良: アプリの強制終了が多く、バッテリー drain が激しかったです。
- 解決不能な欠陥: テレグラムや Google アプリが頻繁にクラッシュし、音声認識が停止しました。
製造元は Android 12 以上を「不可能」と宣言しましたが、私はその制限を受け入れませんでした。
課題分析:なぜ起動しないのか?
- 根本原因
- Google アプリの自動更新によりクラッシュループに陥っており、音声入力機能(ディクテーション)が停止しました。
- キャプシス社のシステムライブラリ
がキー入力を介して TalkBack を制御しており、純粋なアプリ移植では解決できませんでした。libinput.so
- 技術的障壁
- チップセット: メンテック・ヘリオ P60(MEDIATEK)。
- OS/カーネル: Android 11 / カーネル 4.14.186。
- ドライバの古さ: 2021 年 12 月のドライバを使用中(2027 年保証との不整合)。
改造プロセス:失敗と試行錯誤
1. バックアップとアンロック
- バックアップ: 連絡先や写真などは正常にバックアップできましたが、アプリデータは復元できませんでした。
を介した BROM(ブートローダー)経由での全ストレージバックアップを試みるも、ハンドシェイク失敗により断念しました。mtkclient
# 例:BROM モードへの接続試行(失敗) ~/dev/sv3> uv run mtk.py rl backup/raw --skip userdata [LIB]: Status: Handshake failed, retrying... - アンロック: キャプシス社が提供したコマンドのみで解除できました。
fastboot flashing unlock # 出力結果 OKAY [ 69.642s] unlocked: yes
2. LineageOS (GSI) のフラッシュと失敗
- 初期計画: LineageOS 23.2 (Android 16) を GSI として導入。ブート署名チェックをオフ化しフラッシュ。
- 結果: ブートローダー起動時に直ちにRecovery モードに強制転送されました。
- 「工場出荷状態のリセット」を選んでも Recovery に戻り続けるバグが発生。
- 調査と発見:
- 複数回の試行後、カーネルログを調査すると
プロセスが死亡し、端末を再起動していたことが判明しました。init - Android のセキュリティルールにより、特定ファイルの存在確認でクラッシュが生じており、そのログは出力されませんでした。
- 複数回の試行後、カーネルログを調査すると
- 解決策: 署名チェックオフ設定を変更し、Google の公開テストキーでの再署名を実行。これで Fastboot モードへの強制転送が解消されました。
3. DSU (Dynamic System Updates) とテスト導入
- 新しいアプローチ:
- Android のスロット機能(Slot A / Slot B)を活用しました。
- オリジナルの Android 11 が Slot A にあり、新しいテストビルド(Android 16)を Slot B にインストールしました。
- クラッシュが起きた場合でも、再起動することで元の動作に戻る仕組みです。
- 修正内容:
- セキュリティルールの例外を追加し、
プロセスのクラッシュを防ぎました。init - これにより、Android 16(2026 年 5 月 セキュリティパッチ) が正常起動しました。
- セキュリティルールの例外を追加し、
カスタマイズ:アクセシビリティの向上
純粋な OS 移植だけでは不十分でした。物理キーと音声ガイドの連携を再構築しました。
アプリ開発と最適化
- 新しいホーム画面アプリ: キャプシス社の非互換なパッチを置き換え、独自の軽量アプリを開発しました(20MB vs 63MB)。
- TalkBack の統合:
- Android 標準の「偽キー」として矢印キーを設定。
- アクセシビリティアプリがカーソルを手動で操作する仕組みを実装し、スクリーンリーダーと物理キーを同期させました。
- 権限管理: アプリごとに許可を求めず、システムレベルで必要な権限を自動付与しました。
機能強化リスト
| 項目 | 改善内容 | 備考 |
|---|---|---|
| バッテリー | 長持ちするようになった | ベンチマークなしだがユーザー確認あり |
| 位置情報 | Google 追跡を廃止 → OwnTracks へ変更 | 15 分間隔または 100m 間隔でサーバーに送信 |
| 通知音 | ソフト化し、着信・アラーム音を調整 | 音量キー操作時の大きな起動音が改善された |
| ショートカット | タッチ反応のみだった行を修正 | テレグラムなどでの操作性向上 |
| 言語設定 | ウクライナ語音声へのフォールバック防止 | デフォルトにウクライナ語エンジン搭載 |
残されている課題
- 時刻表示: TalkBack が時刻を読み上げた後に「整列」を宣言してしまい、2 秒遅れる問題が解消されていない。
- Bluetooth: スキャン時に強制終了するバグがある(オフにした状態で使用)。
- アシスタントボタン: Google アシスタントのみ対応で、他の AI への設定が難しいため Gemini を再度採用中。
結論:改造後の成果
- 性能向上: クラッシュが消え、アプリ起動が劇的に高速化しました。ブロアウェアが削除されたため、RAM 確保率が改善されました。
- アクセシビリティ: 「不可能」とされた Android 16 上で、視覚障がい者向けの機能(物理キー操作)を維持しながら利用できました。
- セキュリティ: 2026 年 5 月の最新パッチに対応し、セキュリティリスクが大幅に軽減されました。
重要: この改造は、特定の技術的知見と「試行錯誤」の上に成り立っています。安易な模倣には注意してください。