タグ別アーカイブ: JailBreak

Kindle3/3.1でPDF形式ファイルのダウンロードが可能に【Kindle JB】

Kindle JailBreakにFreeDownloadハックが登場しています。Kindle Software Version 3.1で動作確認済みですが3.0.xでは未確認です。Kindleが内部ブラウザからダウンロードできるのは拡張子が”.azw”、”.prc”、”.mobi”、”.txt”に限定されており、PDF等の他の拡張子をもつファイルはダウンロードすることが出来ませんが、このハックを使えば可能になります。

03Kindle-Aozora

このハックを利用すると、Kindle3の内部ブラウザからオンラインストレージサービスの代表であるDropboxにアクセスしてPDFファイル等をダウンロードできるようになります。まだ使用していない方は非常に便利なサービスですので利用してみてはいかがでしょうか。
Dropbox(このURLから登録しますとわたしと登録した方に無料上限の2GBに250MBの容量が追加できます。どうぞよろしくお願いします。)

注意喚起情報
シリアル接続できない方のKindle JailBreakハックは非常に危険ですのでリスクについて理解されている方のみ読み進めてください。
参考:Kindle Jailbreak(Hack)の注意点に関する個人的メモ(未定稿)

インストール方法
まず、Kindle3をyifanlu氏のJailBreakハックを適用しておく必要があります。次に、以下のサイトからFreeDownloadハックのアップデータをダウンロードして、自分の機種にあった”.bin”ファイルをKindleのUSBストレージのroot(/mnt/us)において、Settingsから”Update Your Kindle”にて適用します。
MobileRead Forums – FreeDownload hack

FreeDownload設定ファイルの編集
ハック適用後、FreeDownload設定ファイル(freedownload.conf)はUSBストレージのfreedownloadディレクトリ(/mnt/us/freedownload)にありますので必要に応じて編集します。Windowsのテキストエディタで編集する場合は文字コード(UTB-8)や改行コード(LF)に注意してください。次のような設定が可能になっています。変更を適用するにはKindleをリブートする必要がありますので忘れずに。

ALLOWED_EXTENSIONS=’pdf epub rtf zip cbz mp3′
→ダウンロード可能にする拡張子です。

DOWNLOAD_DIR=documents/Downloaded
→ダウンロードする先を指定します。指定したディレクトリはダウンロードする前に自分で用意しておきます。

DOWNLOAD_DIR_mp3=music
DOWNLOAD_DIR_aax=audible

→拡張子が”mp3″、”aax”の場合は個別にダウンロード先を指定することができます。

RESUME_DOWNLOADS=yes
→同一ファイル名がある場合に上書きするかどうかを設定します。”no”の場合に上書きします。

#AUTO_UNZIP=yes
→ダウンロードしたファイルがzip形式の場合、自動的に解凍するかを設定します。オンにする場合はコメントアウトの”#”を削除します

#LOG=yes
→ダウンロードのログを残します。freedownload.logに記録されます。

DropboxからPDFをダウンロードする
オンラインストレージのDropboxを利用している方にはその便利な世界が容易に想像つくと思います。Kindle3からも利用できたら便利ではありませんか?さすがにKindle3のローカルストレージと同期することはできませんが、Dropboxに置いたファイルをダウンロードすることなら可能です(ハックなしでもダウンロード可能なファイル種類は上述のとおりです)。

最近、雑誌のスクラップや文庫本のPDF化に凝っていまして、Dropboxに置いて共有できないかを考えてみました。このハックを使うとKindleにもダウンロードして閲覧することができました。

同期したPDFファイルを母艦からDropboxに格納しますが、保管場所はあらかじめ用意されている”Public”フォルダにする必要があります。他の方に公開して共有している場合には注意してください。Share a folderで共有設定したフォルダではダメです。

Kindle3の内部ブラウザを起動し、Enter URLから”http://www.dropbox.com”にアクセスしログインします。このときMobile Modeになっている場合は、Standard Modeに切り替えます。Publicフォルダに移動して、ダウンロードしたいファイルをクリックします。画面下にダウンロードするファイル名が表示されます。

00Kindle-Dropbox

この状態はまだダウンロードが開始しておらず、続いて次のようなハックがない状態と同じエラーメッセージが表示されます。落ち着いて、OKボタンをクリックしてください。ダウンロードが開始します。

01Kindle-Dropbox

HOME画面に戻ると、さきほどダウンロードしたファイルが表示されます。ちなみに、内蔵ブラウザの起動が面倒なのでMobipocket eBook CreaterでDropboxのURLを記述したhtmlをビルドしてKindleのdocumentsディレクトリに入れておくとHOME画面からカンタンにアクセスできて便利になります。

02Kindle-Dropbox

著作権が発生する著作物の自炊に関しての取り扱いについては十分ご注意ください。
参考:アゴラ 池田信夫 – MobileMeもDropboxも違法である

追記:Kindle2ハックでPDFダウンロードが出来た頃との違い
Kindle3はwebkitベースのブラウザに変更され、ダウンロード可能ファイルの設定方法も変更されてしまい、Kindle2のときのようなnetfront.ini設定ファイルの編集では指定できなくなっていました。

[UPDATE1]【速報】Kindle Software Version 3.1が早くもJailBreakされる

先日、Kindle3に向けたSoftware Version3.1がリリースされ、一昨日アマゾンからOTA配信を開始する旨の公式アナウンスがあったばかりです。「JailBreak済みKindle3WIFI版のソフトウェアを3.1にアップデートしてみた」でまとめた後にアップデータによるハックは出来ないためスーパーハッカーのJailBreakハックを待つしかないことを確認しところに、昨日、当ブログのコメント欄にJailBreak可能であるとの情報を知らせていただきました。(情報Thx>7942さま)

早速、JailBreakハックを適用してみましたのでご報告いたします。結論から言うと、JailBreakされ以前と同じusbnetworkハックを適用することができました。今のところ問題ありませんが、確認できたことは順次追記していく予定です。

注意喚起情報
シリアル接続できない方のKindle JailBreakハックは非常に危険ですのでリスクについて理解されている方のみ読み進めてください。
参考:Kindle Jailbreak(Hack)の注意点に関する個人的メモ(未定稿)

まずJailBreakするためのアップデータをダウンロードします。使用上の注意はコチラを参照してください。必ず読んでください。
Kindle 3.1 Jailbreak

アップデータは上記フォーラムにもリンクがありますがコチラかダウンロード可能です。
Kindle Jailbreak

解凍して自分の機種にあったインストーラーをKindle3のUSBストレージのroot(”/mnt/us/”)に置き、Settingsメニューから”Update Your Kindle”を実行します。完了するとKindleのHOME画面が起動します。USBストレージのrootに”ENABLE_HACK_UPDATES”というファイルがあるはずです。このファイルの存在チェックにより適用するアップデータの提供元がAmazonなのかサードパーティなのかをコントロールします。存在する場合はハックを適用するようになります。解除する場合はこのファイルを削除してKindleを再起動します。またハックを適用したい場合は中身はブランクのこれと同じファイル名を用意して再起動するだけです。

今回のJailBreakハックはリリースされたばかりですがバージョンが既に0.1から0.3まで上がっています。徐々に機能が改善されており、今後も上がる可能性がありますので、急がない方はもう少し様子を見たほうが良いかもしれません。

念の為にSoftware Version 3.0.3で適用できていたusbnetworkハックを適用してみたところ、JailBreakハックなしでは失敗していたものの、無事成功し動作しました。

参考:【Kindle3要JB】USB/WIFI接続からrootでログインするハック

