etsuxのブログ

自分がハマったことなどを記録しています。

Gemini PDA購入

通勤中に電車内でもプログラミングができ、スマホとしても利用できないかとGemini PDAを購入し、本日到着。

Gemini PDA | 株式会社リンクスインターナショナル

発売日直後は在庫切れになっていたので買えないかと思ったが、そんな希少価値のあるものではないので、無事入手できた。

 

Rails&Turbolinks有効でページ読み込み時にJavaScriptを実行するには

RailsでTurbolinksを有効にしていると[戻る]リンクでページを戻った時などに、ページロード時のイベントで実行するはずのスクリプトが実行されない。

いろいろ調べてもどれも簡潔にできないと思っていたら、できることがわかった。

javascript - Rails 5: how to use $(document).ready() with turbo-links - Stack Overflow

 

「turbolinks:load」を追加するだけですね...簡単。

readyがあると二重に実行されてしまうので「turbolinks:load」を設定するだけですね。

 

app/assets/javascripts/xxx.coffee

$(document).on 'ready turbolinks:load', ->

$(document).on 'turbolinks:load', ->

 

これだとブラウザの「戻る」ボタンではうまく動かなかった...

難しい。悩ましい。

 

GALAXY S III α SC-03E をAndroid 6.0にアップデート

※ここで公開されている手順については何の保証もありません。トラブルが発生しても責任を負いかねますし、質問にも答えられる知識は持ち合わせておりません。

 

Yahoo!検索をするたびに、Android 4.3だと9/27以降利用できなくなるとメッセージが出るので、Android 6.0にアップデートを試みた。

 

root化

以下を参考に実施。

ばっくらっしゅの備忘録: GalaxyS3α SC-03E を root化する。 OMUBOG5

  1. ADBをダウンロードして展開

    Android SDKをインストールして、ADBコマンドが使えるようにする方法 | 物欲ガジェット.com

  2. Odin3_v3.13.1.zipをダウンロードして展開
  3. SC03EOMUBOG5-20150817090054.zipとSC03EOMUBOG5-ROOTED-system.tar.zipをダウンロードして展開
  4. SC-03Eを音量↓+Home+電源ボタンでダウンロードモードで起動
  5. PCにUSB接続(作業中はUSBにつなぎっぱなしで問題なかった)
  6. Odinを起動し、APでSC03EOMUBOG5_SC03EDCMBOG5_SC03EOMUBOG5_HOME.tar.md5を選択
  7. Startボタンをクリック
  8. Odinの表示がSYSTEMがPASSになった後、SC-03Eでインストールが開始し、その後再起動。
    ※再インストールのときは「SUMSUNG」で止まる。電源長押しで強制終了して、以降の操作を続けることで、最終的には起動できるようになる。
  9. SC-03Eをシャットダウンし、再度音量↓+Home+電源ボタンでダウンロードモードで起動
  10. PCにUSB接続
  11. Odinを起動し、APでSC03EOMUBOG5-ROOTED-system.tar.md5を選択→Start→PASS表示→インストール→再起動
  12. 設定の端末情報でバージョンがSC03EOMUBOG5になっていることを確認

Galaxy S3 alpha CWM-based Recoveryのインストール

  1. いったんシャットダウン
  2. 音量↓+Home+電源ボタンでダウンロードモードで起動
  3. Odinを起動し、APでsc03e-KBC-CWM-v6.0.5.1_r4-recovery.tarを選択→Start→PASS表示→インストール→再起動

Android6のインストール

  1. 音量↑+Home+電源ボタン
  2. Recoveryモードで起動
  3. 「install zip」→「install zip from sideload」を選択
  4. PCでcm-13.0-20160609-AOJP-sc03e.zipをダウンロード
  5. adbコマンドでインストール実行
    adb sideload ~\cm-13.0-20160609-AOJP-sc03e.zip
  6. 100%になり、SC-03Eでインストールが実行される
  7. 起動するとCyanogenmodのキャラクタで数分待った後、Android6が起動

