iPhone Tips
出典: Fukudat.com
iPhone 3Gに関する覚え書き.2008/1/28にiPod touchを買ったばかりなのでしばらく我慢してきたが, 2008/9/6にとうとうiPhone 3Gを衝動買い. さらに2009/12/20にiPhone3GSに買い替え...AppleとSoftbankに貢いでるな.
目次 |
1 Jailbreak
2 インストールしたいパッケージ
- MobileTerminal --> iOS4では動かない模様
- ターミナルエミュレータ.コマンドを打ち込みたいときに使う.
- vim
- ファイルの編集に必要.
- sudo
- ルート権限でのコマンド実行に使う.
- OpenSSH
- Network越しにログインするために必要.
- afc2add
- USB経由でファイルシステムにアクセスするためのモジュール.
- WinterBoard
- iPhone のデスクトップ(SpringBoard)をカスタマイズする.
- SBSettings
- iPhoneの設定をいじるためのアプリ.ステータスバーをスワイプすると設定パネルが現れる.
- パネルに登録するトグルスイッチいろいろ
- Autolock SBSettings: オートロックのon/off
- Lock Calendar SBSettings Toggle: Lock Calendarのon/off
-
SBankNotify(deprecated) - メールが届くと着信音とバイブレーションで知らせる.(FW3から不要)
- 5-Row QWERTY Keyboard --> 残念ながらiOS4では動かない.
- 5-Row iOS4 Keyboard --> iOS4用
- 5行キーボードが使えるようになる.
- iPhone 2.0 Toolchain
- iPhoneでgccなどコンパイラを動かすためのパッケージ.
- Lock Calendar
- ロックスクリーンに直近のカレンダーのエントリを表示してくれる.次の予定を調べるのにカレンダーを開かなくてもよくてとても便利.
- Five-Coumn SpringBoard, Five Icon Dock
- それぞれ SpringBoard と Dock に横5列のアイコンを配置する.
- network-cmds
- arp, ifconfig, netstat, route, traceroute などネットワーク操作のためのコマンド
- Core Utilities
- Shellで使う基本的なコマンド類
3 Security
- root や mobile の初期パスワードは "alpine".このままだと,アドレスがわかったらだれにでも入られてしまうから,必ずパスワードを変えておく.特にOpenSSHを使う場合は,そのインストールの前に必ず実施しておくこと.そうでないとiPhoneOS.Ikeeのようなワームにやられる.
# passwd root # passwd mobile
3.1 ssh & scpでパスワードの省略
- (もしキーがなければ)iPhoneにパスワードなしで接続するPCで,キーを生成
$ ssh-keygen -t dsa pass phraseを2回入力
- 秘密鍵 ~/.ssh/id_dsa と公開鍵 ~/.ssh/id_dsa.pub ができる.
- iPhoneに公開鍵 id_dsa.pub を転送.
$ scp ~/.ssh/id_dsa.pub root@iPod_touch_の_IP_address:/tmp
- iPhoneにsshでログインして,以下のコマンドを実行.
$ ssh -l root iPhone_のIP_address root@xxxxxx's password: ..... # mkdir /var/root/.ssh # mv /tmp/id_dsa.pub /var/root/.ssh/authorized_keys # chmod og-w /var/root # chmod og-rwx ~/.ssh ~/.ssh/authorized_keys # exit
- 重要なのは permission の設定./var/root (home) に他人が書き込めるとダメ,/var/root/.ssh以下を他人が読めるとダメなので,注意.
設定は以上.sshクライアント側でssh-agentを動かし,ssh-addでidentityを登録しておけば,パスワードなしでssh/scpできる.
3.2 syslog
syslogdは初めから常駐しているが,どこにもlogを書いていない. 万一侵入されたとき痕跡を発見しやすくするためにも,syslogをとっておきたい.
/etc/syslog.conf を以下の内容で作成する.
*.* /var/log/messages
/System/Library/LaunchDaemons/com.apple.syslogd.plist を編集して以下のようにする.
<array> <string>/usr/sbin/syslogd</string> <string>-bsd_out</string> <string>1</string> </array>
syslogdを再起動.
# /bin/launchctl unload -w /System/Library/LaunchDaemons/com.apple.syslogd.plist # /bin/launchctl load -w /System/Library/LaunchDaemons/com.apple.syslogd.plist
これで/var/log/messagesにログが出るようになったはず.
4 VNC Client
App Store で VNC Client が買える. これで出先のiPhoneから自宅のPCが自由に操作できる.
- Mocha VNC Lite (無料版)
- Mocha VNC (有料版)
無料版は,右クリックできない,Ctrl-Alt-Del が送れないなどの制限がある.
4.1 暗号化
Mocha VNC は暗号化に対応していない.自宅サーバーで暗号なしでVNCの口を開けるわけにはいかない.VPNを張るほどのこともないから,ssh でトンネルを掘ることにする.
1. トンネル掘り.iPhoneのTerminalから,自宅のLinuxマシンに向けて,
$ ssh -f -L 5901:XXXX:YYYY ZZZZ sleep 100
を実行.ただし,
- XXXX = VNCサーバーの自宅内ローカルIPアドレス
- YYYY = VNCサーバーのポート番号
- ZZZZ = 自宅マシンのグローバルIPアドレス
ここで,
- "-f" は,ssh にバックグラウンドで実行することを指示.
- "-L 5901:XXXX:YYYY" は,localhost の 5901 を,XXXX のポートYYYYとつなぐことを指示.
2. 上のsshがスリープしている(100秒間の)間に, Mocha VNC で localhost:5901 に接続.
5 Databases
次のデータベースファイルが存在する.
- /private/var/mobile/Library/AddressBook/AddressBook.sqlitedb (/AddressBookの解析参照)
- /private/var/mobile/Library/AddressBook/AddressBookImages.sqlitedb
- /private/var/mobile/Library/Caches/MapTiles/MapTiles.sqlitedb
- /private/var/mobile/Library/Calendar/Calendar.sqlitedb (/Calendarの解析参照)
- /private/var/root/Library/AddressBook/AddressBook.sqlitedb
6 アプリケーションの活用
6.1 Lotus Notesのカレンダー
- Lotus Notesのカレンダーと同期する方法 (Calendarの解析)
- この方法は,Lotes のカレンダーをXMLに出力し,それをPerlでSQLiteDBに書いて,iPhoneに転送している.
- 本来なら,iCalendar か何かを経由するのが汎用っぽくてよいのだろうが,
- 他にiCalendarのアプリを持っていない.
- Lotus NotesのカレンダーからFile->書き出しでファイルの種類にCalendar Fileを選ぶとiCalendar形式で出力できるのだが,Lotus ScriptでiCalendarを出力する方法が分からない.
- ので,とりあえずこれで満足してしまう.
