1*6dbdd20aSAndroid Build Coastguard Worker#!/bin/sh 2*6dbdd20aSAndroid Build Coastguard Worker# 3*6dbdd20aSAndroid Build Coastguard Worker# Copyright 2023 - The Android Open Source Project 4*6dbdd20aSAndroid Build Coastguard Worker# 5*6dbdd20aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 6*6dbdd20aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*6dbdd20aSAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*6dbdd20aSAndroid Build Coastguard Worker# 9*6dbdd20aSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*6dbdd20aSAndroid Build Coastguard Worker# 11*6dbdd20aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*6dbdd20aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 13*6dbdd20aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*6dbdd20aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*6dbdd20aSAndroid Build Coastguard Worker# limitations under the License. 16*6dbdd20aSAndroid Build Coastguard Worker 17*6dbdd20aSAndroid Build Coastguard Worker# Setups the device before running perfetto tests. Recovers the state after the 18*6dbdd20aSAndroid Build Coastguard Worker# tests are done. The setup and the tead-down phases are distinguished via the 19*6dbdd20aSAndroid Build Coastguard Worker# first argument: [setup|teardown]. 20*6dbdd20aSAndroid Build Coastguard Worker 21*6dbdd20aSAndroid Build Coastguard Workerif [ "$1" != setup -a "$1" != teardown ]; then 22*6dbdd20aSAndroid Build Coastguard Worker echo "Usage: $0 [setup|teardown]" 23*6dbdd20aSAndroid Build Coastguard Worker exit 1 24*6dbdd20aSAndroid Build Coastguard Workerfi 25*6dbdd20aSAndroid Build Coastguard Worker 26*6dbdd20aSAndroid Build Coastguard Worker# Only force persist.traced.enable=1 on automotive as other form factors 27*6dbdd20aSAndroid Build Coastguard Worker# might have to have traced enabled by default per the CDD. 28*6dbdd20aSAndroid Build Coastguard Workerif ! getprop ro.build.characteristics | grep -q automotive; then 29*6dbdd20aSAndroid Build Coastguard Worker exit 0 30*6dbdd20aSAndroid Build Coastguard Workerfi 31*6dbdd20aSAndroid Build Coastguard Worker 32*6dbdd20aSAndroid Build Coastguard Worker# b/285215697: Set the persist.traced.enable during the test. 33*6dbdd20aSAndroid Build Coastguard WorkerPROP=persist.traced.enable 34*6dbdd20aSAndroid Build Coastguard WorkerSAVED=/data/local/tests/persist.traced.enable.saved 35*6dbdd20aSAndroid Build Coastguard Workerif [ "$1" = setup ]; then 36*6dbdd20aSAndroid Build Coastguard Worker if [ -n "$(getprop ${PROP})" ]; then 37*6dbdd20aSAndroid Build Coastguard Worker getprop ${PROP} > ${SAVED} 38*6dbdd20aSAndroid Build Coastguard Worker fi 39*6dbdd20aSAndroid Build Coastguard Worker setprop ${PROP} "1" 40*6dbdd20aSAndroid Build Coastguard Workerelif [ "$1" = teardown ]; then 41*6dbdd20aSAndroid Build Coastguard Worker if [ -e ${SAVED} ]; then 42*6dbdd20aSAndroid Build Coastguard Worker setprop ${PROP} $(cat ${SAVED}) 43*6dbdd20aSAndroid Build Coastguard Worker rm ${SAVED} 44*6dbdd20aSAndroid Build Coastguard Worker else 45*6dbdd20aSAndroid Build Coastguard Worker setprop ${PROP} "" 46*6dbdd20aSAndroid Build Coastguard Worker fi 47*6dbdd20aSAndroid Build Coastguard Workerfi 48