インストールで以下のエラーとなった場合は言われた通りに「wipe data / factory reset」→「Yes - Wipe all user data」を行えばよい。3のメニュー選択から再開。

Can't install this package on top of incompatible data. Please try another package or run a factory reset
E: Error in /tmp/update.zip

Open GAppsのインストール

  1. 音量↑+Home+電源ボタン
  2. Recoveryモードで起動
  3. 「install zip」→「install zip from sideload」を選択
  4. PCでopen_gapps-arm-6.0-pico-20180915.zipをダウンロード
  5. adbコマンドでインストール実行
    adb sideload ~\open_gapps-arm-6.0-pico-20180915.zip
  6. 起動してアプリ一覧を見ると「Google Play」が追加されている。

SuperSUのインストール

Open GAppsのインストール方法と同じ。SR5-SuperSU-v2.82-SR5-20171001224502.zipあたりのZIPファイルをダウンロードして「adb sideload」でインストール。

バックアップ

  1. 音量↑+Home+電源ボタン
  2. Recoveryモードで起動
  3. 「backup」→「backup to /sdcard」を選択
  4. 「Backing up data...」と表示され、バックアップが行われる。

 

Magiskのインストール(非root化)

「install zip from sideload」でMagisk-v17.1.zipをインストール。

! Boot image patched by unsupported programs
! Please restore stock boot image
Installation aborted.

だそうだ。

SuperSUでstock bootイメージを復元する必要があるということですね。

  1. SuperSUの一番右のタブから「ルート権限を放棄(アンルート)」を選択。
  2. 「stockのbootイメージを復元しますか?」で「はい」を選択。
  3. 「stockのrecoveryイメージを復元しますか?」で「いいえ」を選択。
    ※「はい」の場合、リカバリ画面が「cyanogenmod」になってしまう。「はい」を選択した場合は、CWM-based Recoveryのインストールを再実施すればよい。
  4. 自動的に再起動。→ 無事再起動できたので一安心。

再度「install zip from sideload」でMagisk-v17.1.zipをインストール。→「Done」

今度はうまくいった。

 

ちなみに、「cyanogenmod」のメニューで「Apply Update」→「Apply from ADB」を選択し「adb sideload」でMagiskをインストールしようとしたが、結果は「Install Failed」で失敗。「cyanogenmod」のメニュー選択が音量↑↓+Homeではなく、音量↑↓+電源ボタン、もしくはタップというのも軽い罠。

 

非rootでのParaviの利用

root環境だと「OSの整合性チェックに失敗しました。Root権限を取得している場合、このアプリは起動できません。」となり動作しない。

非root環境でParaviを動かしてみる。

  1. Magiskをインストール。Magisk Managerでパラビにチェックを入れる。
    →いくら設定をしてもチェックが外れる。
  2. スーパーユーザー一覧に表示されない。
    →スーパーユーザーのチェックが時間切れになったら二度と選択が表示されなくなった。
    「アプリがリリースされたときに再認証」のようなメニューが一番下にあり、それにチェックを入れて、パラビを入れなおしたら再度スーパーユーザーの拒否を選択できるようになった。

それでも、「OSの整合性...」のメッセージで動作しない。結局、MagiskではParaviを隠せません。

この状態でMagiskを完全アンインストールしたところ、Paraviの起動に成功。Root Checkerもrootでないと言っているので、非root化に成功したのかな?

SuperSUでrootを放棄してもダメだったのだが。

 

非root化するには、 Magiskを完全アンインストールする。

 

Androidのroot化は未経験、難しいサイトを読むのは面倒、英語はほとんどできないので英語サイトは読む気になれない、わからなくても適当に進めてしまう、といった状態でも成功したので、どれだけ先人たちが優秀かということですね。

Windows 10でWindows Updateが強制有効化

Windows 10 HomeでWindows Updateの強制アップデートをサービス無効化とレジストリ変更で停止していたが、ここに来て強制アップデートされてしまった。

無効化方法はいろいろなサイトで紹介されているので、そちらを参照のこと。

「Windows 10」の「Windows Update」の自動更新を無効にする手順について

 

