1*d57664e9SAndroid Build Coastguard Worker#!/bin/bash 2*d57664e9SAndroid Build Coastguard Worker 3*d57664e9SAndroid Build Coastguard Worker# Copyright (C) 2009 The Android Open Source Project 4*d57664e9SAndroid Build Coastguard Worker# 5*d57664e9SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 6*d57664e9SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*d57664e9SAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*d57664e9SAndroid Build Coastguard Worker# 9*d57664e9SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*d57664e9SAndroid Build Coastguard Worker# 11*d57664e9SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*d57664e9SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 13*d57664e9SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*d57664e9SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*d57664e9SAndroid Build Coastguard Worker# limitations under the License. 16*d57664e9SAndroid Build Coastguard Worker 17*d57664e9SAndroid Build Coastguard Worker# uncomment for debugging 18*d57664e9SAndroid Build Coastguard Worker#export DRY_RUN="echo" 19*d57664e9SAndroid Build Coastguard Workersource test_backup_common.sh 20*d57664e9SAndroid Build Coastguard Worker 21*d57664e9SAndroid Build Coastguard Worker# figure out what packages are participating in backup 22*d57664e9SAndroid Build Coastguard Workerb_pkgs=$(a shell dumpsys backup | \ 23*d57664e9SAndroid Build Coastguard Worker ruby -e 'p_stanza = STDIN.read.match(/Participants:.*?(?=Ever)/m)[0] 24*d57664e9SAndroid Build Coastguard Worker puts p_stanza.scan(/^ (.+?)\s*$/).flatten.join(" ")') 25*d57664e9SAndroid Build Coastguard Worker 26*d57664e9SAndroid Build Coastguard Worker# wipe data for the package participating in backup 27*d57664e9SAndroid Build Coastguard Workerfor pkg in $b_pkgs; do 28*d57664e9SAndroid Build Coastguard Worker a shell bmgr wipe "$pkg" 29*d57664e9SAndroid Build Coastguard Workerdone 30*d57664e9SAndroid Build Coastguard Worker 31*d57664e9SAndroid Build Coastguard Workerecho 'Waiting 5 seconds for things to settle...' 32*d57664e9SAndroid Build Coastguard Workersleep 5 33*d57664e9SAndroid Build Coastguard Worker 34*d57664e9SAndroid Build Coastguard Worker# run adb as root so we can poke at com.android.backuptest's data 35*d57664e9SAndroid Build Coastguard Workeradb_root 36*d57664e9SAndroid Build Coastguard Worker 37*d57664e9SAndroid Build Coastguard Worker# show commands as we go 38*d57664e9SAndroid Build Coastguard Workerset -x 39*d57664e9SAndroid Build Coastguard Worker 40*d57664e9SAndroid Build Coastguard Worker# set the transport 41*d57664e9SAndroid Build Coastguard Worker#a shell bmgr transport com.google.android.backup/.BackupTransportService 42*d57664e9SAndroid Build Coastguard Worker 43*d57664e9SAndroid Build Coastguard Worker# load up the three files 44*d57664e9SAndroid Build Coastguard Workera shell \ 45*d57664e9SAndroid Build Coastguard Worker "rm /data/data/com.android.backuptest/files/file.txt ; \ 46*d57664e9SAndroid Build Coastguard Worker rm /data/data/com.android.backuptest/files/another_file.txt ; \ 47*d57664e9SAndroid Build Coastguard Worker rm /data/data/com.android.backuptest/files/empty.txt ; \ 48*d57664e9SAndroid Build Coastguard Worker mkdir /data/data/com.android.backuptest ; \ 49*d57664e9SAndroid Build Coastguard Worker mkdir /data/data/com.android.backuptest/files ; \ 50*d57664e9SAndroid Build Coastguard Worker mkdir /data/data/com.android.backuptest/shared_prefs ; \ 51*d57664e9SAndroid Build Coastguard Worker echo -n \"<map><int name=\\\"pref\\\" value=\\\"1\\\" /></map>\" \ 52*d57664e9SAndroid Build Coastguard Worker > /data/data/com.android.backuptest/shared_prefs/raw.xml ; \ 53*d57664e9SAndroid Build Coastguard Worker echo -n first file > /data/data/com.android.backuptest/files/file.txt ; \ 54*d57664e9SAndroid Build Coastguard Worker echo -n asdf > /data/data/com.android.backuptest/files/another_file.txt ; \ 55*d57664e9SAndroid Build Coastguard Worker echo -n "" > /data/data/com.android.backuptest/files/empty.txt ; \ 56*d57664e9SAndroid Build Coastguard Worker date >> /data/data/com.android.backuptest/files/3.txt ; \ 57*d57664e9SAndroid Build Coastguard Worker" 58*d57664e9SAndroid Build Coastguard Worker# echo -n 3 > /data/data/com.android.backuptest/files/3.txt ; \ 59*d57664e9SAndroid Build Coastguard Worker 60*d57664e9SAndroid Build Coastguard Worker# say that the data has changed 61*d57664e9SAndroid Build Coastguard Workera shell bmgr backup com.android.backuptest 62*d57664e9SAndroid Build Coastguard Worker 63*d57664e9SAndroid Build Coastguard Worker# run the backup 64*d57664e9SAndroid Build Coastguard Workera shell bmgr run 65*d57664e9SAndroid Build Coastguard Worker 66