参考までにyifanlu氏のkindle-JailBreak 0.3のハックを適用したところのシリアル接続で取得したログです。
#################################################
# N O T I C E * N O T I C E * N O T I C E #
#################################################
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
#################################################
[root@kindle root]#
[root@kindle root]#
[root@kindle root]# system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
INIT: Switching to runlevel: 3
system: I K05framework:def:stopping booklet framework
com.lab126.powerd failed to access property state (0x3 lipcErrNoSuchSource)
system: I K06browserd:def:Stopping Browser Daemon
system: I K10cron:def:stopping crond
start-stop-daemon: lseek: Invalid argument
Stopping lipc-daemon: system: I K10tmd:def:Stopping Transfer Manager Daemon
system: I K15audio:def:stopping audio server
system: I K17ttsd:def:stopping TTS daemon
system: I K20volumd:def:stopping Volume daemon
system: I K25phd:def:Stopping Phone-Home Daemon
system: I K30cmd:def:stopping CMD daemon
system: I K30wifid:def:stopping wifid
Stopping Power Management Daemon: stopped /usr/bin/wpa_supplicant (pid 18951)
system: W wpa_supplicant:def:wpa supplicant stopped
system: I wifi:def:WiFi Device mac =
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
..unloading all
system: I wifi:def:loadAR6000 finished, args=(unloadall)
system: I K76mcsd:def:stopping MCS server
Stopping Process Monitoring Daemon: system: I K85dbus:def:stopping system message bus
system: I mntroot:def:Making root filesystem read-only
system: I S50updater:def:updater started
system: I S50updater:def:Waiting for wand to shutdown
system: I S50updater:def:wand shutdown complete
system: I S50updater:def:read bundle line [/mnt/us/update_jailbreak_0.3_k3w_install.bin]
system: I S50updater:def:Applying update /mnt/us/update_jailbreak_0.3_k3w_install.bin
system: I S50updater:def:Size of update: 3751 bytes
system: I S50updater:def:Version before update: 031-S1-055870
system: I _otaupexec:def:processing update /mnt/us/update_jailbreak_0.3_k3w_install.bin
4+0 records in
4+0 records out
system: I _otaupexec:def:version is “FC02”
32+0 records in
32+0 records out
57+1 records in
57+1 records out
system: I _otaupexec:def:update image checksum OK
57+1 records in
57+1 records out
jailbreak.sig
payload.sig
loader.sig
update loader.sig .dat
update loader.sig .dat.sig
system: I mntroot:def:Making root filesystem writeable
ota_install: I def:update::backup Amazon keys, just in case
ota_install: I def:update::create jailbreak init script
ota_install: I def:update::copy the keys
ota_install: I def:update::start script
system: I jailbreak:def:update providers changed, switching keys
system: I mntroot:def:Making root filesystem writeable
ota_install: I def:update::done
system: I _otaupexec:def:update complete
system: I S50updater:def:OTA update successful for /mnt/us/update_jailbreak_0.3_k3w_install.bin
system: I S50updater:def:Version after update: 031-S1-055870
system: I S50updater:def:Deleting OTA bundle file “/mnt/us/update_jailbreak_0.3_k3w_install.bin”
INIT: Switching to runlevel: 5
INIT: Sending processes the TERM signal
system: I wifi:def:WiFi Device mac =
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
No debug record limit set
Load Board Data from /opt/ar6k/target/AR6002/hw2.0/bin/lab126_15dBm_nodiv_WWR_CTL.bin
Updating MAC address
BMI Set App Start (address: 0x913950)
BMI Bit-Wise (OR) modify Register (address: 0x500410, orig:0x8, new: 0x9, mask:0x1)
BMI Write compressed Memory (address: 0x502070, filename: /opt/ar6k/target/AR6002/hw2.0/bin/athwlan.bin.z77)
BMI Write Memory (address: 0x52d6d0, filename: /opt/ar6k/target/AR6002/hw2.0/bin/data.patch.hw2_0.bin)
BMI Write Memory (address: 0x500418, value: 0x52d6d0)
BMI Done
system: I wifi:def:loadAR6000 finished, args=()
system: I wpa_supplicant:def:wpa supplicant started
system: I S30network:def:initializing network configuration
system: I S30network:def:Installed Firewall
system: I S60dbus:def:starting system message bus
Starting Process Monitoring Daemon: Retrieved 127 keys for system/daemon/pmond/
Starting Power Management Daemon: system: I S70cmd:def:starting CMD daemon
system: I S70wifid:def:starting wifid
system: I S75phd:def:Starting Phone-Home Daemon
system: I S76mcsd:def:starting MCS server
system: I S80volumd:def:starting Volume daemon
system: I S85audio:def:initializing audio driver defaults
No state is present for card mx35luigi
system: I S85audio:def:starting audio server
system: I S87ttsd:def:starting TTS daemon
Battery Level: 92%
Wed Feb 23 08:57:44 2011 INFO:battery charge: 92%
Starting lipc-daemon: system: I S90tmd:def:Starting Transfer Manager Daemon
system: I S90cron:def:starting crond
system: I S94browserd:def:Starting Browser Daemon
system: I S95framework:def:starting booklet framework
system: I S96boot_finished:def:Boot finished script running
system: I S96boot_finished:symboot:time=7064150:boot time before framework starts, in milliseconds
start.sh: starting framework
system: I mntroot:def:Making root filesystem read-only
system: I S96boot_finished:def:Boot finished script received framework booted event
system: I S96boot_finished:fwboot:time=7104190:boot time after framework starts, in milliseconds
system: I loginfo:devhw:boardID=SP1B:Shasta PVT device – rev 1
system: I loginfo:devhwphy::USB PHY built by unknown
system: I loginfo:devsworig::Original System Software Version: 031-S1-055870
Sat Feb 5 19:07:33 PST 2011
system: I loginfo:devswota::OTA Kindle 3.1 (~~otaVersion~~)
com.lab126.wan failed to access property localTimeOffset (0x3 lipcErrNoSuchSource)
system: W loginfo:ltofailwandoff:cannot retrieve local time offset – wand not running
com.lab126.powerd failed to set value for property wakeUp (0x8 lipcErrNoSuchProperty)
system: I ckimage:def:skipping kernel check
system: I governor:def:switching to ondemand governor
system: I tinyrot:def::Rotating file /var/log/messages with max size 256
/usr/sbin/tinyrot : Signaling syslog
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 348kb
system: I tinyrot:def:Removing /var/local/log/messages_00000283_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 319kb
system: I tinyrot:def:Removing /var/local/log/messages_00000284_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 291kb
system: I tinyrot:def:Removing /var/local/log/messages_00000285_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 272kb
system: I tinyrot:def:Removing /var/local/log/messages_00000286_*.gz to save storage space
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 228kb

—-[UPDATE 2011/3/6追記]
Kindle JailBreakハックが0.3から0.4へバージョンアップしています。オフィシャルとカスタムアップデータをユーザ側でコントロール(/mnt/us/ENABLE_HACK_UPDATES)する必要がなくなりました。バージョン0.3適用済みでもそのままバージョン0.4で上書きしても構わないようです。詳しくはコチラを参照してください。参考までに適用ログです。

