1 ポイント 投稿者 GN⁺ 2024-08-30 | 1件のコメント | WhatsAppで共有
  • 2019年に設置した Advantage Air e-zone ダクト式エアコン制御システムは、壁面の Android タブレット1台が故障したことで暖房をオン/オフできない状態になった
  • 故障箇所は Daikin のエアコン本体や屋根裏の制御ボックスではなく、POE 給電の Android タブレットで、ユーザーの立場では実質的にオン/オフスイッチが壊れたのと同じだった
  • Advantage Air は保証終了後、タブレット単体を販売せず、当初は $1245 の制御システム交換を案内し、公式見積もりは無線温度センサー込みで $1697 まで増えた
  • ユーザーは既存タブレットを分解して隠れた USB と POE コネクタの配線を確認したうえで、Samsung Galaxy Tab 4 にコネクタを取り付け、アプリのデバイスモデル検査をパッチして e-Zone アプリを実行した
  • 調査の結果、最新タブレットが古い制御システムで動作できない主な障壁はハードウェアではなくソフトウェア上の制限に見え、その後、ハードウェア・プロトコル・API のドキュメント化リポジトリも作られた

壊れたのはエアコンではなく壁面タブレット

  • 家族は2019年に新居を建てる際、大型のダクト式 reverse cycle、つまりヒートポンプエアコンシステムを設置した
    • 建築パッケージ全体に含まれていたため正確な価格は分からないが、同規模の住宅見積もりを基準に $10k-$12k 程度と推定している
  • システムは2つの部分に分かれる
    • 実際の冷暖房機器は Daikin のエアコン
    • 屋根裏には各ゾーンの通風口を開閉する Advantage Air 制御ボックスがある
  • リビングの壁にある POE 給電の Android タブレットが Advantage Air e-zone インターフェースの役割を担っていた
  • e-zone で複数ゾーンの温度、通風口の開度、ファン速度を調整でき、スマートフォンアプリによるリモート制御も可能だった

保証終了6か月後に停止した制御タブレット

  • 2024年8月18日の日曜日、タブレットに「Sorry Google services has stopped」というメッセージが表示された
  • その後 e-zone アプリがクラッシュして起動しなくなり、再起動後は終わらない ANDROID ローディング画面に留まった
  • リカバリーモードで設定やパーティションを消去するなど、さまざまな方法を試したが復旧できなかった
  • 端末には見える USB インターフェースがなく、コンピューターに直接接続できず、「system integrity check」は複数のエラーを返した

公式サポートはタブレットではなくシステム全体の交換を要求

  • Advantage Air のサポートチームは保証期間が過ぎていることを確認したうえで、タブレットが死んだなら $1245 の新しい制御システムが必要だと案内した
  • 安価なタブレットだけ交換すればよいはずだという抗議に対しても、サポートチームは技術は進化し続けておりシステムに互換性がない、という趣旨で回答した
  • 当時、正常に動作していた構成要素はそのまま残っていた
    • エアコン本体
    • 制御ボックス
    • 故障したのは Android タブレットだけ
  • その後の公式見積もりにはタブレットと制御システムだけでなく無線温度センサーの交換まで含まれ、総額は $1697 になった
  • ユーザーは古いシステムで最新タブレットモデルを使っている事例を見て、タブレットだけでも解決できると判断した

既存タブレットの分解と POE コネクタの追跡

  • 壁からタブレットを外して分解してみると、POE 接続は標準的には見えず、中央のピンで 12V と 2V を送っていた
  • 内部には隠れた USB ポートがあったが、最初は fastboot、recovery、adb sideload のどのモードでもコンピューターが認識しなかった
  • メインボードを外して POE コネクタの追加配線をたどると、USB の 5V とデータラインにつながる3本の線を見つけた
  • データラインを切断した後、fastboot devices でタブレットが見えるようになった
  • その後 mtktool でブートローダーのアンロックを試みたが stage2 で失敗し、既存タブレット自体を復活させるのに時間をかけすぎたと判断した

核心は専用ハードウェアより POE アダプターとアプリの検査

  • 既存タブレットでハードウェア的に特別だった部分は POE アダプターだった
    • バッテリーを置き換えて常時電源を供給する
    • USB デバイスとしても機能する
  • POE コネクタを USB-A プラグに接続してコンピューターから検出しようとしたが失敗した
  • このデバイスはホストのように動作し、タブレットやスマートフォンにしか接続できないのではないかと考え、Android 端末を探し始めた
  • 2015年にもらった Samsung Galaxy Tab 4 を見つけて充電し、自分で半田付けしたコネクタを接続すると、動作の可能性が見え始めた

