/*
* Copyright (c) 2021-2026 Huawei Device Co., Ltd.
* 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.
*/
rawdata OHOS.StorageManager.StorageFileRawData;
sequenceable UserdataDirInfo..OHOS.StorageManager.UserdataDirInfo;
sequenceable PartitionParams..OHOS.StorageManager.PartitionParams;
sequenceable PartitionInfo..OHOS.StorageManager.PartitionInfo;
sequenceable PartitionTableInfo..OHOS.StorageManager.PartitionTableInfo;
sequenceable FormatParams..OHOS.StorageManager.FormatParams;
sequenceable BurnParams..OHOS.StorageManager.BurnParams;
import ../storage_manager/IUeceActivationCallback;
sequenceable StatisticInfo..OHOS.StorageManager.NextDqBlk;
sequenceable StatisticInfo..OHOS.StorageManager.DirSpaceInfo;
sequenceable StatisticInfo..OHOS.StorageManager.UidSaInfo;
sequenceable StatisticInfo..OHOS.StorageManager.AllAppVec;
sequenceable StatisticInfo..OHOS.StorageManager.LargeFileInfo;
sequenceable StatisticInfo..OHOS.StorageManager.LargeDirInfo;
interface OHOS.StorageDaemon.IStorageDaemon{
[ipccode 1] void Shutdown();
[ipccode 2] void Mount([in] String volId, [in] unsigned int flags);
[ipccode 3] void UMount([in] String volId);
[ipccode 4] void Check([in] String volId);
[ipccode 5] void Format([in] String volId, [in] String fsType);
[ipccode 6] void Partition([in] String diskId, [in] int type);
[ipccode 7] void SetVolumeDescription([in] String volId, [in] String description);
[ipccode 10] void StartUser([in] int userId);
[ipccode 11] void StopUser([in] int userId);
[ipccode 8] void PrepareUserDirs([in] int userId, [in] unsigned int flags);
[ipccode 9] void DestroyUserDirs([in] int userId,[in] unsigned int flags);
[ipccode 12] void CompleteAddUser([in] int userId);
// fscrypt api
[ipccode 13] void InitGlobalKey();
[ipccode 14] void InitGlobalUserKeys();
[ipccode 18] void UpdateUserAuth([in] unsigned int userId, [in] unsigned long secureUid,
[in] unsigned char[] token,[in] unsigned char[] oldSecret,[in] unsigned char[] newSecret);
[ipccode 19] void UpdateUseAuthWithRecoveryKey([in] unsigned char[] authToken,
[in] unsigned char[] newSecret, [in] unsigned long secureUid, [in] unsigned int userId,
[in] List<List<unsigned char>> plainText);
[ipccode 20] void ActiveUserKey([in] unsigned int userId, [in] unsigned char[] token,
[in] unsigned char[] secret);
[ipccode 21] void InactiveUserKey([in] unsigned int userId);
[ipccode 22] void UpdateKeyContext([in] unsigned int userId , [in] boolean needRemoveTmpKey);
[ipccode 26] void LockUserScreen([in] unsigned int userId);
[ipccode 27] void UnlockUserScreen([in] unsigned int user, [in] unsigned char[] token,
[in] unsigned char[] secret);
[ipccode 28] void GetLockScreenStatus([in] unsigned int user, [out] boolean lockScreenStatus);
[ipccode 33] void GenerateAppkey([in] unsigned int userId, [in] unsigned int hashId, [out] String keyId,
[in] boolean needReSet);
[ipccode 34] void DeleteAppkey([in] unsigned int userId, [in] String keyId);
[ipccode 38] void CreateRecoverKey([in] unsigned int userId, [in] unsigned int userType,
[in] unsigned char[] token,[in] unsigned char[] secret);
[ipccode 39] void SetRecoverKey([in] unsigned char[] key);
// app file share api
[ipccode 24] int[] CreateShareFile([in] StorageFileRawData rawData,
[in] unsigned int tokenId, [in] unsigned int flag);
[oneway, ipccode 25] void DeleteShareFile([in] unsigned int tokenId, [in] StorageFileRawData rawData);
[ipccode 29] void SetBundleQuota([in] int uid, [in] String bundleDataDirPath,
[in] int limitSizeMb);
[ipccode 30] void GetOccupiedSpace([in] int idType, [in] int id, [out] long size);
[ipccode 35] void MountDfsDocs([in] int userId, [in] String relativePath,
[in] String networkId, [in] String deviceId);
[ipccode 36] void UMountDfsDocs([in] int userId, [in] String relativePath,
[in] String networkId, [in] String deviceId);
[ipccode 37] void GetFileEncryptStatus([in] unsigned int userId, [out] boolean isEncrypted,
[in] boolean needCheckDirMount);
// media fuse
[ipccode 40] void MountMediaFuse([in] int userId, [out] FileDescriptor devFd);
[ipccode 41] void UMountMediaFuse([in] int userId);
[ipccode 42] void GetUserNeedActiveStatus([in] unsigned int userId, [out] boolean needActive);
[ipccode 43] void MountFileMgrFuse([in] int userId, [in] String path, [out] FileDescriptor fuseFd);
[ipccode 44] void UMountFileMgrFuse([in] int userId, [in] String path);
[ipccode 45] void QueryUsbIsInUse([in] String diskPath, [out] boolean isInUse);
[ipccode 46] void ResetSecretWithRecoveryKey([in] unsigned int userId, [in] unsigned int rkType,
[in] unsigned char[] key);
[ipcincapacity 131071, ipcoutcapacity 131071, ipccode 47] void IsFileOccupied([in] String path, [in] String[] inputList,
[out] String[] outputList, [out] boolean isOccupy);
[ipccode 49] void MountDisShareFile([in] int userId, [in] OrderedMap<String, String> shareFiles);
[ipccode 50] void UMountDisShareFile([in] int userId, [in] String networkId);
[ipccode 51] void TryToFix([in] String volId, [in] unsigned int flags);
[ipccode 52] void InactiveUserPublicDirKey([in] unsigned int userId);
[ipccode 53] void QueryOccupiedSpaceForSa([out] UidSaInfo[] vec, [out] long totalSize,
[in] OrderedMap<int, String> bundleNameAndUid, [in] int type);
[ipccode 54] void MountUsbFuse([in] String volumeId, [out] String fsUuid, [out] FileDescriptor fuseFd);
[ipccode 55] void RegisterUeceActivationCallback([in] IUeceActivationCallback ueceCallback);
[ipccode 56] void UnregisterUeceActivationCallback();
[ipccode 57] void CreateUserDir([in] String path, [in] unsigned int mode,
[in] unsigned int uid, [in] unsigned int gid);
[ipccode 59] void SetDirEncryptionPolicy([in] unsigned int userId, [in] String dirPath, [in] unsigned int level);
[ipccode 60] void UpdateUserPublicDirPolicy([in] unsigned int userId);
[ipccode 61] void GetDqBlkSpacesByUids([in] int[] uids, [out] NextDqBlk[] dqBlks);
[ipccode 62] void EraseAllUserEncryptedKeys([in] int[] localIdList);
[ipccode 63] void GetDirListSpace([in] DirSpaceInfo[] inDirs, [out] DirSpaceInfo[] outDirs);
[ipccode 64] void SetStopScanFlag([in] boolean stop);
[ipccode 65] void GetAncoSizeData([out] String outExtraData);
[ipccode 66] void GetDataSizeByPath([in] String path, [out] long size);
[ipccode 67] void GetRmgResourceSize([in] String rgmName, [out] unsigned long totalSize);
[ipccode 68] void ListUserdataDirInfo([out] List<UserdataDirInfo> dirs);
[ipccode 70] void GetSystemDataSize([out] long otherUidSizeSum);
[ipccode 71] void GetDirListSpaceByPaths([in] String[] paths, [in] int[] uids,
[out] DirSpaceInfo[] resultDirs, [out] LargeFileInfo[] largeFiles,
[out] LargeDirInfo[] largeDirs);
//disk crypt api
[ipccode 72] void Encrypt([in] String volumeId, [in] String pazzword);
[ipccode 73] void GetCryptProgressById([in] String volumeId, [out] int progress);
[ipccode 74] void GetCryptUuidById([in] String volumeId, [out] String uuid);
[ipccode 75] void BindRecoverKeyToPasswd([in] String volumeId,
[in] String pazzword,
[in] String recoverKey);
[ipccode 76] void UpdateCryptPasswd([in] String volumeId,
[in] String pazzword,
[in] String newPazzword);
[ipccode 77] void ResetCryptPasswd([in] String volumeId,
[in] String recoverKey,
[in] String newPazzword);
[ipccode 78] void VerifyCryptPasswd([in] String volumeId, [in] String pazzword);
[ipccode 79] void Unlock([in] String volumeId, [in] String pazzword);
[ipccode 80] void Decrypt([in] String volumeId, [in] String pazzword);
[ipccode 81] void GetOddCapacity([in] String volumeUuid, [out] long totalSize, [out] long freeSize);
[ipccode 86] void GetPartitionTable([in] String diskId, [out] PartitionTableInfo partitionTableInfo);
[ipccode 87] void CreatePartition([in] String diskId, [in] PartitionParams partitionParams);
[ipccode 88] void DeletePartition([in] String diskId, [in] unsigned int partitionNum);
[ipccode 89] void FormatPartition([in] String diskId, [in] unsigned int partitionNum, [in] FormatParams formatParams);
[ipccode 201] void CreateBlockDeviceNode([in] String devPath,
[in] unsigned int mode,
[in] int major,
[in] int minor);
[ipccode 202] void DestroyBlockDeviceNode([in] String devPath);
[ipccode 203] void ReadPartitionTable([in] String devPath,
[out] String output,
[out] int maxVolume);
[ipccode 204] void Mount([in] String devPath,
[in] String mountPath,
[in] String fsType,
[in] unsigned long mountFlags,
[in] String mountData);
[ipccode 205] void Unmount([in] String mountPath,
[in] String fsType,
[in] boolean force);
[ipccode 206] void FormatVolume([in] String devPath,
[in] String fsType);
[ipccode 207] void Check([in] String devPath,
[in] String fsType,
[in] boolean autoFix);
[ipccode 208] void Repair([in] String devPath,
[in] String fsType);
[ipccode 209] void SetLabel([in] String devPath,
[in] String fsType,
[in] String label);
[ipccode 210] void ReadMetadata([in] String devPath,
[out] String uuid,
[out] String type,
[out] String label);
[ipccode 211] void MountFuseDevice([in] String mountPath,
[out] FileDescriptor fuseFd);
[ipccode 212] void Partition([in] String diskPath,
[in] String partitionType);
[ipccode 213] void GetBlockInfoByType([in] String type, [in] String diskId, [out] String blockInfos);
[ipccode 214] void GetPartitionTableInfo([in] String devPath, [out] String execRet);
[ipccode 215] void CreatePartition([in] String devPath,
[in] int partitionNum,
[in] long startSector,
[in] long endSector,
[in] String typeCode);
[ipccode 216] void DeletePartitionInfo([in] String devPath, [in] String diskId, [in] int partitionNum);
[ipccode 217] void FormatPartition([in] String devPath,
[in] String fsType,
[in] String volumeName,
[in] boolean quickFormat);
[ipccode 221] void UMountDisShareFile([in] String[] distributeDirs);
[ipccode 251] void GetCapacity([in] String devPath, [out] long totalSize, [out] long freeSize);
[ipccode 252] void EjectCD([in] String devPath);
[ipccode 253] void QueryCDStatus([in] String devPath, [out] int status);
[ipccode 254] void Erase([in] String devPath);
[ipccode 255] void Eject([in] String devName);
[ipccode 256] void CreateIsoImage([in] String devPath,
[in] String filePath,
[in] String fsType,
[in] String mountPath);
[ipccode 257] void Burn([in] String devPath, [in] String burnOptions, [in] String fsType);
[ipccode 258] void GetVolumeOpProcess([in] String volumeId, [out] int process);
[ipccode 259] void VerifyBurnData([in] String devPath, [in] int verType);
}