system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
INIT: Switching to runlevel: 3
system: I K05framework:def:stopping booklet framework
com.lab126.powerd failed to access property state (0x3 lipcErrNoSuchSource)
system: I K06browserd:def:Stopping Browser Daemon
system: I browserd:def:Stopping Browser Daemon
Killed
system: I browserd:def:Starting Browser Daemon
system: I usbnetwork:def:usbnet is already stopped
system: I K10cron:def:stopping crond
start-stop-daemon: lseek: Invalid argument
Stopping lipc-daemon: system: I K10tmd:def:Stopping Transfer Manager Daemon
system: I K15audio:def:stopping audio server
system: I K17ttsd:def:stopping TTS daemon
system: I K20volumd:def:stopping Volume daemon
system: I K25phd:def:Stopping Phone-Home Daemon
system: I K30cmd:def:stopping CMD daemon
system: I K30wifid:def:stopping wifid
Stopping Power Management Daemon: stopped /usr/bin/wpa_supplicant (pid 12001)
system: W wpa_supplicant:def:wpa supplicant stopped
system: I wifi:def:WiFi Device mac =
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
..unloading all
system: I wifi:def:loadAR6000 finished, args=(unloadall)
system: I K76mcsd:def:stopping MCS server
Stopping Process Monitoring Daemon: system: I K85dbus:def:stopping system message bus
system: I mntroot:def:Making root filesystem read-only
system: I S50updater:def:updater started
system: I S50updater:def:Waiting for wand to shutdown
system: I S50updater:def:wand shutdown complete
system: I S50updater:def:read bundle line [/mnt/us/update_jailbreak_0.4_k3w_install.bin]
system: I S50updater:def:Applying update /mnt/us/update_jailbreak_0.4_k3w_install.bin
system: I S50updater:def:Size of update: 3660 bytes
system: I S50updater:def:Version before update: 031-S1-055870
system: I _otaupexec:def:processing update /mnt/us/update_jailbreak_0.4_k3w_install.bin
4+0 records in
4+0 records out
system: I _otaupexec:def:version is “FC02”
32+0 records in
32+0 records out
56+1 records in
56+1 records out
system: I _otaupexec:def:update image checksum OK
56+1 records in
56+1 records out
jailbreak.sig
payload.sig
loader.sig
update loader.sig .dat
update loader.sig .dat.sig
system: E _otaupexec:def:signature verification failed on “/tmp/.update-tmp.13468/update loader.sig .dat”
system: E _otaupexec:def:signature verification failed
system: E S50updater:def:OTA update failed (1)
system: I S50updater:def:Deleting OTA bundle file “/mnt/us/update_jailbreak_0.4_k3w_install.bin”
INIT: Switching to runlevel: 5
INIT: Sending processes the TERM signal
system: I wifi:def:WiFi Device mac = 28:EF:01:44:C9:C4
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
No debug record limit set
Load Board Data from /opt/ar6k/target/AR6002/hw2.0/bin/lab126_15dBm_nodiv_WWR_CTL.bin
Updating MAC address
BMI Set App Start (address: 0x913950)
BMI Bit-Wise (OR) modify Register (address: 0x500410, orig:0x8, new: 0x9, mask:0x1)
BMI Write compressed Memory (address: 0x502070, filename: /opt/ar6k/target/AR6002/hw2.0/bin/athwlan.bin.z77)
BMI Write Memory (address: 0x52d6d0, filename: /opt/ar6k/target/AR6002/hw2.0/bin/data.patch.hw2_0.bin)
BMI Write Memory (address: 0x500418, value: 0x52d6d0)
BMI Done
system: I wifi:def:loadAR6000 finished, args=()
system: I wpa_supplicant:def:wpa supplicant started
system: I S30network:def:initializing network configuration
system: I S30network:def:Installed Firewall
system: I S60dbus:def:starting system message bus
Starting Process Monitoring Daemon: Retrieved 127 keys for system/daemon/pmond/
Starting Power Management Daemon: system: I S70wifid:def:starting wifid
system: I S70cmd:def:starting CMD daemon
system: I S75phd:def:Starting Phone-Home Daemon
system: I S76mcsd:def:starting MCS server
system: I S80volumd:def:starting Volume daemon
system: I S82usbnet:def:usbnet is disabled
system: I S85audio:def:initializing audio driver defaults
No state is present for card mx35luigi
system: I S85audio:def:starting audio server
system: I S87ttsd:def:starting TTS daemon
Battery Level: 76%
Sun Mar 6 20:58:22 2011 INFO:battery charge: 76%
system: I S90cron:def:starting crond
Starting lipc-daemon: system: I S90tmd:def:Starting Transfer Manager Daemon
system: I browserd:def:Stopping Browser Daemon
Killed
system: I S94browserd:def:Starting Browser Daemon
system: I browserd:def:Starting Browser Daemon
system: I S95framework:def:starting booklet framework
system: I S96boot_finished:def:Boot finished script running
system: I S96boot_finished:symboot:time=7815080:boot time before framework starts, in milliseconds
start.sh: starting framework
system: I mntroot:def:Making root filesystem read-only
system: I S96boot_finished:def:Boot finished script received framework booted event
system: I S96boot_finished:fwboot:time=7852200:boot time after framework starts, in milliseconds
system: I loginfo:devhw:boardID=SP1B:Shasta PVT device – rev 1
system: I loginfo:devhwphy::USB PHY built by unknown
system: I loginfo:devsworig::Original System Software Version: 031-S1-055870
Sat Feb 5 19:07:33 PST 2011
system: I loginfo:devswota::OTA Kindle 3.1 (~~otaVersion~~)
com.lab126.wan failed to access property localTimeOffset (0x3 lipcErrNoSuchSource)
system: W loginfo:ltofailwandoff:cannot retrieve local time offset – wand not running
com.lab126.powerd failed to set value for property wakeUp (0x8 lipcErrNoSuchProperty)
system: I ckimage:def:skipping kernel check
system: I governor:def:switching to ondemand governor
system: I tinyrot:def::Rotating file /var/log/messages with max size 256
/usr/sbin/tinyrot : Signaling syslog
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 555kb

[UPDATE1]iOS4.2.1をJailBreakしたらiBooksのDRMコンテンツが開けないとお嘆きの方へ

JailBreakしたiPhone/iPad上でiBookstoreで購入したDRMコンテンツを開こうとすると、「iPhoneの構成に問題があります。iTunesで復元してからiBooksを再インストールしてください。」というエラーが出ます。このメッセージをみるとドキッとしますが、普通に開くことはできます。

Error message on iBooks

この状態からOKボタンをタップし、一度ライブラリに戻ります。一旦ホームボタンでiBooksを終了(マルチタスキング機能でバックグラウンドでサスペンド状態)し、再度iBooksを起動します。DRMコンテンツ(サンプルはWinnie-the-Pooh)をタップします。この操作1回または複数回繰り返すことで必ず開きます。

Action Menu on iBooks with DRMed book open

実は、このiBooksのエラーはredsn0w 0.96bにてiOS4.2.1のtethered JailBreakできる頃から発現していました。上記の方法でコンテンツを開くことは出来ていたのでなんか嫌な感じはしましたが、iBooksのDRMコンテンツを購入することはありませんので気にしていませんでした。greenpois0nでuntethered JailBreakが可能になったことで脱獄された方が多くなり、気がつく方が増えてきたのかも知れません。

iBooks loading error on JB iPad
posted on December 21, 2010 at 22:58:34

このほど、スーパーハッカーの @comex 氏がエラーの原因を突き止めたようですので、近々、JailBreakツールに実装されこのエラーが解消されるのかも知れません。詳しくは Why iBooks doesn’t play nicely with Jailbreak をご覧ください。

追記:リリースされたばかりのPwnageTool4.2を使用してiOS4.2.1をJailBreak(untethered)した場合には上記問題が発現しないことを確認しました。

続きを読む [UPDATE1]iOS4.2.1をJailBreakしたらiBooksのDRMコンテンツが開けないとお嘆きの方へ

[UPDATE2]iPhoneのアプリとフォルダにもロックをかけるLockdown Proがすごい【要JB】

iPhoneのアプリごとにロックをかけるiProtectがお気に入りでしたが、Lockdown Proはさらにすごい。Cydia StoreでUS$2.99の有料アプリですがその価値は十分にありそうです。iProtectのエントリ(アプリごとにロックをかけるiProtect【要JB】)でも触れたように、iPhoneにはガラケーにあるような機能毎にロックをかけることができません。かといってロック画面を解除する際のパスコードを毎回入力するのも不便です。これを解消してくれるアプリです(見方によっては、そもそもJailBreakによってセキュアな環境を脆弱化している可能性があるわけですからサイバー攻撃という面では物理的に盗難にあうよりよほど危険かも知れませんが)。

【2012/1/28追記】現在のバージョン2.1.1はiOS5には対応していないようです。インストールは可能ですがRespringするとSafe Modeに入ってしまいます。
[2013年2月24日追記]バージョン2.4.4はiOS6に対応しています。パスワード管理について追加情報があります。最下部の参考エントリーを確認してください。
[2014年1月3日追記]iOS7用は別Tweakになっています。追加機能等を別エントリにまとめていますので最下部の参考エントリをご参照ください。

02lockdownpro

注意喚起情報
JailBreakされたiDeviceはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となります。また、JailBreakはアップル社のセキュアな環境を無効化するため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

JailBreakの危険性については詳細に説明されているサイトがありますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について

Lockdown Proの特長

  • アプリだけでなくフォルダにもパスワードでロック可能
  • ロック対象アプリとフォルダーの設定はSpringboardでタップするだけ
  • 複数のパスワードの設定が可能
  • SBSettingsのトグル(別売り)でOn/Offをカンタンに


初回起動時
Lockdown Proをインストールしてもホームスクリーン上にアイコンは表示されません。設定.appにあるLockdown Proを選択し、
Safety Word:Lockdown Proの設定画面を開くときのパスワード
Password:アプリやフォルダを開くときのパスワード
を設定します。これらは設定.appからいつでも変更できます。

基本的な使い方
Springboardでアイコンを長押ししてプルプルさせます。アイコンとフォルダの右下に鍵マークが表示されますので、タップして、Password入力が必要なLock(レッド)と不要なUnlcok(グレー)を切り替えて設定します。切り替え時には最初のアイコンだけPasswordの入力を求められますが、次のアイコンからは設定完了するまではタップするだけで切り替えできます。終了したらホームボタンで確定させます。

あとはアプリやフォルダを開く時にPasswordを入力します。なお、マルチタスキングでロック対象アプリに切り替える場合もPassword入力が必要になります。

Lockdown Proの機能
詳細設定は設定.appから”Lockdown Pro”をタップ、Safety Wordを入力して行います。設定項目については以下のとおりです。

Unlock/Lock Applications
All Applications
インストールしているアプリの一覧が表示されます。SpringboardだけでなくここからもアプリのLock/Unlockを切り替えることが可能です。アプリの右側に付いた家のアイコンがLockの目印です。

lockdownpro-lockapp-onoff

CydiaはJailBreakに関する重要な役割を果たしていますのでLockしようとするとこんなメッセージが出ます。くれぐれもパスワードを忘れないようにしてください。

lockdownpro-cydia-restrictiom

Locked Applications
Lockアプリの一覧を表示します。Unlockに切り替えることが可能です。

lockdownpro-lockapp

Lock All Applications
インストールされている全アプリをまとめてLock対象にします。

Unlock All Applications
インストールされている全アプリをまとめてUnlockに戻します。