Android アプリのパッチでデバイス制限を回避

  • 元の e-zone タブレットは Android 6.0 を実行しており、Samsung Galaxy Tab 4 は Android 5.0 だった
  • Advantage Air のウェブサイトと apkpure から必要なアプリを入手してインストールした
    • AAService アプリ
    • Ezone インターフェースアプリ
  • 最初は「Not on AA Hardware」のようなエラーが出たため、Android アプリのパッチが必要だと判断した
  • Android アプリのリバースエンジニアリング記事を参考に、apktool で APK をディスアセンブルして再ビルドした
  • JAXE ウェブデコンパイラで APK を Java に近い形で確認した後、実際の修正は smali コードで行った

モデル名検査の変更だけでアプリが起動

  • AAService アプリの onResume() には端末が Advantage Air ハードウェアかどうかを検査する条件があり、失敗すると「Not on AA Hardware」を表示して終了する
  • 検査ロジックは Build.MODEL を複数のモデル名と比較する方式だった
    • 例: "eZone", "e-zone", "PIC7KS-EZ", "PIC7KS6", "PIC7KS6-EZ"
  • 既存タブレットのケース内側のステッカーでモデル名を確認した結果、コード上は -EZ 識別子が付いた PIC7KS6-EZ が必要に見えた
  • smali コードで元の Build.MODEL 値を返していた部分を、"PIC7KS6-EZ" 文字列を返すように変更した
  • apktool b で再ビルドした後、署名されていない APK を keytooljarsigner で署名した

サービスアプリと UI アプリを同じ方法で修正

  • 初回インストール時に INSTALL_FAILED_DUPLICATE_PERMISSION エラーが発生した
    • AAService アプリと eZone アプリが同じ権限を要求していたが、互いに異なるキーで署名されていたため
    • 作業を進めるため eZone アプリを削除した
  • パッチした AAService アプリは起動し、「System connected」通知が表示された
  • その後 eZone UI アプリでも同じデバイス検査コードを見つけ、同様に修正した
  • smali/com/air/advantage/w1/k.smali を修正して再ビルド・インストールした後、Samsung Galaxy Tab 4 で e-Zone が正常に起動した
  • 元のタブレットの復旧を諦めてから新しいタブレットで動作させるまで数時間かかった

コストと互換性について残った結論

  • エアコン設置業者は翌日、バンの後ろで見つけた古いタブレットを $400 で買えると連絡してきた
  • この価格も高いが、Advantage Air が最初からその選択肢を提示していたら受け入れていた可能性が高いと見ている
  • この修理は元の POE コネクタがあってこそ可能であり、Advantage Air のハードウェアを持っていない人には役に立たない
  • 同じタブレット故障がよくある問題なら、多少の半田付けと新しいタブレットだけで解決できる
  • 最新タブレットが古い制御システムで動作できないようにしている障壁は、ハードウェアではなくソフトウェア上の選択に見える

HN 後に集まった追加情報

  • Hacker News の議論で、同じ都市に住む gstar が同じ問題に取り組んでおり、システムが RS422 を使っていると書き残した
  • gstar は、タブレットを root 化して build.MODEL"MyAir5" に変更すれば、サードパーティ製タブレットでも動作すると付け加えた
  • HN 参加者の一部は、ハードウェア、プロトコル、API に関する情報を文書化するためにリソースを集め始めた
  • 関連リポジトリ: aa_interop

