2008年12月25日木曜日

Androidアプリのバックアップとリカバリ用スクリプト


せっかくの Android Dev Phone 1 なので、時々中身を入れ替えたりいろいろ触ってファクトリーリセットしたりするのも良いかも・・という気分になってきました。
そうなると、リセットの度にお気に入りのアプリを再インストールするのが面倒になりそうなので、現在Android携帯にインストールしてあるアプリのバックアップと復元用のPythonスクリプトを用意しました。

Android SDKは既にインストールしているので、下記の2ファイルを <SDKホーム>/tools フォルダに保存後、chmodで実行権限を与えておきます。(Mac/Linuxの場合)


backup.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import re

cmd = """adb shell<<EOM
su
ls /data/app
exit
exit
EOM
"""

res = os.popen(cmd).readlines()

for line in res:
if line.find('.apk') > 0:
cmd = 'adb pull /data/app/' + re.sub('^[#$ ]+', '', line.strip()) + ' .'
print cmd
os.popen(cmd)




recovery.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import re

files = os.popen('ls -l').readlines()

for file in files:
if file.find('.apk') > 0:
cmd = 'adb install ' + re.findall('^.* ([^ ]+)$', file.strip())[0]
print cmd
res = os.popen(cmd).readlines()
for line in res: print '\t'+line.strip()




後は、バックアップ用フォルダを生成&そこに移動して、 backup.py や recovery.py を叩けばバックアップ/バックアップしたアプリの自動インストールが行えます。

0 件のコメント: