upload android base code part6
This commit is contained in:
parent
421e214c7d
commit
4e516ec6ed
35396 changed files with 9188716 additions and 0 deletions
78
android/system/vold/PrivateVolume.h
Normal file
78
android/system/vold/PrivateVolume.h
Normal file
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_VOLD_PRIVATE_VOLUME_H
|
||||
#define ANDROID_VOLD_PRIVATE_VOLUME_H
|
||||
|
||||
#include "VolumeBase.h"
|
||||
|
||||
#include <cutils/multiuser.h>
|
||||
|
||||
namespace android {
|
||||
namespace vold {
|
||||
|
||||
/*
|
||||
* Private storage provided by an encrypted partition.
|
||||
*
|
||||
* Given a raw block device, it knows how to wrap it in dm-crypt and
|
||||
* format as ext4/f2fs. EmulatedVolume can be stacked above it.
|
||||
*
|
||||
* This volume is designed to behave much like the internal /data
|
||||
* partition, both in layout and function. For example, apps and
|
||||
* private app data can be safely stored on this volume because the
|
||||
* keys are tightly tied to this device.
|
||||
*/
|
||||
class PrivateVolume : public VolumeBase {
|
||||
public:
|
||||
PrivateVolume(dev_t device, const std::string& keyRaw);
|
||||
virtual ~PrivateVolume();
|
||||
|
||||
protected:
|
||||
status_t doCreate() override;
|
||||
status_t doDestroy() override;
|
||||
status_t doMount() override;
|
||||
status_t doUnmount() override;
|
||||
status_t doFormat(const std::string& fsType) override;
|
||||
|
||||
status_t readMetadata();
|
||||
|
||||
private:
|
||||
/* Kernel device of raw, encrypted partition */
|
||||
dev_t mRawDevice;
|
||||
/* Path to raw, encrypted block device */
|
||||
std::string mRawDevPath;
|
||||
/* Path to decrypted block device */
|
||||
std::string mDmDevPath;
|
||||
/* Path where decrypted device is mounted */
|
||||
std::string mPath;
|
||||
|
||||
/* Encryption key as raw bytes */
|
||||
std::string mKeyRaw;
|
||||
|
||||
/* Filesystem type */
|
||||
std::string mFsType;
|
||||
/* Filesystem UUID */
|
||||
std::string mFsUuid;
|
||||
/* User-visible filesystem label */
|
||||
std::string mFsLabel;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(PrivateVolume);
|
||||
};
|
||||
|
||||
} // namespace vold
|
||||
} // namespace android
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue