2023-05-11

Firefox Androidにおけるresident key (Discoverable Credentials) 対応

これの続き

Firefox AndroidにおいてはWebAuthnの実装をGoogleのFIDO2ライブラリを使っている。このライブラリはWebAuthn APIをそのままJavaのインターフェイスにしたようなものなので、Firefox AndroidにおけるWebAuthnの対応はこのライブラリの実装内容に依存している。

今年になってこのライブラリがアップデートされ、resident key (Discoverable Credentials) 対応が含まれた。ただ残念?なことにそのAPIを使うと、CredentialsがGoogle Password Managerで他のデバイスとGoogleアカウントを通じて同期するようになる。要は勝手にPasskey対応になってしまう。もちろん同期しないオプションなんてアプリケーション側が使えるAPIには存在しない。なお、デバイスがGoogleアカウントにサインインしてない場合、Passkeyが作成できないというエラーでWebAuthn APIは失敗する。

このような状況なので、いくつか懸念点はあるんだが、Firefox AndroidのStable版はabout:configを使えるわけではないので、デフォルトオフで実装は入れておいた。Firefox 114のBetaおよびNightlyでabout:configで該当設定を変更すれば使えるようになる。

PasskeysがGoogleアカウント経由で同期されるということは、例えば、ChromeでPasskeyを使ってサインインした場合、そこで利用されたCredentialがFirefoxでも使えてしまう (もちろん逆も同じ)。そのような感じでいろいろどうかと思う動作がいろいろあるので、Bug 1831137に解決しないといけない問題は書いてある。個人的にはAndroid 14以上の場合だけ使えるようにしてもいいかもだけど、まだ最終的な結論は決めてない。なぜAndroid 14以降なのかというと、このバージョンではCredential Provier Serviceというものが導入される予定で、Autofill Serviceのようにシステム側で使うように設定しておけば、Google Passowrd Managerではなく、設定したサードパーティのサービスが使える予定らしい。Android 14が出てから考えよう

2023-04-22

MacBook Air (2020) M1のUSB-Cポートが壊れたのでApple Storeで交換 (修理) した

最近、ビデオ会議のときはMacBook Airを使っている。理由は自宅で使っているDebian/sidな環境でスピーカーフォンが使えたり使えなかったりと不安定だからなのだが (これはpipewireに変わってから頻発してるので、どうにか原因は突き止めたいと思っている)、ミーティングの時間にMacBook Airを使おうとしたら、電源が入らなくなっている。USB-Cポートが一つ壊れていたのだが、こっちのポートも壊れたか、マザーボード自体壊れたっぽい。新しいものを買うという選択肢もあるのだけど、すぐ直ったらラッキーなので、Apple Storeに修理の予約を入れた。

Apple Storeで現象の説明 (電源が入らない) を説明した後、USB-Cポートも一つ壊れているので、両方壊れているのかもしれないという話をしたところ、一回中身見ますね、ってことで自分のMacBook Airをバックヤードに持っていって、分解して調査をしてもらった。

その後、すぐ戻ってきて、

  • 壊れたUSB-Cポートは、どうもゴムらしきものが挟まっていて、それが原因っぽい
  • 今まで使えてたUSB-Cポートは洗浄してみてどうなるかを調べる

という話になり、作業した後にチェックすると、今まで使えてたUSB-Cポートはちゃんと動作する (= 充電が開始され、電源が入る) ようになり、もう一つの前から壊れてたポートは、動かなかったり動いたりと不安定な状態だった。「このままでもいいですけど、ボード交換という修理も可能です。交換の場合は15000円強になります」という説明を受けて、それだったら修理にするということで修理に出した。値段の大部分は作業料で、実際のボード部分は2000円らしい

修理に出したのが夕方で翌日の夕方には修理完了ということで、Apple Storeでピックアップ可能になってた。一日でピックアップできるのは非常に満足だった。昔東芝が秋葉原のサービスセンター持ってた時に、運が良くてすぐピックアップ可能だったのだけど、販売元が修理の際にちゃんと説明してくれるのは非常に満足度高いよねと

2023-03-24

