xref: /aosp_15_r20/system/core/fs_mgr/libsnapshot/scratch_super.h (revision 00c7fec1bb09f3284aad6a6f96d2f63dfc3650ad)
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