Lockdown Settings
Lock These Settings
これをオンにすると、設定.appからLockdown Proの設定画面を開くときにSafety Wordの入力を要求するようになります。Lockdown Proの設定について全てを変更できてしまうのでオンにすべきでしょう。

Enable Lockdown
Lockdown Proの有効無効を切り替えます。SBSettingsを利用している場合はOn/Offをカンタンに切り替えできるトグル・プラグイン(Cydia StoreでUS$0.99)が便利です。

lockdownpro_sbsettings_toggle

Other Settings
その他さらに高度な設定が可能です。


Custom Passwords
複数のパスワードを設定することが可能です。たとえば、特定アプリだけ違うパスワードを設定しておくことができます。やりすぎな気がしますが。。。まず、画面を開くと現在設定しているPassword(サンプルとして”1234″)とそのLockアプリが表示されますので、”Add New Passowrd”をタップして別のPassword(サンプル”7890″)を設定します。
lockdownpro-cutompassword-singlepassword

lockdownpro-custompasswords-doublepassword

先ほど作ったPassword(サンプル”7890″)に割り当てたいアプリ、フォルダをドラッグして移動します。完了したらSaveボタンをタップして確定します。

lockdownpro-custompassowrd-movingicon

ちなみにCustom Passwordを設定したアプリをAll ApplicationsやLocked Applicationsで確認すると家のアイコンの左隣に鍵のアイコンが付くようになります。

lockdownpro-applist-withlock

Lock Icon Placement
オンにするとアイコンの移動が不可になります。他人に勝手にホーム画面のアイコンの位置を変更させないための手段です。自分がアイコンのレイアウトを変更するにも設定画面から一旦解除させなければなりませんし、またアイコン系のJailBreak tweaksとコンフリクトする可能性もありますのでオフのままでいいように思います。

Lock App Deletion
オンにするとアプリやフォルダの削除が不可になります。これも必要性が感じられませんが、心配な方はオンにしておいた方がよいでしょう。

Delay Lock
アプリやフォルダを開くときに一度Passwordで認証しておけばiPhoneの自動ロックや電源ボタンで画面ロックをかけるまでの間、Password入力が不要になります。iPhoneの自動ロックを設定していれば、毎回パスワード入力することもないでしょうからこれは嬉しい配慮です。
念のためですが、Lockdown Pro詳細設定を開く際のSafety Word入力は毎回必須です。

No Enter Button
“Lock These Settings”がオンになっていると、設定.appからLockdown Proを選択するときにSafety Wordの入力が必要になります。その際に”No Enter Button”がオンになっているとSafety Wordの入力を終えた時点で自動的にEnterされたと見なされます。面倒ですがオフのままのほうが良いと思います。

Launch Button
この項目をオンに設定すると、Lockアプリやフォルダを開く際にPasswordを入力した時点で”Launch”ボタンをタップするまでパスワード認証を開始しません。

Password Management
Numeric Password
数字だけのパスワードを設定している場合、パスワード入力時に数字キーボードを出します。パスワードが数字だけならオンにしておくと入力がカンタンになります。

iProtectとの比較
機能面ではLockdown Proが上です。iProtectにはSIM Cardに関するLock機能や、ホームボタンのダブルタップ無効化、Spotlightの検索結果表示の無効化というLockdown Proにない機能もありますが、優先順位の高いものではありません。また、価格面ではLockdown ProのUS$2.99(SBSettings用トグルは別途US$0.99)ですから、iProtectが10日間のフリートライアル期間があるとはいえUS$8.99は高く感じてしまいます。
信頼性と安定性については、iProtectはこれといって不具合(アイコン移動系tweaks以外)は生じておりません。Lockdown Proも今のところ問題ありませんが今後どういう不具合が出るかはまだわかりません。

Lockdown ProとiProtectの併用
両方併用が可能です。同じアプリに対してLockできますが、Lockdown Proが先でパスワード入力が完了するとiProtectの認証画面が後に続きます。アプリを開くだけであれば問題は生じていませんが、アイコン移動等でコンフリクトが生じる可能性はありますので、使用する場合はいずれか一方のほうがいいと思います。

iPhone4のアプリ右下鍵マークのアイコンサイズを調整するTips
SpringBoard上でロック対象アプリを選択する際のプルプル震えるアプリの右下に鍵マークのアイコン。このアイコンのサイズが大きすぎてダサイので、サイズを変更してみました。以下の例はiPhone4/iOS4.3.1です。Retina非対応アイコン(30×30)をカンバスサイズを60×60に変更して、Retina対応アイコンと差し替えます。
/System/Library/CoreServices/SpringBoard.app/
Lockdown-Lock.png
Lockdown-Unlock.png
Lockdown-Lock@2x.png
Lockdown-Unlock@2x.png
作業の前には失敗したらいつでも戻せるようにバックアップをとっておきます。

Lockdown-Lock.pngをPhotoshop等で開き、カンバスサイズを60×60にして保存します。ファイル名をLockdown-Lock@2x.pngに変更して、母艦側に戻します。同様にLockdown-Unlock.pngも作業して母艦に戻します。Respringして作業は終了です。

LockdownPro - Icon Change

[2013年2月24日追記]パスワード管理に注意

[2014年1月3日追記]Lockdown Proの最新版のパスワード管理

Lockdown Proの最新バージョンでは設定ファイルが暗号化されていますので、最新版の追加機能とともに別エントリにまとめました。

JailBreak済みKindle3WIFI版のソフトウェアを3.1にアップデートしてみた

Kindle3にEarly Preview版のSoftware Version3.1の配信が開始されましたので早速ダウンロードしてアップデートしました。Twitter上では「気がついたらアップデートしていた」というツイートも見受けられたのでOTA配信も開始されている可能性があります。

Amazonのリリースによれば、今回の主なアップデートは以下のような内容を含んでいます。

  • Public Note
  • Real Page Number(1,2ヶ月後)
  • Before You Go
  • New Newspaper and Magazine Layout

この辺の詳しい説明はじっくりKimdle3を使い込んでいる方にお任せするとして、わたしはJailbreakでハックしているKindle3WIFIの3.1へのアップデートについて情報共有させていただきます。

ここから先はKindleを普通に使っている方の参考にはなりません。

注意喚起情報
JailBreakハックしてシリアル接続できない方は、今回のアップデートを見送った方が無難のように思います。海外のKindle Forumサイトではアップデートはできたがアンインストールできないなどの事象が報告されていますし、他にどの様な影響があるか不明です。リスクについて理解されている方のみ読み進めてください。

Kindle Jailbreak(Hack)の注意点に関する個人的メモ(未定稿)

アップデート前のわたしのKindle3の状態
今回アップデートしたのはKindle3WIFIのソフトウェアバージョン3.0.3です。JailBreakハックのうえusbnetworkのアップデータを適用していました。また、多看(Duokan)をインストールしている状態です。あとは、シリアル接続によりTerminal経由で直接、”/opt/amazon/screen_saver/600×800/”にあるスクリーンセーバー画像を自分で用意した画像に差し替えていました。

アップデートの失敗
WIFI版専用アップデータをダウンロードし、Kindle3のUSBストレージにコピー。KindleからSettings>Update Your Kindleを実行します。今回のアップデートは2回に分けて適用されますが、”stage 1 of 2″で失敗してしまいました。レンガになることなく、3.0.3のままで通常起動はしますので、3.1にアップデートできない状態です。


DSC00328

DSC00329

アップデートで失敗する原因
通常のKindleとの相違点をひとつづつ取り除きながら、Update Your Kindleを繰り返します。まずDuokanを外しても症状は変わらず。次にusbnetworkハックをアンインストールしても同じく失敗しました。シリアル接続してアップデートのログをとっていましたので、確認したところ(最初からログで原因を分析すればよかったのですが面倒なので想像の範囲で原因を推測していました)どうやら適用したハックが原因ではなかったようです。

ログを見ると必ずつぎの部分で失敗し、その後、通常の3.0.3のブートが開始されています。

ota_install: I def:patch:patchinfo=”/opt/amazon/screen_saver/600×800/23_feedback_600.gif”:patching file
bspatch: /opt/amazon/screen_saver/600×800/23_feedback_600.gif: No such file or directory
ota_install: C def:patch:patchinfo=”/opt/amazon/screen_saver/600×800/23_feedback_600.gif”:patch failure
system: E otaup:def:image update failed
webupdate: I def:webupdate::attempting to remove update file : update-06-536720111-558700031.bin
webupdate: C def:webupdate::failed to apply update : update-06-536720111-558700031.bin

つまり、Terminalから直接スクリーンセーバーの画像を差し替えていたことが原因でした。シリアル接続経由でオリジナルのスクリーンセーバーの画像を全て戻して再度実行したところうまくいきました。ログを確認するとこの画像のみの差し替えパッチなので全てを戻さなくても正常に完了したと思います。


