知的好奇心 for IoT

IoT関連の知的好奇心を探求するブログです

Google Assistantを使うためGalaxy J SC-02FにカスタムROMを焼いてみた

前回の記事で予告していた通り、Google Assistantをぼくの携帯で使えるようにした手順をお知らせします。

ぼくは中古のdocomo GALAXY J SC-02FをOCNモバイルONEで使用しています。巷でSIMフリー携帯の記事が氾濫していて、コストパフォーマンスのいい魅力的な携帯が沢山紹介されていますが、携帯の一番重要なことを(わざと)失念していることが多いんです。

携帯電話ですから、一番重要な事は電波をつかむ事だとぼくは思っています。いくらスペックが良くても繋がらない携帯はただの箱です。日本の携帯電話会社から出ている携帯は、当然のことですが自社のネットワークに合うようにカスタマイズして販売されています。SIMフリー携帯ではなく中古のドコモ携帯を使っている理由は、この繋がりやすさとおサイフケータイをサポートしているからでした。

しかし、SC-02FのOSの更新がAndroid 5.0で止まっていました。ポケモンGOは使えたのですが(GoogleポケモンGO対応・対策のせいでGPS系の動作が不安定になっていましたが)、とうとうGoogle AssistantでAndroid 5.0が切り捨てられてしまいました...。

 

Google Assistantの始め方※2017/6/20追加

Google Assistant Helpページに次のように書いてありました。(原文は英語)

掲載日が書かれていないのですが、今年の2月下旬にアナウンスがあったようです。

使える言語

  1. Android Phones (Pixel以外)
    Goolge Assistantは米国英語に対応。徐々に米国以外の英語、ドイツ語、フランス語、日本語、ポルトガル語に対応する。
  2. Pixel Phones
    英語(米国、英国、カナダ、インド、オーストラリア)とドイツ語に対応。徐々にフランス語、日本語、ポルトガル語に対応する。

Goolge AssistantをAndroid Phoneで使うのに必要な条件

  • Android 6.0以上
  • Googleアプリ 6.13以上
  • Google Playサービス
  • 1.5GBのメモリと720pのスクリーン解像度
  • 電話の言語を上記の言語に設定すること

なぜ、この情報を追加したかというと、元々書いていた2のPixelモドキにする方法の他に、1のAndroid Phones(Pixel以外)で簡単に実現する方法を見つけたからです。

 

日本語版が使えるようになっていた、だがしかし※2017/6/30追加

今日、気づいたらぼくのGalaxy J SC-02Fで日本語版のGoogle Assistantが使えるようになっていました。だがしかし、日本語版では肝心のIFTTTのGoogle Assistantが使えなかったんです。ガーン!!!

日本語版で気付いたこと※2017/7/1追加

1.英語版より機能が少ない。

英語版のサービスにはHome control, News, My Day, Shopping list, Shortcutsが表示されていますが、日本語版はサービスに何も表示されていません。

f:id:IntellectualCuriosity:20170701181824p:plain

2.IFTTTのGoogle Assistantが動作しない。

IFTTTのGoogle Assistantでカスタムコマンドを認識すると「Yes, Master!」と答えるように設定していますが、カスタムコマンドを認識できないようです。

f:id:IntellectualCuriosity:20170701183132p:plain

3.言語をEnglish (United States)にしてGoogleアプリを初期化後に言語を日本語 (日本)にすると、Googleアシスタントの設定が英語版と同様に表示されるがGoolgeアシスタントが使えない状態になる。

f:id:IntellectualCuriosity:20170701184008p:plain

日本語でGoogleアプリを初期化するか、言語設定を他の言語に複数回変えていると日本語版Googleアシスタントが使えるようになりました。

 

Google Assistantを有効にする最も簡単な方法※2017/6/25追加

”簡単な方法”を何回も紹介してきましたが、たぶんこれで打ち止めです。

今回、見つけてしまった記事はこれです。

20152017/6/15日の記事なので、かなり新しいです。

要するに、「Googleアプリのベータ版を入れるとGoogle Assistantを有効にできる」という内容で、記事ではGoogle Play開発者サービスもベータ版に変えていましたが、ぼくの携帯ではその必要はありませんでした。

確認した組み合わせはこんな感じです。

Googleアプリのベータ版を入れるには

Google PlayストアアプリでGoogleアプリを表示して、下までスクロールするとこんな表示が現れるので「登録する」を選びます。

f:id:IntellectualCuriosity:20170625183700p:plain