今まではWindows Updateに関する通知は出ていなかったのだが、先週くらいから急にプライバシー設定に関する確認画面が出るようになって、昨日は最終通告が表示された。

確認してみると無効化したはずのサービスが有効化されていることが判明。

  • Background Intelligent Transfer Service
  • Delivery Optimization
  • Windows Update

 

仕方がないので再びサービス無効化をして、Update用ファイルC:\Windows\SoftwareDistribution\Downloadを削除して再起動をしたところ無事Updateが走り、強制アップデートが完了した。残念orz

昨夜はAM3:30にOSが勝手に起動し、強制アップデートを行った模様。

ちなみに、無効化したはずのサービスは再び有効化されている。

 

Windows Updateされても使えるように、環境を整えていくしかなさそうだ。

 

VMware ESXi 6.0+Windows 10 Home+OSX 10.6

いろいろなことをしてみましたが、まとめると以下のとおりです。

  • VMware ESXi 6.0+vSphere Client+VMware PowerCLI+ESXi-Customizer-PS

    VMware ESXiは6.5だとHTML5で遅すぎる。PCが速ければよいかもしれない。
    なので、が速くて安定していてよい。
    VMware ESXiはRealTeKNICのドライバがないので、VMware PowerCLIとESXi-Customizer-PSでカスタムISOを作成してインストールする。

  • Windows 10 Home+1511+RDP Wrapper

    Windows 10 Homeでリモートデスクトップを利用するにはRDP Wrapperが必要。
    ただし、Windows Updateで最新パッチが当たってしまうとRDPポートがふさがれてしまうので、not listeningになる。
    Windows 10 1511あたりのISOをMSからダウンロードして利用する。
    インストール直後にWindows Updateを無効化して、強制アップデートされないよう気を付ける。

  • Mac OSX+unlocker207

    Mac OSXをインストールするには、unlocker207が必要。
    unlocker208だとefi64-srvr.romが含まれていなく、またunlocker207との組み合わせでは動かなかった。

仮想環境でOSXを入れるにはunlockerというものがあるらしい

皆さん、ESXiでOSXの夢を見ることがあるらしい。

ESXi 6.0を入れてみたので、同じような夢を見てみようと思い、unlocker 2.0.8を使ってみた。

Unlocker - InsanelyMac Forum

が、仮想マシンを起動しようとするとすぐに停止してしまう。

他にも「Unable to connect to the MKS: Cloud not connect to pipe \\.\pipe\vmware-authdpipe ~」なるメッセージが表示されたりする。

unlockerが効いていないか確認。

  1. syslog → unlockerが読み込まれたログがあるので問題ない。
  2. /bin/vmx → /unlocker/vmxへのシンボリックリンクになっているので問題ない。
  3. ps -c | grep vmx → vmx起動直後にプロセス情報を参照。/bin/vmxを指しているので問題ない。

上記は問題ないことを確認。

ちなみに、使ったバージョンは「ESXi-6.0.0-20170604001-standard-customized.iso」、vmxのコマンドラインではVMware ESX;version=6.0.0;buildnumber=5572656」となっているものであり、ESXi-Customizer-PS-v2.5でオンラインで持ってきたものになる。

最近更新されたビルド番号なので、やはりOSXのチェック強化が行われているからかもしれない。

 

また環境の作り直しになるが、ESXi-Customizer-PS-v2.5にizipオプションをつけて作ったほうがよさそう。

VMware Front Experience: ESXi-Customizer-PS

izipにはオフラインバンドルというものをダウンロードして指定しなければならないが、以下のサイトでダウンロードできるようだ。

https://my.vmware.com/ja/group/vmware/patch#search

これで古めのESXi 6.0を入手してやってみようと思う。

 

コマンドは以下のような感じになる。 

 .\ESXi-Customizer-PS-v2.5.ps1 -izip .\ESXi600-201511001.zip -pkgDir . -outDir .

 

