199e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe#!/system/bin/sh
299e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe
399e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe#
499e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# Copyright (C) 2016 The Android Open Source Project
599e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe#
699e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# Licensed under the Apache License, Version 2.0 (the "License");
799e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# you may not use this file except in compliance with the License.
899e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# You may obtain a copy of the License at
999e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe#
1099e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe#      http://www.apache.org/licenses/LICENSE-2.0
1199e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe#
1299e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# Unless required by applicable law or agreed to in writing, software
1399e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# distributed under the License is distributed on an "AS IS" BASIS,
1499e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1599e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# See the License for the specific language governing permissions and
1699e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# limitations under the License.
1799e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe#
1899e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe
1999e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe# This script will move artifacts for the currently active slot.
2099e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe
2199e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas GampeSLOT_SUFFIX=$(getprop ro.boot.slot_suffix)
2299e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampeif test -n "$SLOT_SUFFIX" ; then
2399e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe  if test -d /data/ota/$SLOT_SUFFIX/dalvik-cache ; then
2499e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe    log -p i -t otapreopt_slot "Moving A/B artifacts for slot ${SLOT_SUFFIX}."
25e7d555267725ca050ddd5e891267a61a55c9e16aAndreas Gampe    OLD_SIZE=$(du -h -s /data/dalvik-cache)
2699e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe    rm -rf /data/dalvik-cache/*
27e7d555267725ca050ddd5e891267a61a55c9e16aAndreas Gampe    NEW_SIZE=$(du -h -s /data/ota/$SLOT_SUFFIX/dalvik-cache)
2899e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe    mv /data/ota/$SLOT_SUFFIX/dalvik-cache/* /data/dalvik-cache/
2999e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe    rmdir /data/ota/$SLOT_SUFFIX/dalvik-cache
3099e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe    rmdir /data/ota/$SLOT_SUFFIX
31e7d555267725ca050ddd5e891267a61a55c9e16aAndreas Gampe    log -p i -t otapreopt_slot "Moved ${NEW_SIZE} over ${OLD_SIZE}"
3299e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe  else
3399e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe    log -p i -t otapreopt_slot "No A/B artifacts found for slot ${SLOT_SUFFIX}."
3499e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe  fi
3599e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe  exit 0
3699e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampeelse
3799e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe  log -p w -t otapreopt_slot "Slot property empty."
3899e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampe  exit 1
3999e2b263dd0df71b55e86f0aec6657eb38b334e1Andreas Gampefi
40