登録が終わると、ライブラリタブの右にベータ版タブが追加されます。更新と表示されていたら更新します。

f:id:IntellectualCuriosity:20170625183918p:plain

Google Assistantを有効にするには

ぼくが試した限りでは以下の手順で英語のGoogle Assistantが使えるようになりました。

  1. 「設定」の「言語と入力」を選んで「English」-「United States」を追加する。
  2. 「English(United States)」を一番上にして言語を英語に変える。
  3. 「Settings」の「Apps」から「Google」を選ぶ。
  4. 「Storage」を選ぶ。

    f:id:IntellectualCuriosity:20170625185453p:plain

  5. 「MANAGE SPACE」を選ぶ。

    f:id:IntellectualCuriosity:20170625190410p:plain

  6. 「CLEAR ALL DATA」を選ぶ。「Delete all data?」と聞かれたら「OK」を押す。
    f:id:IntellectualCuriosity:20170625190716p:plain
  7. ホーム画面でホームボタンを長押しするとGoogle Assistantの設定画面が表示されます。

    f:id:IntellectualCuriosity:20170625191530p:plain

Googleアプリの設定でGoogle Assistantの対応状況がわかります。残念ながら日本語はまだ使えませんでした。

f:id:IntellectualCuriosity:20170625194214p:plain

データをクリアした後にGoogleアプリでカード読み取りエラーが出た場合は、ベータ版のGoogleアプリをアンインストールしたら直りました。アンインストールしてもGoogle Assistantは有効になったままでした。

 

Pixel以外のAndroidGoogle Assistantを使う※2017/6/20追加

この記事ではGalaxy J SC-02FにLineage OSというカスタムROMを焼くのですが、カスタムROMにはGoogle PlayなどのGoogleアプリが入っていないので、Goolgeアプリが詰め合わせられたOpen GAPPSを追加で焼く必要があります。

Open GAPPSのパッケージには沢山の種類があり、一番上の「aroma」を選ぶとTWRPで焼く時に焼くものを選択でき、「Google Assistant」を有効にする項目にチェックを付けることができるようになります。

f:id:IntellectualCuriosity:20170620165425p:plain

ただ、「aroma」には問題 があって機種毎のTWRPのバージョンとの組み合わせによって動作しない場合があります。

また、「aroma」以外のパッケージはOSと同時に焼くことができますが、「aroma」の場合はOSを焼いてOSの初期設定を行った後に焼かないとうまく動作しませんでした。

ぼくがGalaxy J SC-02Fで試してうまくいった組み合わせは次に通りです。

 

PixelモドキでGoogle Assistantを使う

で、本題です。PixelモドキとしてGoogle Assistantを使えるようにする条件はこんな感じです。

  • Android 7.0(Nougat)以上 -必須条件
  • Root取得済み -下の条件のどちらか必須
  • カスタムリカバリ導入済み -上の条件のどちらか必須
  • Googleアプリ 6.5.35.21以上 -必須条件

Pixel用のGoogle Assistantモジュールを組み込むような作りになっているので、Android 7.0が必須となっています。

ぼくが見つけたxdaの記事はこれです。

 

Galaxy J SC-02FをAndroid 7.0以上にする

で、泣く泣くおサイフケータイを葬り去る決意をして見つけた記事がこれです。

ぼくはこのOSを初めて知ったのですが、Lineage OSはカスタムROMとして人気のあったCyanogenModの後継だとWikiに書いてありました。

Lineage OS自体がAndroidにとってオフィシャルじゃないのに、今回導入することにしたのはアンオフィシャルなLineage OSという非常にリスキーなものです。ぼくは一応バックアップ携帯がある状態で、メインで使っているGalaxy J SC-02FにアンオフィシャルなLineage OSを焼きました。

 

カスタムリカバリを焼く

Lineage OSを焼くにはGalaxy J SC-02Fにカスタムリカバリを焼いておく必要があります。有名なカスタムリカバリにはTWRPなどがありますが、カスタムリカバリは機種ごとに対応したものを見つける必要があります。これに結構苦労しました。Galaxy J SC-02F用のTWRPがなかなか見つからず(リンク切れとか動かないとか)、やっと見つかったのが少し古いTWRP 2.8.5.0でした。

これをGalaxy J SC-02Fに焼くにはOdinというサムスン製のファームウェア・フラッシュ・ツールを使う必要があります。ぼくはGalaxy J SC-02FをRoot化する時にダウンロードしていたOdin3 V3.12.3を使いました。