How to build Firefox for Linux/riscv64 on Ubuntu 22.10 + Unmatched

A people asks me about how to build Firefox/riscv64. Since all patches to build it are merged, so the instruction is updated from previous. The following instruction is on Ubuntu 22.10 on riscv64gc

  1. Clone firefox code from mozilla official repository
    • hg clone https://hg.mozilla.org/mozilla-central (Mercurial)
    • git clone https://github.com/mozilla/gecko-dev (git).
  2. Change current directory to cloned directory
    • cd mozilla-central (if using mercurial)
    • cd gecko-dev (if using git)
  3. Create mozconfig file in current dicrectory. File content is the following
    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
    mk_add_options AUTOCLOBBER=1
    
    ac_add_options --enable-application=browser
    ac_add_options --disable-debug
    ac_add_options --enable-optimize
    ac_add_options --disable-tests
    ac_add_options --without-wasm-sandboxed-libraries
  4. Install rust. See rustup.rs
  5. Install clang and nodejs
    • sudo apt install clang nodejs
  6. Run ./mach bootstrap and select "2. Firefox for Desktop"
  7. Run ./mach configure
  8. Run ./mach build. It spends 8-9 hours.

Enjoy!

2023-03-22

Google Mobile ServiceのFIDOパッケージを使うと勝手にPasskey対応になる

Google Mobile Service (GMS) にFIDOのパッケージがあるんだが、今年リリースされたVersion 19でWebAuthnにおけるDiscoverable Credentials (Resident key)の対応ができるAPIが追加されている。

Blinkを使っていないとあるWeb BrowserのAndroid版におけるWebAuthn対応はこのGMSのパッケージを使っているおかげで、Resident keyの対応をしていなかったのだが、このパッケージのバージョンにアップデートすれば解決するかも?と考えて、手元で修正コードを書いてみたんだけど、以下のように表示されて勝手にPasskey対応になるっぽい。

上記のように勝手にPasskey対応になってしまい、しかもGoogleアカウント内に同期されちゃうから、とあるWeb Browserの事情だと実装するには、いろんな人たちの許可取らないといけないので、Resident key対応は一時中断することにした。個人的にはPasskeyを使うかどうかのオプションが欲しいのだけどないっぽいし、あの検索会社自体の都合でそれをつけてくれるのはないだろうな、しかもこのパッケージ、GMSだし。

2023-03-16

Pixel 6aの画面が割れたのでiCrackedで修理した

仕事でスマホOSの開発、デバイスリリースもやったし、今もスマホOS向けのWebブラウザ作ってる仕事をしてるわけだが、なんでもスマホに取り込むということはなおさら信用できない。今回旅先でPixel 6aを落として画面を割ったときも、ガラス面が割れるだけだと良かったのだけど、パネルごと割れてしまって、画面が映らなくなった。そんな状態になったら、画面を確認することはできないわけだから、飛行機のチケットとか (QRコード)、電子マネーのチャージとかもできないわけで。そもそも落とす自分が悪いわけだけど、スマホにすべて取り込むというのは正直ないなと改めて思う。

そんな話はさておき、自分が所有しているアメリカン・エクスプレスではスマホの盗難・故障に対する保証制度 (スマートフォン・プロテクション) というものがあり、修理金額の一部を補填してくれるので、それを行った。そのときのお話。

まず、この保証制度を申し込むためには、以下のものが必要になる

  • そのスマートフォンを買った際の領収書。Pixelの場合はGoogleから買った際に送られてくるメールで問題なし
  • 故障を証明する写真。今回は画面が割れている本体の画像
  • 修理内容、代金を証明する書類。今回の場合はiCrackedで修理を行ったので、その作業が書かれた書類。修理されたときに渡される

今回の修理はiCrackedで行った。ここはGoogleの正規サービスプロバイダなので、ここで修理しても本体保証は変わらないらしい。店舗自体が都内にはいくつもあるのでネットで申し込んで空いていれば当日に修理を行ってもらえる。修理時間も1時間もかからないので、郵送よりも実店舗に直接行くのが便利だと思う。