DSC00336

アップデートが完了すると、Settings画面から右下のバージョンが”3.1(558700031)”となっていることが確認できます。最後にはJailBreakハックだけ適用した状態でアップデートが完了したことになりましたが、レンガになることなく成功しました。
今回、原因となった画像はKindle Software Version3.0.3から若干変更が加えられていました。Kindle3はWIFI版、3G-US版、3G-UK版と3種類ありますが、この画像にはユーザからのフィードバック送信先としてメールアドレスが記載されています。従来は一つのアドレスでしたが、Version3.1からはUKカスタマー専用のメールアドレスが設置されたようで、この影響で書き換えるべきファイルが見当たらずエラーになっていたということになります。

Version3.0.3の”23_feedback_600.gif”
23_feedback_600_303

Version3.1の”23_feedback_600.gif”
23_feedback_600_310

これは完全に推測になりますが、おそらく多看(Duokan)やusbnetworkが入った状態でも3.1にはあげること自体はできた可能性が高いです。最初からログを見てれば、いきなりDuokanやusbnetworkに手をつけることもなかったはずですが・・・無論、その後どのような不具合が生じるのかはわかりません。

今後、Kindle Software Version 3.1のレビューやJailBreak適合状況など確認していきたいと思います。

待望のiPhone4/iOS4.2.1 Untethered JailBreakが可能に – GreenPois0n RC5

iPhone4の購入時からiOS4.2.1がインストールされているとTethered JailBreak(iOS4.2.1の仮脱獄(tethered jailbreak)てどんなもの?)しかできませんでした。2月4日、ついにChronic DevからGreenPois0n RC5がリリースされ、無事、Untethered JailBreak環境にすることが出来ました。JBツールとしてのGreenPois0nは初めて使いましたので備忘録として残します。

アンロックが必要な方は、そのままiOS4.2.1にあげてしまうとベースバンドが上がりますので注意が必要です。ベースバンドのバージョンを維持しつつiOS4.2.1にあげる方法も紹介されているようですから確認してみてください。わたしは昨年12月からSIMロックフリー版を使用しているため、こういうときは特に気を遣う必要がなくて便利です。

注意喚起情報
JailBreakされたiPhone/iPad/iPod touchはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となってしまいます。また、JailBreakはアップル社のセキュアな環境を無効化することになるため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

JailBreakとその危険性についてはこちらのサイトで詳細に説明されていますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について

Loader.appからCydiaがインストールできないという不具合もあったようで、GreenPois0n RC5_2が早速リリースされました。しかしCydiaをインストールできませんでしたので、Redsn0w0.96rc8を使って”Install Cydia”からインストールすることが出来ました。この不具合はサーバー側の問題かも知れませんのでLoader.appだけで完結しない場合はRedsn0wを使うとよいと思います。

iPhone4をiOS4.2.1に復元しておきます。次に、GreenPois0n RC5_2をダウンロードし、解凍のうえ、ドクロのアイコンをダブルクリックして実行します。初めての画面。うーん、ここにもドクロ。なんか不気味です。


01GP-1

“Jailbreak”ボタンをクリックすると、ドクロが出ている領域でカウントダウンが始まり、いつものようにホームボタンとパワーボタンでDFUモードに移行します。


02GP-2

iPhone本体にログが流れ、ツール側の作業は完了します。その後、りんごマーク→ドクロのアニメーションが出てJailBreak完了です。ホームスクリーンに復帰してみると、CydiaをインストールするためのLoaderというアイコンが現れます。


DSC00311

03GP-3

03GP-4

Loaderというアプリがホームスクリーン上に現れます。起動後にオプションから削除が可能です。
04GP-4

サーバー側の問題と思いますが、Loader.appを実行しても反応しませんでした(今朝の時点では問題なくインストールされたという話も)。ここでRedsn0wの出番です。最新版のRedsn0w0.96rc8で”Install Cydia”を実行、無事、Cydiaがインストールされました。SBSettingsやiFileなどインストールすることができました。


05GP-5

06RS

07Cydia

気になるUntethered環境になったかどうかですが、リブートしてもJailBreak環境が立ち上がることを確認しました。DiskAidでroot領域にアクセスすることも確認できましたし、System領域は1GB確保出来ているようで特段の不具合はありませんでした。リブートして起動するまでを1分ほどのムービーにまとめました。

当初から違和感のあるドクロですが、リブートだけではなくRespringでもこのドクロが出現します。これを消す方法を見つけられた方がいらっしゃいましたので紹介しておきます。iPhone4でも有効のようです。


08Remove-dokuro

やっと購入時にiOS4.2.1のiPhone4をUntethered JailBreakすることが可能になったわけですが、すでにiOS4.3はBeta3版までリリースされており、来週または再来週初めには正式リリースされると噂されています。JailBreakアプリやtweaksもiOS4.2.1対応する時間が必要ですし、JailBreak環境を維持したい方はiOS4.3へのアップグレードがお預けになりそうです。

iPad/iOS4.2の”gsc.wildcat”エラーを解消する方法

iPadをiOS4.2.1にアップデートしてredsn0w JailBreak(tethered)後、Cydiaからアプリやtweakをインストールしようとしてdependency errorが出てしまうことがあります。iPadの解像度に対応していないiPhoneアプリを強制的にiPadモードにする”FullForce”もこのエラーでインストールできません。これを解消する方法が紹介されています。


IMG_0001

参考サイト
Fix the gsc.wildcat error with FullForce for iPad in Cydia

当方からCydiaよりリリースしているWinterBoardテーマを利用したロック画面解除方法をスライドからタップ方式に変更する”Tap to Unlcok for iPad”をインストールできないという報告をコメント欄でいただき、解消方法を確認しました(iPadのロック画面の解除をタップ方式に変更する”Tap to Unlcok for iPad”<一部不具合あり>)。

まず、/System/Library/CoreServices/SpringBoard.appにある、”K48AP.plist”をiFileまたはProperty List Editorで開き、以下の部分を追記します。

<key>wildcat</key>
<true/>


IMG_0002

注意喚起情報
JailBreakされたiPhone/iPad/iPod touchはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となってしまいます。また、JailBreakはアップル社のセキュアな環境を無効化することになるため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

JailBreakとその危険性についてはこちらのサイトで詳細に説明されていますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について

あとはリブートします。この記事を書いている時点ではiPad(iOS4.2.1)のredsn0w JailBreakはtethered(仮脱獄:iOS4.2.1の仮脱獄(tethered jailbreak)てどんなもの?)であるため、このリブート時にはredsn0wで”Just boot tethered right now”で復帰しなければなりませんので注意してください。Cydiaを開くと先ほどのdependency errorは消えているはずです。


IMG_0003

ネット上は探しましたが”wildcat”が何をするためのものか理解できていません。今のところ海外でも上記対処方法で不具合が出たという報告は見受けられませんのでおそらく問題はないものと思います。wildcatの名前がついたPNG画像がMediaPlayerのフレームワーク下にたくさんありました。推測ですがiPadかiPhone/iPodtouchの識別なのかもしれません。

動作環境
iPad WIFI+3G 16GB-USA iOS4.2.1 redsn0w-0.9.6b4 JailBreak(tethered)

[UPDATE1]iOSアップデート時のエラー1013について

iPhone4をiOS4.1からiOS4.2.1にしようとしたところ”エラー1013″が出てアップデートできない状態に陥りました。Googleで検索してみると回避方法は「Windowsマシンで実行する」「/etc/hostsにある74.208.10.249 gs.apple.comを削除またはコメントアウトする」の2つがあるようです。顛末を備忘録として残します。

アップデート対象
iPhone4 32GB 国内モデル
iOS4.1
PownageToolのカスタムIPSWにてJailBreak済み

失敗した環境
MacBook MB404J/A (Early 2008)、MacBook Air 11-inch (MC506J/A)
 Mac OS X 10.6.5
 iTunes10.1、USB直挿し、純正USBケーブル
 リカバリーモード
 DFUモード

成功した環境
ASUSのネットブック
 Windows 7 Home Premium 64bit
 iTunes10.1、USB直挿し、純正USBケーブル
iPhone4のバックアップデータ含め、iTunesのデータ全般がMacBookにあります。そのためWindowsマシンでOSだけアップデートしたあと、キャリアのアクティベーション前にMacBookに接続し直し、復元作業を継続しました。