Odin3を起動してAPにTWRPをセットします。Galaxy J SC-02Fの電源を切ってから「ボリュームダウンボタン+ホームボタン+パワーボタン」を押して起動すると「警告!!」画面が表示されますが無視して「ボリュームアップ」ボタンを押し、USBケーブルを接続後に「Start」ボタンを押すとTWRPが焼かれます。

f:id:IntellectualCuriosity:20170610234350p:plain

カスタムリカバリを焼いても、電源オンで今までのOSが起動します。

 

Lineage OSを焼く

必要なファイルのダウンロード

How To Install Unoffial Lineage OS 14.1 On Samsung Galaxy J (SC-02F)」の中ほどにある「DOWNLOAD LINEAGE OS」という青地のダウンロードリンクから「lineage-14.1-20170325-UNOFFICIAL-js01lte.zip」をダウンロードしました。

f:id:IntellectualCuriosity:20170611001343p:plain

次に隣の「DOWNLOAD GAPPS」のリンクで開いた「HOW TO INSTALL GAPPS IN CYANOGENMOD 14 / 14.1.」の「1.Download Google GApps For Android 7.0 / 7.1 Nougat ROMs」リンクをクリックして表示されるダウンロードページからOpen GAppsをダウンロードしました。ぼくがダウンロードした時はデフォルトのstockでファイル名が「open_gapps-arm-7.1-stock-20170603.zip」だったので小まめに更新されているようです。

f:id:IntellectualCuriosity:20170611001710p:plain

TWRPでダウンロードしたファイルを焼く

ダウンロードした2つのファイルを携帯の内部ストレージのルート(/sdcard)にコピーして電源を切ります。電源が切れた状態から「ボリュームアップボタン+ホームボタン+電源ボタン」でTWRPを起動します。

新しいOSを焼く前にインストール先を綺麗にします。[Wipe]-[Advanced Wipe]を選んで、以下のようにチェックを付けて「Swipe to Wipe」をスワイプして実行しました。

f:id:IntellectualCuriosity:20170611015211p:plain

次にホームに戻って[Install]を選ぶとファイルの選択画面になります。Lineage OSのダウンロードファイルを選んだ後[Add More Zips]を押して、Open GAppsのダウンロードファイルを選びます。ファイルを選択後に[Swipe to Confirm Flash]をスワイプして実行しました。リブートする前に[Install SuperSU?]と聞かれますが、これはトラップです。絶対にここでインストールしてはダメです。せっかく焼いたOSが起動しなくなってしまいます。

f:id:IntellectualCuriosity:20170611020229p:plain

初回のLineage OSの起動には7分くらいかかりました。

 

Open GAAPS aromaの選択画面※2017/06/20追加

殆どデフォルトで大丈夫なのですが、カスタムを選んだ場合の画面を幾つか載せておきます。

この画面はこのままで大丈夫です。

f:id:IntellectualCuriosity:20170620175400j:plain

この画面はインストールしたくないものにチェックを付けますが、そのままで支障はありません。

f:id:IntellectualCuriosity:20170620175759j:plain

この「Advanced Options」で「Google Assistant」を有効にできます。ぼくはその下の「WebViewStub」も選びました。

f:id:IntellectualCuriosity:20170620175953j:plain

インストール画面です。OSを先に焼いて初期設定をしておかないと、ここで失敗しました。

f:id:IntellectualCuriosity:20170620180536j:plain

うまく焼けて再起動した後、言語をUS-EnglishにするとGoogle Assistantが使えるようになります。

 

Google Assistantを焼く

[Flashable] Automatically Install new Assistantのページの中ほどにある「**Download**」リンクから3つのファイルをダウンロードしました。

  • GoogleAssistantBuildProp.zip
  • GoogleAssistantVelvet.zip
  • tweak.prop

Lineage OSの時と同様に、ダウンロードした3つのファイルを内部ストレージのルート(/sdcard)にコピーしてTWRPで焼きました。

起動して携帯の言語をEnglish(United States)にするとGoogle Assistantが使えるようになりました。ホームアプリに「Pixel Launcher」を選択していると、Google Assistantが有効になっている場合にはホーム画面の左上に表示されているGマーク+マイクがGマークだけになるので簡単に見分けることができます。

f:id:IntellectualCuriosity:20170611024815p:plain

これで、英語(ドイツ語も)のGoogle Assistantが使えるようになったのですが、いったいいつになったら日本語が使えるようになるのやら...。しかもユーザーの同意なしにシステムを変更して使えるようにするって...問題ないのでしょうか?