1件のコメント

 
GN⁺ 2024-08-30
Hacker News のコメント
  • なんてことだ。Perth にいるのだが、同じシステム、同じ問題に遭遇し、ほぼ同じ方法で解決して、記事にまとめているところだった
    このシステムは RS422 を使っていて、aaservice バイナリの中に base64 エンコードされた AES キーが入っている
    ESP32 ベースのオープンソースなコントローラー実装を作ろうかと考えていたところで、本当に妙な偶然だ

    • ちなみにタブレットを root 化すれば、build.MODELMyAir5 に変えるだけで サードパーティ製タブレット でもすべて動く
    • 誰かの役に立つかもしれないので、Advantage Air システムを制御するものを作っておいた: https://git.nethack.net/rob/aircon
      基本的には Android タブレットの API に話しかけて動かす方式なので、タブレットが死んだら助けにはならないが、ゾーンの平均温度に応じて全体の装置をオン/オフしたり、部屋の主のデバイスがオンラインかどうかと周辺ゾーンの温度に応じてベントを開閉したり、ゾーン温度を influxdb に送ったりすることはできる
    • そもそもなぜ制御システムに AES で保護された制御チャネル が必要なのか分からない
      考えられる意図は相互運用をより難しくすることだけで、セキュリティを望んでいたならハードコードされた AES キーなど使わなかったはずだ
    • 自分もこのシステムを使っている
      まだ故障してはいないが、その可能性が気になって通信プロトコルを文書化し、メイン制御ボードと通信する Pi HAT の設計まで始めた
      これもいつか記事にまとめないといけない
    • みんな同じような時期に死んでいるのを見ると、何らかのロギングシステムでストレージが壊れているように思える
      毎日似たような数のログを安価なフラッシュに書き込み続け、限界に達するという具合かもしれない
      このメーカーは恥を知るべきだ
  • 10年間放置していたブログを、この記事一本を書くために復活させたのがいい
    怒りと恨み は強力な動機だ

    • これがどれほどその通りか分からないだろうね :)
      全部アップグレードしなければならず、昔のサイトには SSL すらなかった
      でもあまりに腹が立ったので、他の人にも直し方を知ってほしかった
    • IKEA への怒りと恨みで、娘のベッドを一から自作した
    • 良いことではあるが、この記事に価値を持たせるには、どこかのソーシャルメディアで広めることに成功しなければならない
      すでに強いソーシャルメディア上の影響力があるか、そういう人を個人的に知らないと難しいし、HN でも運よく適切な時間に投稿したうえで、通報する集団に引っかからないことを祈る必要がある
  • 去年、家にエアコンを設置した
    独自仕様のスマート機能が付いた製品ではなく、IR リモコン で制御される機種をあえて選び、スマート機能は AliExpress の安価な IR ブラスターを Home Assistant につないで解決した
    部屋のダッシュボードには安価な Lenovo タブレットを壁に取り付け、スマホなしで照明とエアコンを制御できるようにしたのだが、こういう恐ろしい話を聞くと自分の判断にますます確信が持てる

    • 一部の機器には Home Assistant に接続しやすい 5V UART ポート があり、双方向通信もできる: https://static.xtremeownage.com/blog/2023/pioneer-mini-split...
    • 自分も同じ方式を考えたが、IR 制御では機器との 一方向通信 しかできない
      フィードバック機構がない場合、機器の状態と Home Assistant の状態がずれたときにどう解決するのか気になる
    • 同じ理由で Daikin を買った
      Wi-Fi モジュールは追加費用がかかるが、アプリのレビューを読んだところ、全体として「ある程度は動くがほとんど役に立たない」という雰囲気だった
      ESP32 IR 送信機を作って Tasmota IR を入れたところ、Daikin 対応がとてもよく、受信はできないが 100% 安定しているので不要に見える
    • 家に Lennox のヒートポンプがあるのだが、数か月前にメインの温度調節コントローラーが故障した
      Lennox もこうした独自仕様のシステムを使っているが、制御ボードに昔ながらの制御端子が見えたし、新しい床の施工中に設置業者が古い線を切ってしまう事故のおかげで、本来の4芯ではなく 5芯のサーモスタット線 が入っていた
      50ドルのサーモスタットをつないだところ電源とファンは入ったが、A/C コンデンサーは反応せず、純正の交換品は700ドル超、アップグレードは800ドルだった
      OfferUp でアップグレードモデルを400ドルで売っている人を見つけ、最初は「盗品だからあまり聞くな」みたいな雰囲気だったが、結局買った
      家に戻って接続したらファンは回るがエアコンは動かず、念のため外の熱交換器の電源を確認してみると、安全のために抜いておいて再度挿したものの、きちんとはまっていなかった
      もう一度しっかり挿すと火花が散って復活し、50ドルのものでも十分だったのかもしれないが、すでにお金を使ってしまったので全体を配線し直す理由はなかった
      このシステムがまた死んだら、ダクトレスのミニスプリットにするつもりだ
    • これが正解だ
      あえて スマートでない機器 だけを買い、自分のやり方でスマートにする
  • 「スマートエアコン」業界全体は、大きめの小惑星にぶつかって消え去る必要がある。
    現代的な可変速機器への実需が明らかにあるのに、メーカー各社が独自プロトコルで自社エコシステムに囲い込んで台無しにしている。
    米国のTRANEも似たようなもので、可変速ポンプは短周期運転や過大容量システムの問題を解決してくれるだけに、なおさら腹立たしい。

    • 最低限のオープン標準は、規制で強制する必要がありそうだ。
      そうすれば、断続的な再生可能エネルギー発電の状況に合わせてシステムを変えるようなことも可能になる。
    • 可変速の暖房機/エアコン用ファンもある。
      こういう重い部品に追加の制御部が付くと、故障したときに非常に高くつく。私の場合、制御部は無事でファンモーターだけが死んでいた。
      モーター単体では売らず、組み合わせ部品だけを900ドルで売ると言われ、しかも自分で取り付けると保証も無効になると言われた。
      Traneだったら、その組み合わせ部品すら売れないと言われただろうし、私の機器はGoodmanだった。
      完全なぼったくりだ。
    • これがひどいと思うなら、プール設備を体験してみるといい。
    • エアコンシステムの交換を検討しているところだが、今設置されている単段・単速の機器を自分で触ってみて、単純なガス強制送風暖房機と単段16 SEERエアコンの組み合わせよりはるかに複雑な、ばかげた製品群を見ると、他のものを買う気がまったく起きない。
      単純な機器なら、どの部品業者も安い交換部品を在庫していて、修理も簡単だ。
      逆に、LennoxやTraneが自分の機器が壊れた瞬間に生産終了したレアな可変速モーターや制御基板を探す羽目になるなら、幸運を祈るしかない。
    • こういうものの標準を作るのが難しい理由は、機器ごとに通信要件やインテリジェンスの水準が違うからだ。
      ある機器は温度センサーを2個欲しがり、別の機器は3個欲しがる。センサー特性や位置を物理モデルとして使い、精密に制御するシステムもあるため、一般的なシステムでもデータポイントが5〜15個ほど入ることがある。
      プロトコルを文書化するのはよいことだが、実際に使う人はごく少ないだろうし、標準として機能させるには、BluetoothのようにHFP、A2DP、SPPといったシナリオベースのプロファイルと、任意のGATT式汎用属性を持たせる方式が必要になるだろう。
      しかしBluetooth LEで見られるように、皆がGATTの上に独自実装を載せるなら、結局同じ問題に戻ってしまう。
      一部のシステムは「スマート」に動作しようとしつつ、24V C/W/Y1/Y2のようなプロトコルを標準準拠の代替経路として使っている。完全にすべての知能を失うわけではないが、機器側が物理的な推定で情報を把握しなければならない。
      たとえばオン/オフ式のサーモスタットだけを使うと、設定温度との差を直接知ることができないため、複数サイクルの観察から推定する必要がある。
      現実的な解決策は、古い24Vインターフェースを拡張することかもしれない。
      たとえば実際の制御方針をサーモスタットに渡し、5Vはオフ、0Vは最大冷房、10Vは最大暖房という0〜10V信号を使うような形だ。
      そうすれば温度センサー構成は自由に選べるが、複数ゾーンや複数のサーモスタットが必要な設置は複雑になる。
      業界がこうした解決策で合意するのは非常に難しいだろう。
      Qualcomm Quick Charge 2.0はこれに似た非常に単純なプロトコルで、実質的に自己記述的だったためバージョン管理もあまり必要なかったが、要求が変わるにつれて3.0と4.0を経て、USB-CとUSB PDに至ってはOSI階層をすべて備えたデータプロトコルAPIやメーカー別拡張まで生まれた。
      標準ではないにせよ、システムAPIを公開する複雑なプロトコルを定義することもできるが、メーカー側にそうする動機はなく、Control4、Lutron、Crestronのような大手が連携製品を作ることはできる。
      しかしそうなると顧客はサーモスタットを自由に選べず、N社のメーカーとN社のサーモスタットメーカーすべてに対応しなければならないため、スケールせず依存関係地獄に陥る。
      より大きな建物では、BACnetが標準に最も近い解決策に見える。
      Bluetooth式のシナリオベースのプロファイルモデルを使っているようだが、必要な場所にデータを送るにはある程度の手動設定が必要という大きな欠点があり、家庭規模で施工業者がこれを扱う準備ができているとは考えにくい。
      現代的な意味での「サーモスタット」は、ほとんど痕跡器官に近く、実質的にはユーザーインターフェースと温度計にすぎない。
      オープンソースのアプリ制御といった願望を別にしても、サーモスタットが何をし、システムが何をするのか、壁に付いた機器を本当に交換可能な「サーモスタット」と呼べるのかを定義するのは難しい。
      住宅オートメーション統合をしている友人によると、多くの顧客は標準のサーモスタットが見た目として気に入らないという。
      こういう場合にカスタマイズの必要性は理解できるが、実際の実装は難しそうだ。
  • 「理由はともあれ、みんなのタブレットが似た時期に死ぬ」というのは、実に面白い偶然だ。
    その時期が保証期間外だというのも、完全に偶然なんだろうね?

    • メーカーにとっては非常に都合がよく、最も安い部品を買えば簡単に実現できる。
      おそらくeMMCベースで、ログファイルを書き続けているのだろう。
      根拠は、私の手元でまさにこの方式で死んだAndroid機器がこれで4台目だということだ。
    • こういう会社を多く見ていると、保証期間内であっても大差ないだろう。
      集団訴訟か、その国で同等の手続きが出てくるまで、多くの人をそのままひどい目に遭わせ、保証請求を守らなかった代償として手首を軽く叩かれるだけで終わる可能性が高い。
    • 部品の故障は起こり得る。
      2021年4月のセールで買ったPhilips 4K LEDテレビがあったのだが、細かな異常症状はあったものの致命的ではなかった。
      ところが今年1月の第2週に突然、画面が縦縞だらけになり、ある瞬間までは正常で次の瞬間には壊れていた。
      幸いノルウェーでは一般に5年保証期間があり、テレビは少なくとも5年は持つべきものと見なされている。
      店に持っていくと同じモデルのテレビがさらに2台あり、貼られたメモを見るとどちらも私のものと同じ症状で故障しており、購入日も2021年3〜4月ごろだった。
      何らかの共通部品の故障と見るしかない。
    • 皆に似た時期に発生するなら、ログを残して削除せず、ストレージを埋めているのかもしれない。
    • Javaコードを掘って、何がそれを引き起こしているのか見ていればよかっただろう。
  • 残念ながら、メーカーの誰かがこれを知ったときに最初に考えるのは「顧客がもっと簡単に使えるようにするには?」ではないはず
    おそらく「この回避策をどう塞ぐか?」になるだろうし、結局はより制限的で奇妙なハードウェアとソフトウェアに向かう可能性が高い

    • そこまでは気にしない気がする
      顧客のうち、こういう「ハック」ができる人はたぶん1%だけだし、タブレット交換が他社の新しいエアコンを買うより安い限り、メーカーとしては問題ない
    • その通りで、だからとても悲しい
      ほとんどすべてがこういう方向に進んでいる
      昔のiPhone脱獄時代と、Appleとのいたちごっこを今でも覚えている
    • 条件を共有ライブラリ .so の中に入れて、Android JNIを使う必要があるだろう
      複雑にして、タブレットのモデル文字列をコードのあちこちに隠しておけば、.so ファイルをデコンパイルする人を十分にいら立たせる程度には防げる
  • 一般的なAndroidタブレットで動くアプリが not on AA hardware エラーを出すのは犯罪であるべき

    • 擁護するとすれば、誰でもこのアプリをAndroid端末にダウンロードしてインストールできるという点は覚えておくべき
      この場合、明確な失敗モードがあるのは理にかなっている
      新しいタブレットをつなぐためにはんだごてまで取り出す人なら、この程度は十分回避できる
  • スマートが愚かになる瞬間だ
    Nestやほかのスマート機器でもこれが少し心配だが、普通のエアコンでもごく単純な問題いくつかで数百ドル飛ぶことがある
    数週間前、エアコンのブロワーファンが止まり、コンプレッサーは回っていた
    上がって見てみるとコンデンサーの故障だったので写真を撮って交換品を買い、交換には15分ほどかかり、少なくとも400ドルは節約できたと思う
    砂漠でエアコン故障は緊急事態なので、それ相応に請求してくるはずだから
    家電修理はかなり楽しくもある

    • オーストラリアの良いところは、そういう修理がおそらく違法だということ
      自分の家で何ができて何ができないかについて、かなり壊れた保護主義的な規則がある
      実際には常に監視されているわけではないのでたいてい問題ないが、蛇口や既存の照明器具を交換することすら違法というレベルで馬鹿げている
      州政府がたまに規則を見直すと、職能団体が押し寄せて、無資格の「便利屋」にだまされるのを防ぐための規則で、あなたを守るためのものだと主張する
      こうした規制の虜のせいで、法的にはプラグ1個を交換するにも4年の見習いを終える必要があり、基本的な水道配管をするにも別の見習いが必要になる
      このブログの作業も厳密には違法の可能性がある
      たとえばデータケーブルは、データ専門資格を持つ電気工事士でなければ設置できない
      Ethernetケーブルをコンピューターに挿すのは自分でできるが、壁に貼るプラスチックモールを買ってその中にケーブルを通すと違反で、数千ドルまで罰金を科される可能性がある
      自分の家の壁にプラスチックチューブを貼ったという理由で
    • Mitsubishi Heavy Industryの機器の良いところは、MHI-AC-Ctrl[1]モジュールを複数入れておき、サービスインターフェース経由でHome Assistantと通信させられること
      単純な制御だけでなく、内部センサーやコードまですべて公開されるのが良い
      本当に必要なのは、修理する権利の法律でこうした制御標準の公開を義務づけることだ
      誰もリバースエンジニアリングをする必要があってはならず、製品を市場に出すなら、ソフトウェアインターフェースとデータの完全な仕様を提供すべきだ
      そうすれば数年以内に、すべての新しい家電が共通のシリアルポート標準をサポートし、説明書にコード表を載せるようになると思う
      皮肉なことに、Tuyaのスマート製品の普及がほぼその状況に近づけたが、彼らはWi-Fiマイコンを触らせないようにするため、とんでもない労力を注いでいる
      [1] https://github.com/absalom-muc/MHI-AC-Ctrl
    • これを読んでいる全員は、自分のエアコンに必要なコンデンサーが何かを調べて、Amazonで1つ買っておくといい
      どれも20ドル未満だ
      自分でやってみたが15分もかからず、失敗するのはほぼ不可能
      誰かを呼んで数百ドル払っても構わないとしても、少なくとも数時間はエアコンなしで過ごす必要があり、季節によってはかなりつらいことがある
    • 似たようなことを衣類乾燥機でやった
      80年代半ばの製品で古いが素晴らしく、サイズが大きいので布団3枚ほどを1時間以内に乾かせた
      熱が出ないので見てみると、天然ガスの流れを制御するソレノイドが問題だった
      製品が修理しやすく作られていた時代なので素早く分解でき、Amazonで買った8ドルのソレノイド2個を交換したら復活した
    • いろいろなものを修理している
      Capressoのバーグラインダー内側の小さなプラスチック製つまみが折れたが、10セントのワッシャーと接着剤で直し、何年も問題なく動作し、外からはまったく分からなかった
  • 無駄がひどい
    この会社が数年ごとに完全に問題のないハードウェアを大量廃棄して金を稼いでいるなら、環境にも実に「素晴らしい」ことだ
    記事自体は面白いし、こうやって一泡吹かせるのを見るのは気持ちいいが、こういうやり方には本当に腹が立つ

  • 元のezoneタブレットはAndroid 6.0で、このSamsungは5.0だったが、問題ないだろうと思っていて、足りなかったのは必要なアプリだった
    ezoneアプリはAdvantage AirのWebサイトとapkpureサイトの両方にあり、apkpureはAAの技術サポート担当者が案内したという投稿を見て知った
    顧客を正体のよく分からないサードパーティAPK再配布サイトに送るなんて、現実が風刺を超えている

    • アプリは署名されているので、元のものと署名を比較できる
      Apkpureで署名が一致しなかったという報告は見たことがないが、もちろん可能性はある
      より重要なのは、実際の脅威経路が何かということ
      個人のスマホでもないのだから、タブレットをWi-Fiに接続しなければいい
      こっそり温度を1度上げるとでも?
    • 最新のXC90で起こりうる問題に関するVolvo公式の技術告知を読んでいたら、説明書に文字通り「このパッチをダウンロードしてパッチソフトウェアに入れると、この車には無効で署名されていないパッチだという警告が出るが、無視を押して続行を押せ」と書かれていた
      自社の整備士に無視させるつもりなら、なぜそんな警告を入れるのか分からない
    • BlizzardがソフトウェアアップデートにBitTorrentを使っていたのと大差ない
      帯域幅コストを避ける賢い方法だ
      兄弟コメントが言っているように、ファイルは署名されている