/etc/hosts編集による解決方法
iPhone3GSをiOS4.2.1にアップデートする際に同じエラー1013が発生しました。Mac上で”/etc/hosts”ファイルに記載されている”74.208.10.249 gs.apple.com”がある場合は、コメントアウト(先頭に#を追加)する方法でも同エラーを回避することが出来ました。TinuUmbrellaをインストールするとこの1行が追記され、そのままだとAppleではなく、Cydiaサーバーに向いてしまうためこのエラーが出てしまいます。なお、編集するにはroot権限が必要になり、ターミナル上からviエディタを使用しました。不安な方はバックアップコピーしてから編集した方がいいと思います。

アップデート完了後は念のためコメントアウトを外して元に戻しました。

続きを読む [UPDATE1]iOSアップデート時のエラー1013について

[UPDATE4]iOS4.2.1の仮脱獄(tethered jailbreak)てどんなもの?

Appleから待望のiOS4.2.1がリリースされ、ほぼ同時にDev-Teamからはredsn0w 0.9.6b4の脱獄ツールがリリースされました。iPod touch 3GをiOS4.2.1にアップデートして、仮脱獄(tethered JailBreak)を試してみました。

注意喚起情報
JailBreakされたiPhone/iPad/iPod touchはメーカー保証対象外となるため動作不良や故障に陥ってもサポートを受けることができません。万一の際には保証期間内であっても有償となってしまいます。また、JailBreakはアップル社のセキュアな環境を無効化することになるため、外部からの侵入によってウィルスに感染し動作が不安定になったり、個人情報等が流出してしまう可能性(危険)を伴うものです。これらのリスクを理解出来ない、または自ら当該リスクに対処することができない場合はJailBreakしないようにしてください。

JailBreakとその危険性についてはこちらのサイトで詳細に説明されていますので是非確認してください。
をぢの日記【iPhone_JB】Jailbreakによるリスクと問題について

仮脱獄(tethered JailBreak)は、完全に脱獄した状態ではないために、その状態と区別され、リブートするたびに母艦側のredsn0wの助けを借りてカスタムブートローダーをiPod touchのメモリにアップロードする必要があることから「紐付き(tethered)」という意味でそう呼ばれています。iPod touch 3GとiPhone4、iPad WIFI+3G(US版)で確認していますが、未確認ですがおそらくiPod touch 4G、iPhone4も同様のはずです。

実は、今回は、前回のiPod touch 3GやiPhone3GSの新ROMであった「仮脱獄」とは異なります。前回の仮脱獄はリブートまたは電源オフの状態から起動するとスクリーン上にiTunesのアイコンとUSBケーブルが表示され、母艦からexploitを送り込むまでは起動自体ができない状態でした。今回はリブートまたは電源オフからでも母艦なしに正常に起動しますが、非JailBreak状態となります。JailBreak状態にするために母艦に接続してredsn0wを使う必要があります。そのため仮脱獄であることには変わりありません。

ただし、不意にリブートしたり、させてしまっても非JailBreak状態にて起動させることができるので、前回の仮脱獄とは精神的な負担がずいぶんと違う気がします。前回と同じ「仮脱獄」という言葉が適当ではないような気がしますが、それらしい単語が思い浮かばないので、とりあえず「仮脱獄」と呼ぶことにします。
参考:仮脱獄ってなんぞ? iPod touch第3世代編【動画あり】

—2010年11月24日追記—
Dev-Team BlogにUpdate #2として追記された箇所が非常に重要なので注意してください。つまり、起動時の重要なプログラム(SpringBoadやCommCenter等)をフックするようなTweaksをインストールした場合に、非JB環境ではそれらが正しく動作せず起動できない(りんごループ)可能性があります。 もちろん母艦側からredsn0wで”Just boot tethered right now”すれば起動するようですが。明確に影響のないアプリやtweaksを見分けられるユーザにとっては回避できる事象ですが、そうでないユーザは注意が必要です。

—2010年11月25日追記—
SBSettingsをインストールした状態でリブートし非JB環境での起動を試みましたが、MobileSubstrate.dylibやCydiaSubstrate.framework以下のファイルがロード出来ずに起動できませんでした(りんごマークの状態)。この状態から起動するには母艦からのアシストが必要になります。

—2010年11月27日追記—
tethered jailbreakのiPhone/iPod touchを再起動すると非JB状態になりJBアプリやtweakは動作しませんが、母艦からDiskAidなどのファイルエクスプローラ系アプリで全root領域を確認する(読み書き可)ことが可能でした。OpenSSHはさすがに立ち上がってないのでアクセスできませんでした。

MobileSubstrate系のアプリやtweakを入れていると再起動してもりんごマークの状態でうんともすんとも言わない状態になりますが、この状態では母艦からのアクセス(DiskAid、OpenSSH)もできませんでした。

準備するもの
・iOS4.2.1にアップデートしたiPod touch 3G、iPhone4
・redsn0w 0.9.6b4
・iPod3,1_4.2.1_8C148_Restore.ipsw、iPhone3,1_4.2.1_8C148_Restore.ipsw

JailBreak手順
iPod touch 3Gを母艦に接続し、redsn0wを起動します。

“Browse”ボタンをクリックして、”iPod3,1_4.2.1_8C148_Restore.ipsw”を読み込みます。redsn0wが正しいfirmwareかどうかを確認し、問題なければ”IPSW successfully identified.”と表示しますので、”Next>”ボタンをクリックします。

iPod touch 3Gに送り込むJailBreakデータを作っています。

初回にJailBreakする場合は、”Install Cydia”をチェックし、バッテリー残量を%表示させたい場合は”Enable battery percentage”にもチェックして、”Next>”ボタンをクリックします。 iPhone4、iPadは標準で表示可能なため”Enable battery percentage”の項目はありません。

iPod touch 3GをDFUモードにしてJailBreakに必要なexploitを送り込むための準備をします。iPod touch 3Gを母艦に接続した状態で電源をオフにします。”Next>”をクリックすると、DFUモードにするためのインストラクションが開始しますので、次からの手順を覚えてから先に進んだほうがスムーズに成功できると思います。

電源ボタンを3秒間押し、電源ボタンはそのまま押し続けホームボタンも同時に10秒間押します。そして電源ボタンから手を離します。インストラクションでは15秒ですが、自動的にその先に進めばホームボタンからも手を離して大丈夫です。あとは、iPod touch側の作業のみのため”Finish”ボタンを押しても問題ありません。

DFUモードに入れなかった場合は次のようなメッセージが出て、もう一度やり直すことができます。

JailBreakのためのプログラムをiPod touch 3Gに送り込んだ後のiPod touch 3Gの様子です。

初回のJailBreak作業が完了するとホームスクリーンにCydiaのアイコンが表示されますが、タップしても反応しません。もう一度、redsn0wで、今度は”Just boot tethered right now”を選択して、DFUモードからexploitを送り込む必要があります(最後の画面のインストラクションのとおり)。

無事完了すると以下のとおりCydiaのアイコンが正しく表示され、Cydiaにアクセスすることができるようになります。

JailBreak状態からリブートすると非JailBreak状態となり、その後、redsn0wを使ってJailBreak状態に戻すところの動画です。

iPad WIFI+3G(US版)のJailBreakもiPod touchやiPhoneと同様です。CydiaがiPad用にカスタマイズされていましたので何枚かスクリーンショットをご紹介します。

1回目のredsn0wではCydiaアイコンは白い状態

2回目のredsn0wで”Just boot tethered right now”を実行すると完了

最初のCydiaアイコンをタップするとfilesystemをイニシャライズして終了

次のCydia実行でユーザレベルを選択。選択ウィンドウがiPad専用のUIに変更されている

US版ユーザお待ちかねの例のもの

続きを読む [UPDATE4]iOS4.2.1の仮脱獄(tethered jailbreak)てどんなもの?

[UPDATE2]多看 (Duokan) が Kindle3に魔法をかける

多看といわれるKindle2/3で動作する中国語OSを試してみました。名前だけは以前から知っていたのですが単純にKindle3を中国語化するハックという程度の認識しかありませんでしたが、実際使用してみるととにかくすごい機能が盛りだくさんでした。チャイナパワーはスゴイですね。

多看(Duokan) for Kindle3 のホーム画面

読み方はわかりませんが、英語では”Duokan”なので、「ドゥオカン」と発音するのでしょうか。サイトが中国語のために機能や不具合、アップデート内容、豊富な機能を理解するのなかなか難しいですが、英語に翻訳してくれているサイトもあるのでそちらを参考にできます。インストールは簡単にできますがアップデータを使ったハックのため、不具合が生じて文鎮化する可能性もありますので興味のある方は下記のサイトを参考にして自己責任で試してみてください。

このハックはNiLuJe氏らの実績あるハックと異なり環境構築や文鎮化防止対策の程度がはっきりしません。いまのところアンインストーラーも実装されていないようでリスクは高いです(起動ログの下に追記)。シリアル接続環境がない方、あるいはusbNetworkハックでコマンドラインから修正することができない方は自重された方がよいと思います。

オフィシャルサイト:http://www.duokan.com
英語の翻訳サイト:Duokan is now available with an english GUI
英語のFAQ:Duokan FAQ

メニューは英語表記に変更が可能ですから、英語に変更します。驚いた機能は表示可能なフォーマットにEPUB、DOC形式が追加されていたこと。実際に試してみましたが、画像データがややポジションがズレる場所もありますが、内容を確認する程度なら全く問題ありませんでした。フォントサイズはもちろん、濃さも調節可能です。中国語なら読み上げも可能です。日本語TTSを入れてしまえば日本語での読み上げも可能なのかもしれません。

もうひとつ。PDFファイルの余白トリミングが可能なことです。電子書籍への関心の高まりから、書籍を裁断してスキャンして電子ブックリーダーに取り込む、いわゆる「自炊」する方が増えているようですが、Kindle3で表示させる場合は、原稿の余白のトリミングが課題だったりします。

キーボードの”Aa”を押した際のメニュー

ターゲットマークを左上→右下の順番で決定してトリミングできる

インストールするとノーマルのKindleとのデュアルブートが可能になります。中国語でとっつきにくいのですがこれはアツイですね。スクリーンセーバーやフォントの変更も可能なようですし、いろいろといじりがいありそうです。参考までに本体をリブートしてから多看を起動した際のログは以下のとおりです。

—-begin—-
Welcome to Kindle!
kindle login: root
Password:
#################################################
# N O T I C E * N O T I C E * N O T I C E #
#################################################
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
#################################################
[root@kindle root]# reboot
WARNING: could not determine runlevel – doing soft reboot
(it’s better to use shutdown instead of reboot from the command line)
Broadcast message from root (ttymxc/0) (Wed Nov 10 10:54:17 2010):
The system is going down for reboot NOW!
Broadcast message from root (ttymxc/0) (Wed Nov 10 10:54:17 2010):
The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
INIT: Sending processes the KILL signasystem: I K04framework:def:stopping booklet framework
system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
system: I K06browserd:def:Stopping Browser Daemon
system: I K10cron:def:stopping crond
start-stop-daemon: lseek: Invalid argument
Stopping lipc-daemon: system: I K10tmd:def:Stopping Transfer Manager Daemon
system: I K15audio:def:stopping audio server
system: I K17ttsd:def:stopping TTS daemon
system: I K19userstore:def:Found BOOTUP flag file
system: I K20volumd:def:stopping Volume daemon
system: I K25phd:def:Stopping Phone-Home Daemon
system: I K30cmd:def:stopping CMD daemon
system: I K30wifid:def:stopping wifid
Stopping Power Management Daemon: stopped /usr/bin/wpa_supplicant (pid 10926)
system: W wpa_supplicant:def:wpa supplicant stopped
system: I wifi:def:WiFi Device mac = 28:EF:01:44:C9:C4
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
..unloading all
system: I wifi:def:loadAR6000 finished, args=(unloadall)
system: I K76mcsd:def:stopping MCS server
Stopping Process Monitoring Daemon: system: I K85dbus:def:stopping system message bus
system: I K90video:def:stopping eInk HAL lifeguard
system: I K98sdtime_stop:sdtime:time=6970:shutdown time in milliseconds
system: I K99syslog-ng:def:stopping syslog-ng
system: I mntroot:def:Making root filesystem read-only
system: I tinyrot:def::Rotating file /var/log/messages with max size 256
system: I loginfo:devhw:boardID=SP1B:Shasta PVT device – rev 1
system: I loginfo:devhwphy::USB PHY built by unknown
system: I loginfo:devsworig::Original System Software Version: 111-shasta0.7-053672
Sun Oct 10 13:48:23 PDT 2010
system: I loginfo:devswota::OTA Kindle 3.0.3 (~~otaVersion~~)
lipc-get-prop[12130]: E lipc:con::Connection error(Failed to connect to socket /var/run/dbus/system_bus_socket: Co)
lipc-get-prop[12130]: C def:dbusi::Failed to init dbus
lipc-get-prop[12130]: E def:open::Failed to open LIPC
com.lab126.wan failed to open lipc for localTimeOffset event
system: E loginfo:ltofailunknowerror:cannot retrieve local time offset – unknown error
/usr/sbin/tinyrot : Signaling syslog
killall: syslog-ng: no process killed
system: W tinyrot:def:Failed to HUP syslog
killall: syslog-ng: no process killed
/usr/sbin/tinyrot : Calculating total size /var/local/log/messages_*.gz
/usr/sbin/tinyrot : Total size of /var/local/log/messages_*.gz is 148kb
Rebooting in 1 second…
Restarting system.
EXT3-fs error (device mmcblk0p1): ext3_find_entry: reading directory #12184 offset 0
EXT3-fs error (device mmcblk0p1): ext3_find_entry: reading directory #12184 offset 1
U-Boot 1.3.0-rc3-lab126 (Jul 31 2010 – 01:08:40)
CPU: Freescale i.MX35 at 532 MHz
Board: MX35 Luigi [ POR]
WDOG_WCR = 0xff31
WDOG_WMCR = 0x0
Board Id: SP1B000000000000
S/N: B008XXXXXXXXXXXX
DRAM: 256 MB
Using default environment
In: serial
Out: serial
Err: serial
No ethernet found.
i.MX35 CPU board version 2.0
Net: No ethernet found.
Hit any key to stop autoboot: 0
## Booting image at 87f40400 …
Image Name: Linux-2.6.26-rt-lab126
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2150840 Bytes = 2.1 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
Starting kernel …
Uncompressing Linux……………………………………………………………………………………
boot: W def:rbt:reset=watchdog:
2.6.26-rt-lab126 #5 Sun Oct 10 13:46:42 PDT 2010 armv6l
INFO:Using default keypad setting. (not passing “kb_rev” to module)
INFO:Loaded module /lib/modules/mxc_keyb.ko (22508 bytes)
Press [ENTER] for recovery menu… 0 /INFO:Partition table verified for /dev/mmcblk0
INFO:Checking for updates… (auto-pilot mode)
/dev/mmcblk0p4:
CHS=4/16/101575 size=3328409600 bytes
flag type first last lba first lba size
Partition p1:
0x00 0x0b 16 16 6500784
CHS: 0/1/1 –

Partition p2:
Partition p3:
Partition p4:
INFO:Setup loop device /dev/loop0 for /dev/mmcblk0p4 + 8192
INFO:No update*.bin found; no update needed.
INFO:no updates found.
BOOTING DEFAULT.
argc == 9
argv[0]: “kinit”
argv[1]: “console=ttymxc0,115200”
argv[2]: “mem=256M”
argv[3]: “panic=10”
argv[4]: “root=/dev/mmcblk0p1”
argv[5]: “ro”
argv[6]: “ip=none”
argv[7]: “quiet”
argv[8]: “lpj=2555904”
Running ipconfig
argc == 4
argv[0]: “IP-Config”
argv[1]: “-i”
argv[2]: “Linux kinit”
argv[3]: “ip=none”
IP-Config: no devices to configure
kinit: do_mounts
kinit: name_to_dev_t(/dev/mmcblk0p1) = dev(179,1)
kinit: root_dev = dev(179,1)
kinit: /dev/root appears to be a ext3 filesystem
kinit: trying to mount /dev/root on /root with type ext3
kinit: Mounted root (ext3 filesystem) readonly.
Checking for init: /sbin/init
Checking for init: /bin/init
Checking for init: /etc/init
Checking for init: /sbin/init.sysvinit
INIT: version 2.86 booting
system: I rcS:def:starting /etc/rcS.d/S02kdb
system: I S02kdb:def:Setting boot device to mmcblk0
kdb set: ‘system/driver/filesystem/DEV_ROOT’
system: I rcS:def:starting /etc/rcS.d/S03udev
system: I S03udev:def:setting up virtual fs for hotplug event handling
system: I S03udev:def:starting the hotplug events dispatcher
system: I S03udev:def:synthesizing initial hotplug events
lipc-send-event[380]: E lipc:con::Connection error(Failed to connect to socket /var/run/dbus/system_bus_socket: No)
lipc-send-event[380]: C def:dbusi::Failed to init dbus
lipc-send-event[380]: E def:open::Failed to open LIPC
lipc-send-event[380]: E def:fail:source=com.lab126.hal, event=usbPlugIn:Sending event failed
lipc-send-event[481]: E lipc:con::Connection error(Failed to connect to socket /var/run/dbus/system_bus_socket: No)
lipc-send-event[481]: C def:dbusi::Failed to init dbus
lipc-send-event[481]: E def:open::Failed to open LIPC
lipc-send-event[481]: E def:fail:source=com.lab126.hal, event=audioHS:Sending event failed
system: I rcS:def:starting /etc/rcS.d/S04rootfsresize
system: I S04rootfsresize:def:No rootfs on /dev/mmcblk0p1 resizing needed
system: I rcS:def:starting /etc/rcS.d/S10filesystems
system: I rcS:def:starting /etc/rcS.d/S10hostname
system: I rcS:def:starting /etc/rcS.d/S10network
system: I S10hostname:def:setting device hostname
system: I S10filesystems:def:mounting filesystems
system: I S10network:def:initializing network configuration
system: I S10network:def:Installed Firewall
system: I rcS:def:starting /etc/rcS.d/S11chpriority
system: I rcS:def:starting /etc/rcS.d/S11video
Unknown HZ value! (76) Assume 100.
system: W S11chpriority:def:Cannot set priority for IRQ-7
system: I S11video:def:initializing eInk HAL for system use
system: I S11video:def:eink_debug=0
system: I S11video:def:Controller set to broads
system: I rcS:def:starting /etc/rcS.d/S20syslog-ng
system: I S20syslog-ng:def:starting syslog-ng
system: I rcS:def:starting /etc/rcS.d/S21init_time
system: I S21init_time:initboot:time=17220:boot time after init in milliseconds
system: I rcS:def:starting /etc/rcS.d/S45modules
system: I S45modules:def:loading module mwan
system: I S45modules:def:loading module g_file_storage
system: I S45modules:def:loading module fuse
system: I S45modules:def:loading module uinput
system: I S45modules:def:loading module mxc_keyb
system: I S45modules:def:loading module fiveway
system: I S45modules:def:loading module volume
system: I rcS:def:starting /etc/rcS.d/S50system
mount: mount point /proc/bus/usb does not exist
system: I rcS:def:starting /etc/rcS.d/S55scroll
system: I S55scroll:def:skipping; no luigi-based work to do here
system: I rcS:def:starting /etc/rcS.d/S70ethernet
system: I rcS:def:starting /etc/rcS.d/S70userstore
system: I S70ethernet:def:not enet
system: I S70ethernet:def:not usbnet
system: I S70userstore:def:Found SHUTDOWN flag file
system: I rcS:def:starting /etc/rcS.d/S79switch
Show menu
2
Run Kindle System
system: I mntroot:def:Making root filesystem writeable
mv: cannot rename ‘/etc/rc5.d/S96rundk’: No such file or directory
system: I mntroot:def:Making root filesystem read-only
Run Prog
Press a Key . Key Code : 16 .
Run DK program
system: I mntroot:def:Making root filesystem writeable
system: I mntroot:def:Making root filesystem read-only
system: I rcS:def:starting /etc/rcS.d/S90video
system: I S90video:def:initializing eInk HAL for rootfs use
INIT: Entering runlevel: 2
system: I lifeguard:def:starting eInk HAL lifeguard
system: I S40diags:def:not starting Diagnostic Services
system: I S40diags:def:/mnt/base-us/ENABLE_DIAGS does not exist, forcing diagnostic disable
system: I S50battcheck:def:running
Wed Nov 10 10:55:48 2010 INFO:battery voltage: 4127 mV
Wed Nov 10 10:55:48 2010 INFO:battery charge: 97%
system: I S50battcheck:def:current voltage = 4127mV
Wed Nov 10 10:55:48 2010 INFO:battery charge: 97%
Wed Nov 10 10:55:48 2010 INFO:battery voltage: 4127 mV
Wed Nov 10 10:55:48 2010 INFO:battery current: -113 mA
system: I S50battcheck:def:gasgauge capacity=97% volts=4127 mV current=-113 mA
system: I S50battcheck:def:Waiting for 3460mV or 4%
system: I S50battcheck:def:battery sufficient, booting to normal runlevel
INIT: Switching to runlevel: 5
INIT: Sending processes the TERM signal
system: I wifi:def:WiFi Device mac = 28:EF:01:44:C9:C4
Platform set to SHASTA_NATIVEMMC-SDIO
Platform Setup Script is: /opt/ar6k/host/support/platformscripts/plat_SHASTA_NATIVEMMC-SDIO.sh
Image path: /sbin
No debug record limit set
Load Board Data from /opt/ar6k/target/AR6002/hw2.0/bin/lab126_15dBm_nodiv_WWR_CTL.bin
Updating MAC address
BMI Set App Start (address: 0x913950)
BMI Bit-Wise (OR) modify Register (address: 0x500410, orig:0x8, new: 0x9, mask:0x1)
BMI Write compressed Memory (address: 0x502070, filename: /opt/ar6k/target/AR6002/hw2.0/bin/athwlan.bin.z77)
BMI Write Memory (address: 0x52d6d0, filename: /opt/ar6k/target/AR6002/hw2.0/bin/data.patch.hw2_0.bin)
BMI Write Memory (address: 0x500418, value: 0x52d6d0)
BMI Done
system: I wifi:def:loadAR6000 finished, args=()
system: I wpa_supplicant:def:wpa supplicant started
system: I S30network:def:initializing network configuration
system: I S30network:def:Installed Firewall
system: I S60dbus:def:starting system message bus
Starting Process Monitoring Daemon: Retrieved 127 keys for system/daemon/pmond/
Starting Power Management Daemon: system: I S70cmd:def:starting CMD daemon
system: I S70wifid:def:starting wifid
system: I S75phd:def:Starting Phone-Home Daemon
system: I S76mcsd:def:starting MCS server
system: I S80volumd:def:starting Volume daemon
system: I S85audio:def:initializing audio driver defaults
No state is present for card mx35luigi
system: I S85audio:def:starting audio server
system: I S87ttsd:def:starting TTS daemon
Battery Level: 97%
Wed Nov 10 10:55:59 2010 INFO:battery charge: 97%
system: I S90tmd:def:Starting Transfer Manager Daemon
system: I S90cron:def:starting crond
Starting lipc-daemon: wlan0 (WE) : Wireless Event too big (33)
system: I S94browserd:def:Starting Browser Daemon
system: I S95framework:def:starting booklet framework
Update DK
cp: cannot remove ‘/etc/init.d/usb_switch’: Read-only file system
system: I S95framework:def:logging reset type: soft
Run DK
Run DK
rm: cannot remove ‘/dev/viewinfodat1.txt’: No such file or directory
rm: cannot remove ‘/dev/viewinfodat.txt’: No such file or directory
do while /DK_System/ebook
killall: ebook: no process killed
start.sh: starting framework
1
system: I S96boot_finished:def:Boot finished script running
system: I S96boot_finished:symboot:time=46620:boot time before framework starts, in milliseconds
system: I mntroot:def:Making root filesystem writeable
system: I S99usbnet:def:usbnet is disabled
system: I mntroot:def:Making root filesystem read-only
DebugOff
switch usb state
use usb as storage
system: I mntroot:def:Making root filesystem read-only
sh: 0: unknown operand
Welcome to Kindle!
kindle login: system: I framework:def:stopping booklet framework
system: I start.sh:stop:signal=15,exitval=143:CVM stopped using SIGTERM
/mnt/base-us/DK_System/system/key/keymap.k
rm: cannot remove ‘/mnt/base-us/DK_Mbp/download.dat’: No such file or directory
REGISTER ????ニエ??
REGISTER ???????
Play thread running…
he chen prepare to out
Synth thread begin wait…
sh: syntax error: “(” unexpected
program: No such file or directory
program: No such file or directory
rm: cannot remove ‘/dev/activeevent’: No such file or directory
rm: cannot remove ‘/dev/usbevent’: No such file or directory
—-end—-

アンインストール方法について
中国語サイトが理解出来ないため、英語FAQでアンインストール方法を確認しますと、USBストレージにある”DK_System”、”DK_Documents”、”DK_Pictures”を削除してKindleをリブートするだけとあります。しかし、インストーラーを見ると、”/etc/rcS.d”、”/etc/rc5.d/”以下に起動スクリプトを追加していますので、クリーン・アンインストールするには、これらのディレクトリにある”S79switch”、”s96rundk”、”rundk.sh”、”S95dkupdate”も削除しなければなりません。これはシリアル接続環境、またはJailBreakしてusbNetworkハックを使うしかありません。

これらの起動スクリプトの中身をすべて確認したわけではありませんが、USBストレージにあるDuokan関連ディレクトリ以下のファイルだけを参照しているようですから、実質的にはこれらのスクリプトが残ってしまっても、関連ファイルが削除されていますのでKindle起動時には呼ばれても空回りするだけのため、問題が起こることはまずないと思います。もちろん、Kindle Software Versionのアップデート等で構成が変更になると影響が出る可能性は十分考えられますが。

動作環境
Kindle3 WIFI Software Version 3.0.3
Jailbreak Version 0.4 by NiLuJe
Duokan for Kindle3 Version 0.5.13.6613 (2010/11/06)

続きを読む [UPDATE2]多看 (Duokan) が Kindle3に魔法をかける