IMountService.h revision 4fbbda4cecb078bd3867f416b02cc75f5455284f
1be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root/* 2be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * Copyright (C) 2010 The Android Open Source Project 3be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * 4be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 5be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * you may not use this file except in compliance with the License. 6be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * You may obtain a copy of the License at 7be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * 8be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * http://www.apache.org/licenses/LICENSE-2.0 9be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * 10be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * Unless required by applicable law or agreed to in writing, software 11be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * distributed under the License is distributed on an "AS IS" BASIS, 12be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * See the License for the specific language governing permissions and 14be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root * limitations under the License. 15be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root */ 16be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 17be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#ifndef ANDROID_IMOUNTSERVICE_H 18be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#define ANDROID_IMOUNTSERVICE_H 19be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 20be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#include <storage/IMountServiceListener.h> 21be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#include <storage/IMountShutdownObserver.h> 22be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#include <storage/IObbActionListener.h> 23be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 244fbbda4cecb078bd3867f416b02cc75f5455284fJeff Sharkey#include <utils/String8.h> 254fbbda4cecb078bd3867f416b02cc75f5455284fJeff Sharkey 26be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#include <binder/IInterface.h> 27be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#include <binder/Parcel.h> 28be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 29be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Rootnamespace android { 30be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 31be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Rootclass IMountService: public IInterface { 32be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Rootpublic: 33be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root DECLARE_META_INTERFACE(MountService); 34be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 35be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual void registerListener(const sp<IMountServiceListener>& listener) = 0; 36be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual void 37be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root unregisterListener(const sp<IMountServiceListener>& listener) = 0; 38be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual bool isUsbMassStorageConnected() = 0; 39be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual void setUsbMassStorageEnabled(const bool enable) = 0; 40be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual bool isUsbMassStorageEnabled() = 0; 41be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t mountVolume(const String16& mountPoint) = 0; 4213c7197da8a16f77f6398708a6314c80cb01e0d1Ben Komalo virtual int32_t unmountVolume( 4313c7197da8a16f77f6398708a6314c80cb01e0d1Ben Komalo const String16& mountPoint, const bool force, const bool removeEncryption) = 0; 44be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t formatVolume(const String16& mountPoint) = 0; 45be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t 46be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root getStorageUsers(const String16& mountPoint, int32_t** users) = 0; 47be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t getVolumeState(const String16& mountPoint) = 0; 48be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t createSecureContainer(const String16& id, 49be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root const int32_t sizeMb, const String16& fstype, const String16& key, 50be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root const int32_t ownerUid) = 0; 51be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t finalizeSecureContainer(const String16& id) = 0; 52be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t destroySecureContainer(const String16& id) = 0; 53be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t mountSecureContainer(const String16& id, 54be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root const String16& key, const int32_t ownerUid) = 0; 55be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t 56be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root unmountSecureContainer(const String16& id, const bool force) = 0; 57be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual bool isSecureContainerMounted(const String16& id) = 0; 58be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t renameSecureContainer(const String16& oldId, 59be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root const String16& newId) = 0; 60be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual bool getSecureContainerPath(const String16& id, String16& path) = 0; 61be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual int32_t getSecureContainerList(const String16& id, 62be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root String16*& containers) = 0; 63be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual void shutdown(const sp<IMountShutdownObserver>& observer) = 0; 64be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual void finishMediaUpdate() = 0; 654fbbda4cecb078bd3867f416b02cc75f5455284fJeff Sharkey virtual void mountObb(const String16& rawPath, const String16& canonicalPath, 664fbbda4cecb078bd3867f416b02cc75f5455284fJeff Sharkey const String16& key, const sp<IObbActionListener>& token, 674fbbda4cecb078bd3867f416b02cc75f5455284fJeff Sharkey const int32_t nonce) = 0; 6805105f7abe02b2dff91d6260b3628c8b97816babKenny Root virtual void unmountObb(const String16& filename, const bool force, 69af9d667ccf3e24058214cf4cc0a8aa8bc5100e3cKenny Root const sp<IObbActionListener>& token, const int32_t nonce) = 0; 70be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual bool isObbMounted(const String16& filename) = 0; 71be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual bool getMountedObbPath(const String16& filename, String16& path) = 0; 725af0b916f850486cff4797355bf9e7dc3352fe00Jason parks virtual int32_t decryptStorage(const String16& password) = 0; 73d6332552761fcce700adb465ff540d30a671403cJason parks virtual int32_t encryptStorage(const String16& password) = 0; 74be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root}; 75be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 76be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root// ---------------------------------------------------------------------------- 77be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 78be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Rootclass BnMountService: public BnInterface<IMountService> { 79be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Rootpublic: 80be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root virtual status_t onTransact(uint32_t code, const Parcel& data, 81be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root Parcel* reply, uint32_t flags = 0); 82be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root}; 83be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 84be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root} 85be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root; // namespace android 86be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root 87be857d42849eaaa554d4772dbba7755f8a0f3547Kenny Root#endif // ANDROID_IMOUNTSERVICE_H 88