投稿者のアーカイブ

GPD WIN/Pocketの英語環境を(APIから見て)日本語環境化する

GPD WIN/GPD Pocketでは標準でインストールされているOSが純粋な日本語版ではなく
英語(en_US)版に、お好みで日本語言語パックを入れるという形になっています。

日本語化については、ログオン後のUnicodeなUI部分の表示は
コンパネ->時計、言語、および地域->言語を追加するを選び、日本語を選択してダウンロードして
規定の言語にすることで設定できます。

また、Welcomeスクリーン、非Unicode、環境の日本語表示は上記設定後
コンパネ->時計、言語、及び地域->地域を選び、場所に日本、管理で
「ようこそ画面と新しいユーザアカウント」の設定のコピー及び
その下の「Unicode対応でないプログラム言語」のシステムロケールの変更で日本語を選ぶことで設定できます。

ここまでやると大部分の場所が日本語化されるのですが、完全に日本語OSとなる訳ではありません。
この時点でAPIで言語関係の関数を叩くと
GetSystemDefaultLCID()
GetUserDefaultLCID()
GetSystemDefaultLangID()
GetUserDefaultLangID()
GetUserDefaultUILanguage()
についてはロケール ID (LCID)が0x0411(ja_JP)で帰ってきますが

GetSystemDefaultUILanguage()
に関しては0x0409(en_US)が帰ってきます。

GetSystemDefaultUILanguage()に関してはMSのリファレンス

>This function never returns a language identifier for a Language Interface Pack (LIP).

とありますので、言語パックの影響を受けず、インストール時に設定された初期言語が返されます。
このため、一部の日本製アプリケーションでは、主にDRM的な観点からこの関数を用いて
ユーザのOS言語を検出し動作しないことがあります。(逆もしかり)
上記理由から具体的にどれが該当するかは書きませんが主にゲーム系のアプリケーションで多い様です。

これはレジストリの
HKLM\System\CurrentControlSet\Control\Nls\Language\InstallLanguageキー
en_USである0409からja_JPである0411に変更することで解決することができます。
ここを変更後再起動すると、GetSystemDefaultUILanguage()の値も0x0411となり、上記の様なアプリケーションでの動作が改善されます。
#ちなみに、日本語言語を既定にしてProにアップグレードするとここの値は0x411となるようです。

軽く確認しただけなので他の関数ではまた違う値が出るかもうしれませんし
WinRTに関しては触ってもいないので一緒に変わるかは全く不明ですが
日本製のゲームが動かない、という方は一度試してみてはいかがでしょうか。

添付に上記で挙げた関数の値をベタ出力するコピペプログラムを貼り付けておきます。
現在のOS設定値を確認する参考としてどうぞ。
#Defenderだと”Trojan:Win32/Sprisky.C!cl”と出る場合がありますが誤検知です。MSに解除申請が通ったのでそのうち表示されなくなるはずです。

#6月に買ったものの、セットアップで蹴られて積んでいた某ゲームがこれでやっと出来る. やったー

GPD WINでデバイスの暗号化を使う話。

#この記事はGPD WIN Advent Calendar 2016 3日目の記事です。
#自分のBlogがないので知人のblogをお借りしています。
dsc09851
今話題のUMPC GPD WINは3DSLLサイズということもあり、持ち運んで利用することが想定されます。
もし持ち出し先で盗難や紛失にあった場合、例え個人のデータしか保存されていないとしても
デバイスストレージの暗号化がされていれば紛失時の情報漏洩リスクを低減することが出来ます。

ここで有用なのが、Windows10に備わっている「デバイスの暗号化」と呼ばれる機能です。

デバイスの暗号化とは、Windows10Homeにおいて、以下の要件を満たす場合に
利用出来るストレージ暗号化機能です。

1.デバイスがTPM2.0に対応すること。
2.デバイスがInstantGoに対応すること。
3.デバイスがSecure Bootで構成されていること。
4.使用するアカウントがMSアカウントもしくはAzure ADに参加していること

Proエディション以上で利用出来る暗号化機能のBitLockerの機能限定版といった位置づけとなり
BitLockerと比較して主な点では以下が異なります。

1.冒頭の3つに示した様に、特定のハードウェア要件を満たす必要があります。
(BitLockerは構成方法にもよりますが、殆どハードウェア要件はありません。)

2.回復キーの保存方法がMSアカウント/Azure AD+ローカルに限定されます。
(BitLockerはクラウドに回復キーを保存する要件は必須ではありません。)