カレントディレクトリのファイルは以下。

 

  • ESXi-Customizer-PS-v2.5.ps1 … スクリプト
  • ESXi600-201511001.zip … ダウンロードしたオフラインバンドル
  • net51-drivers-1.0.0-1vft.510.0.0.799733.x86_64.vib … ドライバ
  • ESXi-6.0.0-20151104001-standard-customized.iso … 生成されたISO

 

unloker207まで提供されていたefi64-srvr.rom/efi32-srvr.romが必要との情報もあった。

Mac OSをインストール!(の準備) | 人畜無害のブログ

 

unlocker208のまま、efi64-srvr.romのコピーとvmxファイルの以下の編集で実行してみる。

smc.version = "0"
efi64.filename = "efi64-srvr.rom"

 

やはりvmware.logに以下のメッセージが出ている。

[msg.Backdoor.OsNotMacOSXServer] The guest operating system is not Mac OS X Server.

 

unlocker208はアンインストールして、unlocker207をインストールしなおす。

cd unlocker208

./esxi-uninstall.sh

cd ../unlocker208

./esxi-uninstall.sh

 

OSチェックが通って、インストーラの起動画面が立ち上がった。

今度はディスクが見えないが、ディスクユーティリティで消去すれば見えるようになった。

ESXi6.0にMac OS X El Capitanをインストールする。 - ダンデライオン

 

ESXi-6.0.0-20170604001でも、unlocker207が動作することを確認。

unlocker208は動作しなかった。

 

 

RDP Wrapperの実験~そしてWindows Update

Windows 10 HomeでRDP Wrapperを試してみる。

ESXiでWindows 10の仮想ゲストを作成し、RDP Wrapperをインストール。

[RDP Wrapper Configuration]画面を起動すると、[Listener state]が[not listening]のままで、起動できない。

調べてみたところ、RDP Wrapperのissueに上がっていた。

Listener is not listening on Win 10 Home (build 14997+) · Issue #194 · stascorp/rdpwrap · GitHub

ソースを見てみると、RDP-Tcpが無効化されている場合に動作しないようだ。(

WinStationEnumerateの情報はほとんどないので想像)
function IsListenerWorking: Boolean;
var
  pCount: DWORD;
  SessionInfo: PWTS_SESSION_INFOW;
  I: Integer;
begin
  Result := False;
  if not WinStationEnumerateW(0, SessionInfo, pCount) then
    Exit;
  for I := 0 to pCount - 1 do
    if SessionInfo^[I].Name = 'RDP-Tcp' then begin
      Result := True;
      Break;
    end;
  WinStationFreeMemory(SessionInfo);
end;

最近のWindows UpdateでRDP-Tcpの無効化が行われたと思われる。

以前ダウンロードしてあったWindows 10 1511のISOがあるので、それを使って再インストール。(「Windows 10 1511 ISO」で検索すると、今でもMicrosoftのサイトからISOはダウンロードできる模様)

再インストール後に[RDP Wrapper Configuration]画面を起動すると、[Listener state]が[Listening]になっていることを確認。

リモートデスクトップからの接続も確認できた。

 

しばらくすると、Windows Updateの準備が完了した旨のメッセージ。

Updateが当たるのは困るのでダウンロードしたと思われるファイルやUpdate関連のサービスを無効化したのだが、OSを再起動したらやっぱりUpdateされた。 

f:id:etsux:20170731213354p:plain

結局、Update後はRDP Wrapperは動作しなくなり、Updateによる影響であることが判明した。

ちなみに、KB4021572はアンインストール可能だが、アンインストールしても動作せず。

他の更新プログラムはアンインストールできないようになっていて、OSの再インストールしかない。

 ...本当にUpdateを強要するのはやめてほしい。

 

[追記]

Windows 10 1511 ISO」を再インストール後、すぐにWindows Updateを止めて永続的にRDP Wrapperが動作することが確認できた。

 

なお、Windows Updateの無効化は レジストリエディタで以下のキーを作成することでできた。

  1. 「HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows」まで展開する。
  2. 「WindowsUpdate」キーを作成する。
  3. AU」キーを作成する。
  4. DOWRD値で「NoAutoUpdate」を追加し、値を「1」にする。