わかりづらい

ふと思い立って、Android 2.3.5 stock romに入れ替えた後にHTC SuperToolを使ってみたところ、問題なくrootがとれる事を確認。
ということは、HTC SuperToolが足がかりにしているヨーロッパ版2.3.5に存在する脆弱性が、アジア版2.3.5ではfixされている、もしくは攻撃対象している部分が入っていないと思われる。
Androidってめんどくさいな。

HTC Wildfire Sをごにょごにょ

いろいろとごにょごにょ

1.ブートローダのアンロック
http://htcdev.com の手順で無事成功。

2.root化。
ここの手順通りでハマる。
http://androidforums.com/wildfire-s-all-things-root/480954-guide-how-root-wildfire-s-s-finally.html
「2. [OPTIONAL] Update software version to 2.3.5」とあるので、2.3.3から2.3.5へ、Wildfire S本体のConfigurationからOTAでアップデート実行。
このアップデート自体は成功。
しかし、このアップデートによりその先のHTC SuperTool v3でのroot化が不可能(ように見える)。
アップデートにより脆弱性がつぶされているのが原因と予想し、以下の2.3.3 Stock ROMにダウングレード。
http://forum.xda-developers.com/showthread.php?t=1485345
2.3.3の状態でHTC SuperTool v3を実行したところ、無事root化完了。
しかし、SupterToolのメニューからS-OFFを実行しても変化なし。

3.S-OFF化
ソフトウェア的な対応はまだできないっぽい?
ここのスレッドでWildfire S Manager Auto-Installersなるものが紹介されてるがリンク切れ。
http://forum.xda-developers.com/showthread.php?t=1431969
この方法は、"Clear S58 Data"のメニューを選択するところまでは行くが、実際にS-OFFはされず。
http://forum.xda-developers.com/showthread.php?t=1343094
XTC Clipしか方法が無い???

AndroidのRoot化まわりの用語整理

AndroidのRoot化まわりの用語がわかりづらくて混乱したのでメモとして残しておく。
これであってるハズ。

1.Root化
一般ユーザがroot権限を得ること。
通常、ユーザによる操作は一般ユーザ権限で実行される。
よって、Root化されていない場合、ユーザによる操作およびユーザが実行するアプリは一般ユーザ権限の範囲に制限される。
Root化により、この制限を回避する事が可能。
現在の状態の確認は、適当な端末アプリにより可能。
自分自身のコンソールを開き、プロンプトが#になっている、もしくはsuによりrootになる事が出来ればRoot化されている。
されていない場合、suはpermission deniedとなり実施不可能。
Root化実施には、再起動後に無効となるタイプと、再起動してもずっとRoot化されたままの状態になるタイプある。

世間一般では「ずっとroot化された状態にするのが便利で良い」みたいな風潮があるけど、セキュリティのための機構なんだから必要な時だけRoot化した方がいいと思う。

2.S-ON/OFF
Security On/Offの略。
通常、/system および /recovery パーティションはRead Onlyでマウントされており、この状態をS-ONと呼ぶ。
何らかの方法によりRead/Writeにてマウントしている状態をS-OFFと呼ぶ。
HBOOT実施することで現在の状態が確認可能。

これもS-OFFして当然みたいな風潮だけど、せっかくのセキュリティ機構なのだから2パーティションの書き換えが必要な場合にだけS-OFFして、通常利用時はS-ONの方が安心ではないか。

3.ブートローダのアンロック
読んで字のごとし。
メーカー出荷時にはメーカー正式ファームウェアでしか起動できないようにロックがかかっているが、その制限を外すこと。
htcdev.comの"Unlock Bootloader"で可能なのはこれ。
HBOOT実施し、画面再上部にUNLOCKEDと表示されていればアンロックされている。

これはアンロックされた状態でも安全性には関わりないと思うので、アンロックしたままで良いと思う。
可能性としては、知らないうちに悪意のあるファームウェアに入れ替えられる可能性がある、か?

4.SIMのアンロック
端末のSIMキャリア縛りを外すこと。いわゆるSIMフリー
手元の端末は最初からSIMフリーなのであまり興味なし。
でもこのロックと他のロックを混同している記述がぽろぽろ見られるような。


関係ないけど気になった事として、Root化関連の記事で普通にUSB Debuggingモードが案内されているけど、みんなそれのリスクを分かってるのかな。
普段使い端末でUSB Debuggingモード常時ONとか怖すぎる。

