xref: /aosp_15_r20/frameworks/base/tests/backup/test_backup.sh (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
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