« [Mac OS X]iTunes-LAME2.0.9test4の文字化け修正スクリプト | Main | [Mac OS X]LeopardではSafari3にてタブがらみのスクリプティングが可能に »

2007.10.27

[iPod touch]スクリプトをiPod touch (iPhone)用アプリケーションにする方法

もはや説明の必要は無いかと思いますが、ここでの話はJailbrokenな (Jailbreakでアプリケーションをインストール可能にした) iPod touch (iPhone) の存在と、それに関する知識が前提です。

iPod touch (iPhone) でも、Mac OS X同様、シェルスクリプトやその他言語のスクリプトをアプリケーションにできたのでレポートしておきます。

要諦は三つです。

  • Info.plistのCFBundleExecutableに、スクリプト名を指定する
  • スクリプトは、exitもしくはkill $$で締める
  • 実行時の$PATHは/usr/bin:/bin:/usr/sbin:/sbin

一つ目は、通常のアプリケーションで実行ファイルを指定するところでスクリプトを指定するという意味です。

二つ目は、普通に流したスクリプトだと、実行したが最後、終了できなくなってしまいます(この状態からの復帰はHomeボタンを長押しで)。
「exit」もしくは「kill $$」で自分自身をkillするとホーム画面に戻ってこれます。

三つ目。/usr/local/bin、/opt〜などにはパスは通っていないかもしれませんので注意してください。

僕はMac OS Xを使ってますので、plistの編集にはXcode付属のProperty List Editorを使ってます。

サンプルアプリケーションInstBuddy.app

サンプルを作ってみました。

「InstBuddy_0.1.zip」をダウンロード

Instbuddy_2

/var/root/Media/Installに.appをコピーしてから実行すると一発でインストールが完了するという、パッケージになってないアプリケーションをインストールする際に便利なものです。名付けてInstBuddy.app。

中身はシェルスクリプトです。BSD SubsystemとErica's Utilitiesに含まれるコマンドをスクリプト内で使っているので、それらをインストールしておく必要があります。いずれもInstaller.appからインストールできます。

InstBuddy.appのインストール

解凍して出てきたInstBuddy.appをsftp等で/Applicationsにコピーして、実行権を付けます。
iPod touch上のターミナル、もしくはssh経由で以下のコマンドを実行します。

# chmod -Rf +x /Applications

Homeボタンとスリープボタンを長押しして電源オフし、再起動するか、Erica's Utilitiesのインストールが済んでいるならば、iPod touch上のターミナル、もしくはssh経由でrestartコマンドを実行すればインストール完了。

InstBuddy.appの使い方

ホーム画面に現れたInstBuddyを実行します。

すると、「/var/root/Media/Install」というフォルダができるので、そこにインストールしたい*.appをコピーします。
なぜ「/var/root/Media」なのかといえば、iPhoneDiskでマウントできるからです。

再度、InstBuddyを実行します。

Installer.appでインストール/アンインストールを済ませた後同様、自動的にロック状態に移行するので、ロックを解除するとインストールが完了しているはずです。

あとがき

というわけで、InstBuddy.appの実用性はともかく中身を見てみてください。
core.shが実行されるスクリプトです。
Python Scriptなども実行可能かと思います。

|

« [Mac OS X]iTunes-LAME2.0.9test4の文字化け修正スクリプト | Main | [Mac OS X]LeopardではSafari3にてタブがらみのスクリプティングが可能に »