1 // Copyright (C) 2024 The Android Open Source Project 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #pragma once 16 17 namespace android { 18 namespace snapshot { 19 20 constexpr char kMkExt4[] = "/system/bin/mke2fs"; 21 constexpr char kOtaMetadataFileContext[] = "u:object_r:ota_metadata_file:s0"; 22 constexpr char kOtaMetadataMount[] = "/mnt/scratch_ota_metadata_super"; 23 const size_t kOtaMetadataPartitionSize = uint64_t(1 * 1024 * 1024); 24 constexpr char kPhysicalDevice[] = "/dev/block/by-name/"; 25 26 bool IsScratchOtaMetadataOnSuper(); 27 std::string GetScratchOtaMetadataPartition(); 28 std::string MapScratchOtaMetadataPartition(const std::string& device); 29 bool CreateScratchOtaMetadataOnSuper(const ISnapshotManager::IDeviceInfo* info = nullptr); 30 bool CleanupScratchOtaMetadataIfPresent(const ISnapshotManager::IDeviceInfo* info = nullptr); 31 32 } // namespace snapshot 33 } // namespace android 34