なお、AMEXのスマートフォン・プロテクション、申込みから実質2営業日くらいでお金が振り込まれるので、非常に便利でした。でもGoogleはUSでやっているPreferred Careを日本で展開できないのはなんでだろう。売れてないんだろうな

2023-03-07

Oliveに移行しようとしたら、利用可能な口座がありませんと言われる

親への生活費とか家賃の振り込みを毎月行う必要があり、銀行自体も各々で違うので振り込み手数料をできる限り安くする方法をいろいろとっていたのだが、三井住友銀行 (SMBC) でOliveというサービスが始まり、手数料を下げられそうだったので、移行することにした。

アプリをインストールして、SMBC IDというアカウントを作り、早速口座を移行しようとしたら、"Oliveアカウントに切替可能な口座がありません" というエラーが起きた。Oliveアカウントの切替診断 から辿れるFAQを見ても、不可能条件に合致しておらず、SMBC Directから口座の種類を見ても "残高別金利型普通預金" なので、全く理由がわからない。しいてあげれば、この口座はさくら銀行時代に作ったものをずっと使っている。キャッシュカードもSMBCに変更してるし、なにか内部で変な契約になっているしか思えない。

悩んでも仕方ないので、SMBCのチャットサポートで問い合わせようにしても、混雑してて問い合わせできないので、SMBC Direct経由でメールで問い合わせた。

一日後、返事があり、どうも自分の口座は「カードローン(総合口座型)」というものなっているらしく (検索してもほぼ情報が存在しない)、カードローン口座の契約を止めればOliveへの切替可能とのことで家の近くの支店でカードローン口座を止めてきた。銀行の受付で説明しても「???」な顔をされたので、これに合致する人はすくないのではと思う。

なんで、こんな契約になってかをいろいろ思い出してみると、心当たりがあって、口座を作った時に「給料振り込み口座にしていただければ、10万円まで口座残高がマイナスになっても可能」というようなものを契約した覚えがたしかにあり (あの頃は新卒社会人でいろいろ借金あった)、それが銀行が変わってくにつれ、最終的に「カードローン(総合口座型)」という契約になったんだろうと推測される。ただ、SMBC Directやアプリで見ても "残高別金利型普通預金" としか表示されないので、わかるはずないよねと。

利用可能な口座がありませんと言われる人は、SMBC Directのメール問い合わせで聞くといいと思う。結果として実店舗行くことになると思うけど

なお補足だが、銀行に問い合わせた時、切替不可能な条件に以下があったのは笑った。そりゃそうか。

* 口座名義に銀行のシステム上反映することのできない漢字が含まれる場合

2023-01-06

2022年に買ったもの

今年は書く内容のあるものを買ってないなぁと思いながら。

clockwork DevTerm R1

ここにすでに書いてあるが、補足。

  • キーボードがしょぼくて、ゆっくりじゃないと入力がほぼ不可能。結果としてUSBキーボード差さないと使い物にならない。
  • ローエンドの阿里巴巴のチップ、GPUがまともに入ってないので、表示に関してはただ表示できるレベルの遅さ

初めてRISC-V64デバイス買うのであればいいけど、SiFiveのボード持ってるから、まぁ触らなくなっちゃった

Logicool LIFT

MX Verticalユーザーだったのだけど、トラッキングが調子悪くなってきて (今までのLogicool製品では経験なかった)、買い替えるデバイスをどれにしようか考えてるときに発売になったので。サイズ感はこっちのほうが好みなので、買ってよかった。

Google Pixel 6a

前まで使ってたPixel 4aの画面を割ってしまったので。Pixel 4aのAndroidのバージョンも13で打ち止めだし、14へ向けてのデバイスが欲しかったので購入。充電時とかに無駄に熱くなるとかちょっと重いとか、Pixel 4aに比べると出来がいいとは思わなないけど、しょうがないよね。

なお、画面を割ったPixel 4aは、東急ハンズに入ってる iCracked (Googleの正規修理業者) に持ち込んで画面を交換してもらいました。1時間30分くらいで交換終了して約2万円ほど。壊してもいい検証機に格下げ。