nrtのブログ

PCXで楽しむブログ(旧、AndroidとSKKを活用したブログ)

Windows10 Mobileのレジストリ変更

2018-07-16 16:47:15 | 日記


Windows10 Mobileについて以前から気になっていたのが、ストレージの設定で表示される「仮想メモリ」が「256MB」しかない事。

どの機種も同じ値で、変更することができません。
(「設定」⇒「システム」⇒「ストレージ」⇒「このデバイス」⇒「システムと予約済み」)

この値、レジストリで管理されており、以下の事をするとレジストリを変更できるようになる、という事を最近知りました。

レジストリを変更できるようになるためには、「Interop Tools」または「vcreg」というツールで、「unlock」を実行する必要がありますが、分かりづらいのでメモとして残しておきます。

完全に無保証です。一切の責任は自己責任でこの先を進んでください。

■ Interop Tools と vcreg のダウンロード先

https://forum.xda-developers.com/windows-10-mobile/windows-10-mobile-apps-and-games/vcreg-lumia-reg-editor-interop-unlock-t3451723
- Vcreg (vcregUWP_1.7+dependencies.zip)
- ndtk_acer_services.zip

https://forum.xda-developers.com/windows-10-mobile/interop-tools-appx-windows-10-mobile-t3373675
- InteropTools_1.9.437.0_arm_RC3.zip
- Dependencies_ARM.zip

https://forum.xda-developers.com/windows-10-mobile/windows-10-mobile-apps-and-games/app-interop-tools-versatile-registry-t3445271/page24
- ndtk_spkgs.zip

■ unlock の方法

a) Nuans Neo の場合(Interop Toolsでunlock可能)

1. PCにデプロイツールをインストール。Nuans Neoの復旧用ツールとして案内されているもので良い。
Nuans Neoのサポートで紹介されているデプロイツールをダウンロード、インストールします。ここでインストールされる"iutool"というツールを後で利用します。いきなり再デプロイをする必要はありませんが、再起動しなくなった時のために準備しておくとよいでしょう。(実際、レジストリを壊してブートしなくなり、このツールでffuを焼いて復旧しました。)
https://neo.nuans.jp/support/neo_recovery/
2. デバイスの設定で開発者オプションを有効化する。
3. usbから interop tools をコピー、depend しているライブラリとinterop tools, 証明書をインストール。デバイル上のエクスプローラから選んでインストールを実行できる。
(InteropTools_1.9.437.0_arm_RC3.zip と Dependencies_ARM.zip を展開して USBにコピーし、デバイス側でインストールする。)
4. Interop toolsを起動し、unlock のページで、allow install ndtksvc on any device をタップ、デバイスをリブート。
5. pcから iutool で ndtk spkg のフォルダ名を指定して、2つのspkgをインストール。デバイスをリブート。
(iutoolの場所は、c:\Program Files (x86)\Windows Kits\10\Tools\bin\i386
ndtk_spkgs.zip を展開して、 ndtk_spkgs フォルダを指定する。iutool.exe -v -p パッケージ名かフォルダ名)
6. Interop toolsで、unlock のページで、restore ndtk をタップ。リブート、(reboot必要ないかも?)
同じページで、その他も有効化、(restore ndtk以外はいらないかも?)

b) Lumia 650 の場合(vcregでunlockする。レジストリはInterop Toolsで書き換える)

1. WDRT でリセット (無保証。本当に必要かは不明ですが、このようにリセットしないと、どうしてもunlockできませんでした。)
2. 開発モードを有効にする。
3. Vcreg (vcregUWP_1.7+dependencies) を usb にコピーして、デバイス側でインストール
4. Lumia 650 unlock のステップ1 の画面で iutoolでacer pkgをインストール、すると、再起動して、歯車の画面になり、デバイスは再起動する。
(ndtk_acer_services.zip の acer.service.acersystemservice.spkg をインストールする)
5. そのままdllをdocuments配下にコピー。手動でリブート。
iutoolはCommand executed successfullyで完了。
6. Step2 でリブート、
7. Step3 でリブート、
8. ようやく、live interop/capability unlock をチェックしてapply をタップし、complete.
9. そのままでは、Interop Tools が利用できない。そこで、OS を更新する。
10.0.10586.494 -> 10.0.14393.1066
この状態で、Interop Tools (RC) が使える。(StoreのStore版やPreview版はNG)
10. USB から InteropTools_1.9.437.0_arm_RC3 (+ ARM ライブラリ) をインストール。

⇒ さて、このようにしてレジストリが変更できるようになったら、Interop ToolsのRegistry Browserでメモリ管理関連のレジストリを変更できます。

HKEY_LOCAL_MACHINE (HKLM) ⇒ SYSTEM ⇒ CurrentControlSet ⇒ Control ⇒ Session Manager ⇒ Memory Management

この階層で、"PagingFiles" という変数をタップすると、"u:\pagefiles.sys 256 256" と設定されているはずですので、この値を変更して Writeボタン(チェックマーク)をタップします。

パラメータ自体は以下のページが参考になりそうですが、なんとなく min max という事は分かっても、結局、どう変更すると何が起るのか正確な因果関係は分かりません。"256 1024" が最良と言っている人もいれば、"1536 1536"で爆速になった、と言っている人もいれば、何が正確な情報なのか不明で、結局、答えが分かりませんでした。
https://www.registryrecycler.com/blog/2013/07/enhance-windows-memory-management-through-registry/

⇒ しかし、そもそもswapなんて使ったら激遅なわけで、むしろ 0 に設定したいところです。設定してみると、
Nuans Neo ⇒ 1.12GB
Lumia650 ⇒ 1.81GB
(参考までに WPJ40 は「0バイト」となりました。着信音が鳴らなくなるゴミ機種ですので使えませんが。)
ゼロになる訳ではないようです。

⇒ 他に関係ありそうな設定として、"SessionPoolSize" (デフォ 4MB) と "SessionViewSize" (デフォ 48MB) があります。

上記のWebページには 48MB, 96MB に設定する記載があります。その他、デフォの4倍の 16MB, 192MB してみたり、もっと多く取って 64MB, 256MB としてみたり、色々試しましたが、システムのフリーズや数秒から数十秒固まる現象との直接的な関係は分かりませんでした。

誰か完全にフリーズしない設定を発見して教えてください!!

なお、上記のWebページに記載のある、"PoolUsageMaximum" は一度設定すると、消せなくなります。小さくしても大きくしても効果も不明なので設定しないことをお勧めします。(デフォルト値は 80% のようです。)

⇒ 最近は、システム的に勝手に(最適な?)設定をするよう期待し、PagingFiles は "0 0", SessionPoolSize も SessionViewSize も "0" を指定しています。
プラシーボ効果かもしれませんが、なんとなく、システムの挙動が安定したような気がして、少し気分がいいです。


# と書いたそばからフリーズしているので、パラメータを変えてリブートしました。
# 最近『安定している』ように感じるのは、頻繁にレジストリを書き換えて『リブート』しているせいではないかと思います。。

(いろいろ試した後 2018.08.27)

◆◆『フリーズしなくなる設定など無い』◆◆

というのが結論で、後は気分の問題として、お好みの設定をどうぞ。

例えば:

・Memory Management の下
PagingFiles は "0 0" (または "1536 1536" のようにサイズ指定)

⇒ 以下、要否不明ですが、気分的に。。
SessionPoolSize は "0"
SessionViewSize は "0"