Boot Camp環境にインストールしたWindows7をVMware Fusionからも起動した場合のWindowsライセンス警告をfix

だいぶ前からやらなくては思いつつ都度ライセンスキー再入力でごまかしてきたけど、とうとう再入力不可になってしまったので、以下の手順で実施し無事成功。
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1004917

1.レジストリ修正
a.regeditにて以下の場所を開く
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\vmrawdsk\Parameters.
b.キー"windir"を探し、値を"C:\windows"に変更

2.vmxファイル修正
a.Boot Campパーティションを起動するための.vmxファイルに以下の行を追加
SMBIOS.reflectHost = "TRUE"
b.VMware toolsをアンインストール > 再インストール

3.ライセンスキー再入力

VMware ESXi 5上にFreeBSD 9.0をインストール

インストールは何も考えずにほぼデフォルトで行う。
ブリッジの設定は以前の8.2Rと同様の方法で行えた。
vmware toolsのインストール
vmware toolsの入った仮想CDをマウント
mount-t cd9660 -o -e /dev/cd0 /mnt
・インストールスクリプトperlなので、portsからper5.14をインストールするがmake testでこける。
・portsnap fetch を使用しportsをアップデートしてもダメ。
・しかたがないので pkg_add -v -r perl にてバイナリパッケージをインストール
・しかし、compat6x-amd64パッケージも必要との事なので、バイナリパッケージを追加インストール。
・いよいよvmware-toolsをインストールするが、memory managerでfail。

Stopping VMware Tools services in the virtual machine:
Guest operating system daemon: done


No X install found.

Starting VMware Tools services in the virtual machine:
Switching to guest configuration: done
Guest memory manager: failed
Guest operating system daemon: done
Unable to start services for VMware Tools

Execution aborted.

Found VMware Tools CDROM mounted at /mnt. Ejecting device /dev/cd0 ...

あきらめて pkg_add -v -r open-vm-tools-nox11 を導入。
pkg_add -v -r open-vm-tools-nox11
rootで実行しなかったので依存パッケージのインストールに失敗。改めてrootにて実行すると無事インストール完了。
インストール完了時の以下のメッセージに従って/etc/rc.confを編集。

******************************************************************

To run the Open Virtual Machine tools at startup, add the following
settings to your /etc/rc.conf

vmware_guest_vmblock_enable="YES"
vmware_guest_vmhgfs_enable="YES"
vmware_guest_vmmemctl_enable="YES"
vmware_guest_vmxnet_enable="YES"
vmware_guestd_enable="YES"

******************************************************************

これでとりあえず普通に起動して、vSphere clientの右クリックメニューからシャットダウンできるようになったので良しとする。
今日はここまで。

にせデュアルブートFreeBSD

某商用製品の真似をして、/と/usrが二つあってどちらからも起動できるFreeBSDを作る。

1.インストール
4つのスライスを作る。
1番目はレスキュー領域
2番目は/と/usrその1
3番目は/と/usrその2 2番目と全く同じ大きさにする
4番目はその他の領域、/home /tmp /var swap
インストールは2番目と4番目を使用
1番目と3番目のスライスは切るだけで現時点では触らず
FreeBSD BootMgrをインストール


2.レスキュー領域にインストール
何かを適当にインストール


3.3番目のスライスにラベル付け
2番目のスライスのコピーなので、2番目のスライスのラベルをバックアップしてそのま3番目のスライスに書き込む
この辺を参照。
http://www.jp.freebsd.org/cgi/mroff.cgi?sect=8&cmd=&lc=1&subdir=man&dir=jpman-6.4.2%2Fman&subdir=man&man=bsdlabel

# bsdlabel ad4s2
# /dev/ad4s2:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 16777216 0 4.2BSD 0 0 0
c: 33554304 0 unused 0 0 # "raw" part, don't edit
d: 16777088 16777216 4.2BSD 0 0 0

# bsdlabel ad4s2 > ad4s2.txt
# bsdlabel -R ad4s3 ad2s2.txt



4.三番目のスライスにファイルシステム作成
mkfsではなくnewfsを使う。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=newfs&dir=jpman-5.4.0%2Fman§=0

# newfs /dev/ad4s3a
/dev/ad4s3a: 8192.0MB (16777216 sectors) block size 16384, fragment size 2048
using 45 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376416, 752672, 1128928, 1505184, 1881440, 2257696, 2633952, 3010208,
3386464, 3762720, 4138976, 4515232, 4891488, 5267744, 5644000, 6020256,
6396512, 6772768, 7149024, 7525280, 7901536, 8277792, 8654048, 9030304,
9406560, 9782816, 10159072, 10535328, 10911584, 11287840, 11664096, 12040352,
12416608, 12792864, 13169120, 13545376, 13921632, 14297888, 14674144,
15050400, 15426656, 15802912, 16179168, 16555424