3.外部ドライブ(USBメモリー)等に対しては設定出来ません。
(BitLockerはBitLocker to Goという機能でUSBメモリーに対しても暗号化が出来ます。)

詳しくは「Windows 10 でデータの暗号化」にて詳細な説明がされています。

さて、GPD WINにおいてデバイスの暗号化をするには、ちょっとした設定が必要です。
冒頭で述べた4要件のうち
3.デバイスがSecure Bootで構成されていること。
を満たしていないため、標準の状態では使用することが出来ないのです。

対応デバイスでは設定のバージョン情報に設定の為のスイッチが表示されますが、本機では表示されていません。
設定のバージョン情報 実施前

本エントリではGPD WINの設定を変更してデバイスの暗号化を有効にする手段を述べます。
なお、この記事で想定している環境はBIOSが20161025版リリースまでのデバイスです。
最近リリースされた20161118版のBIOSでは、設定に必要な該当項目が削除されており、実施出来ません。※後述

まず前提として、現在のユーザがMSアカウントかAzure ADのどちらかであることを確認しておきます。
次にSecure Bootを有効にするために、BIOSの設定を変更します。

アクションセンターのすべての設定を開き、「更新とセキュリティ」を開きます。
回復に「PCの起動をカスタマイズする」という項目がありますので、「今すぐ再起動する」を選択します。

デバイスが再起動後、青い画面に切り替わります。
「トラブルシューティング」、「詳細オプション」、「UEFIファームウェアの設定」に進み、「再起動」を選択します。

再起動後、BIOSの設定画面(Aptio Setup Utility)に入りますので、Securityタブの「Secure Boot menu」を選びます。
UEFI menu
Secure Boot Modeを「Custom」から「Standard」に変更します。
UEFI menu2
「Press ‘Yes’ to install factory default keys」というダイアログが出ますので、Yesを選択。
UEFI menu3
Secure Bootを「Enable」に変更します。
UEFI menu4
Escで戻ってSave & ExitタブのS「ave Changes and Exit」を選択。
「Save Configuration and exit?」というダイアログが出ますのでYesを選択。
UEFI menu5

デバイスが再起動され、Windowsが立ち上がってくれば設定変更完了です。
早速確認してみましょう。
アクションセンターの全ての設定を開き、「システム」を開きます。
バージョン情報の項目の下の方をスクロールすると、「デバイスの暗号化」という項目が出現しています。
設定のバージョン情報 実施後
これを「オンにする」にすれば、デバイスの暗号化が始まります。
これでもしデバイスを紛失しても、データ漏洩から情報を保護することが出来ます。

ストレージの暗号化で気になるのがI/Oの速度低下です。 CrystalDiskMarkを実行してみましょう。
暗号化前のベンチマーク結果
before_disk
暗号化後のベンチマーク結果
after_disk
速度低下がみられる項目もありますが、通常使用では気にならないレベルに押さえられています。
GPD WINに搭載されているAtomはAES-NIをサポートしていますので、CPU使用率も殆ど上がりません。

この「デバイスの暗号化」もしもの時に為に、設定しておくと安心ではないでしょうか。


※と、ここまで書いてから、この設定に関わる重大な変更がGPDから降ってきましたので記載します。
GPD WINのBIOSで今の所最新の20161118版では、Secure Bootの設定項目、というよりもSecurityタブそのものが削除されています。
このため、Secure Bootを有効に出来ず、「デバイスの暗号化」を有効にすることは出来ません。
既に暗号化されているデバイスについては、詳しい検証はしていませんがアップデートすることにより以下の挙動が予測されます。

アップデートされることで設定値がメーカー初期値に戻るので、Secure Bootの設定が無効になります。
よって、次回起動時に暗号化の回復キーの入力が必要になります。(MSアカウントに保存されていますのでオンラインで確認出来ます。)
一度回復キーを入力した後は通常通り利用出来るはずですが、一度でも「デバイスの暗号化」をオフにして再起動すると以降は要件を満たさなくなるため、「デバイスの暗号化」が利用出来なくなります。

○お願い
このBIOSからSecure Boot項目が削除された問題について、GPDさんのレスポンスが早いIndiegogoのコメント欄で復活の要望を出してくれる方を募集しております。
私はMakuake組なので緑屋さんが間に入っており、かつ緑屋さんは現在Windowsライセンスの問題でバタバタしているのでレスポンスが期待出来そうにありません。
持ち運ぶデバイスとして追加ライセンスなしに暗号化出来る本機能は有用かと思うので、どなたか助けてください。