2010年6月29日火曜日

いろいろな設定をsave,復帰するオリジナルaptbkupのようなスクリプトを作った。

手動backup/restoreは、いろいろ面倒なので、aptBackUpでも使っているiTuneのbackupで保存されるdirectoryに
簡単なshell scriptを作成した。

/private/var/mobile/Library/Preferences/ に
mysavedata.shと
myrestoredata.shを作成し、データファイルとして
mysavedata.tar.gzを作成するようにした。

ただし以下の2つは外す。
- yourTubeのdownload済みデータは大きいのではずす。
- /etc/passwd /etc/master.passwd も待避しておけば、公然のpasswd: alpineを変更し忘れることによる、wormの
進入は防げる。ただし、passwd, master.passwdは、OSの版によって中身が変わる可能性があるので、従来通り
passwdコマンドにより手動変更にすることにした。

以下に、mysavedata.shの内容を示す。このコマンドは、システムpartitionをさわるのでrootになって実行する必要がある。
tarを利用しているので、directoryの保護属性も保存され、iPhone ExplorerでSpringBackのデータを保存したときにおきたようなdirectoryのgroupアクセス権がなくて、SpringBackからbackupできないという問題は発生しない。

ssh等でアクセスし、suしたあと、cd /private/var/mobile/Library/Preferences/ して、./****.sh のように
実行することを想定している。
ファイルが絶対パスで書いてあるので、将来ディレクトリ構造が変わると復元できなくなる可能性はある。
-- mysavedata.sh : ここから --
#!/bin/sh

tar cvf mysavedata.tar /var/mobile/Library/{SBSettings,SpringBack} /Library/Themes/Date\ \&\ Time\ 24h* /System/Library/Carrier\ Bundles/ATT_US.bundle /etc/profile

gzip mysavedata.tar

echo mysavedata.tar.gz is created.
-- ここまで --

以下に、myrestoredata.shの内容を示す。
-- myrestoredata.sh: ここから --
#!/bin/sh

echo restoreing from mysavedata.tar.gz
mv /System/Library/Carrier\ Bundles/ATT_US.bundle /System/Library/Carrier\ Bundles/ATT_US.bundle.org

gzcat mysavedata.tar.gz | tar xvf -

echo modifying UISounds...
cd /System/Library/Audio/UISounds
mv photoshutter.caf photoshutterOFF.caf
mv begin_record.caf begin_recordOFF.caf
mv end_record.caf end_recordOFF.caf
mv begin_video_record.caf begin_video_recordOFF.caf
mv end_video_record.caf end_video_recordOFF.caf


echo change passwd of mobile and root.

YTdir=/var/mobile/Media/Downloads/YourTube

if [-d $YTdir ]
then
 chmod g+w $YTdir/*
else
 mkdir $YTdir
fi

chmod g+w $YTdir

-- ここまで ---
blog comments powered by Disqus