| /* |
| * Copyright (C) 2017 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. |
| */ |
| |
| package android.os; |
| |
| import android.os.incremental.IncrementalFileSystemControlParcel; |
| import android.os.IVoldListener; |
| import android.os.IVoldMountCallback; |
| import android.os.IVoldTaskListener; |
| |
| /** {@hide} */ |
| @SensitiveData |
| interface IVold { |
| void setListener(IVoldListener listener); |
| |
| void abortFuse(); |
| void monitor(); |
| void reset(); |
| void shutdown(); |
| |
| void onUserAdded(int userId, int userSerial, int sharesStorageWithUserId); |
| void onUserRemoved(int userId); |
| void onUserStarted(int userId); |
| void onUserStopped(int userId); |
| |
| void addAppIds(in @utf8InCpp String[] packageNames, in int[] appIds); |
| void addSandboxIds(in int[] appIds, in @utf8InCpp String[] sandboxIds); |
| |
| void onSecureKeyguardStateChanged(boolean isShowing); |
| |
| void partition(@utf8InCpp String diskId, int partitionType, int ratio); |
| void forgetPartition(@utf8InCpp String partGuid, @utf8InCpp String fsUuid); |
| |
| void mount(@utf8InCpp String volId, int mountFlags, int mountUserId, |
| @nullable IVoldMountCallback callback); |
| void unmount(@utf8InCpp String volId); |
| void format(@utf8InCpp String volId, @utf8InCpp String fsType); |
| void benchmark(@utf8InCpp String volId, IVoldTaskListener listener); |
| |
| void moveStorage(@utf8InCpp String fromVolId, @utf8InCpp String toVolId, |
| IVoldTaskListener listener); |
| |
| void remountUid(int uid, int remountMode); |
| void remountAppStorageDirs(int uid, int pid, in @utf8InCpp String[] packageNames); |
| void unmountAppStorageDirs(int uid, int pid, in @utf8InCpp String[] packageNames); |
| |
| void setupAppDir(@utf8InCpp String path, int appUid); |
| void fixupAppDir(@utf8InCpp String path, int appUid); |
| void ensureAppDirsCreated(in @utf8InCpp String[] paths, int appUid); |
| |
| @utf8InCpp String createObb(@utf8InCpp String sourcePath, int ownerGid); |
| void destroyObb(@utf8InCpp String volId); |
| |
| void fstrim(int fstrimFlags, IVoldTaskListener listener); |
| void runIdleMaint(boolean needGC, IVoldTaskListener listener); |
| void abortIdleMaint(IVoldTaskListener listener); |
| // Returns the amount of storage lifetime used, as a percentage. |
| // (eg, 10 indicates 10% of lifetime used), or -1 on failure. |
| int getStorageLifeTime(); |
| void setGCUrgentPace(int neededSegments, int minSegmentThreshold, |
| float dirtyReclaimRate, float reclaimWeight, |
| int gcPeriod, int minGCSleepTime, |
| int targetDirtyRatio); |
| void refreshLatestWrite(); |
| int getWriteAmount(); |
| |
| FileDescriptor mountAppFuse(int uid, int mountId); |
| void unmountAppFuse(int uid, int mountId); |
| |
| void fbeEnable(); |
| |
| void initUser0(); |
| void mountFstab(@utf8InCpp String blkDevice, @utf8InCpp String mountPoint, boolean isZoned, in @utf8InCpp String[] userDevices); |
| void encryptFstab(@utf8InCpp String blkDevice, @utf8InCpp String mountPoint, boolean shouldFormat, @utf8InCpp String fsType, boolean isZoned, in @utf8InCpp String[] userDevices, in boolean[] deviceAliased, long length); |
| |
| void setStorageBindingSeed(in byte[] seed); |
| |
| void createUserStorageKeys(int userId, boolean ephemeral); |
| void destroyUserStorageKeys(int userId); |
| |
| void setCeStorageProtection(int userId, in byte[] secret); |
| |
| int[] getUnlockedUsers(); |
| void unlockCeStorage(int userId, in byte[] secret); |
| void lockCeStorage(int userId); |
| |
| void prepareUserStorage(@nullable @utf8InCpp String uuid, int userId, int storageFlags); |
| void destroyUserStorage(@nullable @utf8InCpp String uuid, int userId, int storageFlags); |
| |
| void prepareSandboxForApp(in @utf8InCpp String packageName, int appId, |
| in @utf8InCpp String sandboxId, int userId); |
| void destroySandboxForApp(in @utf8InCpp String packageName, |
| in @utf8InCpp String sandboxId, int userId); |
| |
| void startCheckpoint(int retry); |
| boolean needsCheckpoint(); |
| boolean needsRollback(); |
| boolean isCheckpointing(); |
| void abortChanges(in @utf8InCpp String device, boolean retry); |
| void commitChanges(); |
| void prepareCheckpoint(); |
| void restoreCheckpoint(@utf8InCpp String device); |
| void restoreCheckpointPart(@utf8InCpp String device, int count); |
| void markBootAttempt(); |
| boolean supportsCheckpoint(); |
| boolean supportsBlockCheckpoint(); |
| boolean supportsFileCheckpoint(); |
| void resetCheckpoint(); |
| |
| void earlyBootEnded(); |
| @utf8InCpp String createStubVolume(@utf8InCpp String sourcePath, |
| @utf8InCpp String mountPath, @utf8InCpp String fsType, |
| @utf8InCpp String fsUuid, @utf8InCpp String fsLabel, int flags); |
| void destroyStubVolume(@utf8InCpp String volId); |
| |
| FileDescriptor openAppFuseFile(int uid, int mountId, int fileId, int flags); |
| |
| boolean incFsEnabled(); |
| IncrementalFileSystemControlParcel mountIncFs(@utf8InCpp String backingPath, @utf8InCpp String targetDir, int flags, @utf8InCpp String sysfsName); |
| void unmountIncFs(@utf8InCpp String dir); |
| void setIncFsMountOptions(in IncrementalFileSystemControlParcel control, boolean enableReadLogs, boolean enableReadTimeouts, @utf8InCpp String sysfsName); |
| void bindMount(@utf8InCpp String sourceDir, @utf8InCpp String targetDir); |
| |
| void destroyDsuMetadataKey(@utf8InCpp String dsuSlot); |
| |
| long getStorageSize(); |
| |
| // Returns the remaining storage lifetime as a percentage, rounded up as |
| // needed when the underlying hardware reports low precision. Returns -1 |
| // on failure. |
| int getStorageRemainingLifetime(); |
| |
| const int FSTRIM_FLAG_DEEP_TRIM = 1; |
| |
| const int MOUNT_FLAG_PRIMARY = 1; |
| const int MOUNT_FLAG_VISIBLE_FOR_READ = 2; |
| const int MOUNT_FLAG_VISIBLE_FOR_WRITE = 4; |
| |
| const int PARTITION_TYPE_PUBLIC = 0; |
| const int PARTITION_TYPE_PRIVATE = 1; |
| const int PARTITION_TYPE_MIXED = 2; |
| |
| const int STORAGE_FLAG_DE = 1; |
| const int STORAGE_FLAG_CE = 2; |
| |
| const int REMOUNT_MODE_NONE = 0; |
| const int REMOUNT_MODE_DEFAULT = 1; |
| const int REMOUNT_MODE_INSTALLER = 2; |
| const int REMOUNT_MODE_PASS_THROUGH = 3; |
| const int REMOUNT_MODE_ANDROID_WRITABLE = 4; |
| |
| const int VOLUME_STATE_UNMOUNTED = 0; |
| const int VOLUME_STATE_CHECKING = 1; |
| const int VOLUME_STATE_MOUNTED = 2; |
| const int VOLUME_STATE_MOUNTED_READ_ONLY = 3; |
| const int VOLUME_STATE_FORMATTING = 4; |
| const int VOLUME_STATE_EJECTING = 5; |
| const int VOLUME_STATE_UNMOUNTABLE = 6; |
| const int VOLUME_STATE_REMOVED = 7; |
| const int VOLUME_STATE_BAD_REMOVAL = 8; |
| |
| const int VOLUME_TYPE_PUBLIC = 0; |
| const int VOLUME_TYPE_PRIVATE = 1; |
| const int VOLUME_TYPE_EMULATED = 2; |
| const int VOLUME_TYPE_ASEC = 3; |
| const int VOLUME_TYPE_OBB = 4; |
| const int VOLUME_TYPE_STUB = 5; |
| } |