# newfs -U /dev/ad4s3d
/dev/ad4s3d: 8191.9MB (16777088 sectors) block size 16384, fragment size 2048
using 45 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 376416, 752672, 1128928, 1505184, 1881440, 2257696, 2633952, 3010208,
3386464, 3762720, 4138976, 4515232, 4891488, 5267744, 5644000, 6020256,
6396512, 6772768, 7149024, 7525280, 7901536, 8277792, 8654048, 9030304,
9406560, 9782816, 10159072, 10535328, 10911584, 11287840, 11664096, 12040352,
12416608, 12792864, 13169120, 13545376, 13921632, 14297888, 14674144,
15050400, 15426656, 15802912, 16179168, 16555424

5.作成したファイルシステムに現在稼働中の/と/usrをバックアップ
ここを参照
http://www.jp.freebsd.org/QandA/HTML/1859.html
ただし、通常稼働中のファイルシステムをバックアップするには-Lオプションが必要なので追加する。

# mount /dev/ad4s3a /mnt
# dump -L0af - / | ( cd /mnt && restore rf - )
DUMP: Date of this level 0 dump: Wed Jun 22 00:15:28 2011
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping snapshot of /dev/ad4s2a (/) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 275698 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
warning: ./.snap: File exists
expected next file 94209, got 10
DUMP: DUMP: 275575 tape blocks
DUMP: finished in 21 seconds, throughput 13122 KBytes/sec
DUMP: DUMP IS DONE

# umount /mnt
# mount /dev/ad4s3d /mnt
# dump -L0af - /usr | ( cd /mnt && restore rf - )
DUMP: Date of this level 0 dump: Wed Jun 22 00:18:13 2011
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping snapshot of /dev/ad4s2d (/usr) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 3856608 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
warning: ./.snap: File exists
expected next file 23653, got 3428
DUMP: 73.11% done, finished in 0:01 at Wed Jun 22 00:25:04 2011
DUMP: 88.27% done, finished in 0:01 at Wed Jun 22 00:29:33 2011
DUMP: DUMP: 3857611 tape blocks
DUMP: finished in 829 seconds, throughput 4653 KBytes/sec
DUMP: DUMP IS DONE



6.3番目のスライスのfstab書き換え
マウントして適当に書き換え


7.3番目のスライスから起動
再起動し、ブートマネージャにてF3を押し3番目のスライスから起動


8.二度目以降のバックアップ
二回目以降は4.以降を繰り返し。
手間なのでスクリプト化したい。

macでUSBメモリにddで書き込み

FreeBSDのインストールUSBメモリを作るためにMacでddしたのでメモ。

基本的にはこの方の記事通り。
http://d.hatena.ne.jp/Syunpei/20110131/1296453936

1.USBメモリ接続

2.以下のコマンドでドライブの接続状況確認。

$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.1 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 499.8 GB disk0s2
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *500.1 GB disk1
1: Apple_partition_map 32.3 KB disk1s1
2: Apple_Driver43 65.5 KB disk1s2
3: Apple_Driver_ATA 65.5 KB disk1s3
4: Apple_FWDriver 114.7 KB disk1s4
5: Apple_HFS LaCie 500.1 GB disk1s6
/dev/disk3
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *4.0 GB disk3
1: Windows_FAT_32 NO NAME 4.0 GB disk3s1

3.アンマウント…失敗。

$ diskutil umount /dev/disk3
disk3 was already not mounted or it has a partitioning scheme so use "diskutil unmountDisk" instead


4.メッセージ通りにする。

$ diskutil umountDisk /dev/disk3
Unmount of all volumes on disk3 was successful


5.マウント状況確認

$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s6 on /Volumes/LaCie (hfs, local, nodev, nosuid, journaled)

6.dd実施

$ sudo dd if=FreeBSD-8.2-RELEASE-amd64-memstick.img of=/dev/disk3

7.dd完了後、Disk Utilityを起動して「取り出す」実施。


その他、Finderの取り出しボタンでアンマウントすると、diskutil listでも見えなくなるので、デバイスとして見えなくなってしまう事が分かった。

書き込み後、このUSBメモリからブートできる事を確認。一安心。