Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 428868c1 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Move IMountService to aidl."

parents d50ac516 f7341142
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -241,6 +241,10 @@ LOCAL_SRC_FILES += \
	core/java/android/os/IUpdateLock.aidl \
	core/java/android/os/IUserManager.aidl \
	core/java/android/os/IVibratorService.aidl \
	core/java/android/os/storage/IMountService.aidl \
	core/java/android/os/storage/IMountServiceListener.aidl \
	core/java/android/os/storage/IMountShutdownObserver.aidl \
	core/java/android/os/storage/IObbActionListener.aidl \
	core/java/android/security/IKeystoreService.aidl \
	core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl \
	core/java/android/service/carrier/ICarrierService.aidl \
+291 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2016, 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.storage;

import android.content.pm.IPackageMoveObserver;
import android.os.ParcelFileDescriptor;
import android.os.storage.DiskInfo;
import android.os.storage.IMountServiceListener;
import android.os.storage.IMountShutdownObserver;
import android.os.storage.IObbActionListener;
import android.os.storage.StorageVolume;
import android.os.storage.VolumeInfo;
import android.os.storage.VolumeRecord;

/**
 * WARNING! Update IMountService.h and IMountService.cpp if you change this
 * file. In particular, the transaction ids below must match the
 * _TRANSACTION enum in IMountService.cpp
 *
 * @hide - Applications should use android.os.storage.StorageManager to access
 *       storage functions.
 */
interface IMountService {
    /**
     * Registers an IMountServiceListener for receiving async notifications.
     */
    void registerListener(IMountServiceListener listener) = 1;
    /**
     * Unregisters an IMountServiceListener
     */
    void unregisterListener(IMountServiceListener listener) = 2;
    /**
     * Returns true if a USB mass storage host is connected
     */
    boolean isUsbMassStorageConnected() = 3;
    /**
     * Enables / disables USB mass storage. The caller should check actual
     * status of enabling/disabling USB mass storage via StorageEventListener.
     */
    void setUsbMassStorageEnabled(boolean enable) = 4;
    /**
     * Returns true if a USB mass storage host is enabled (media is shared)
     */
    boolean isUsbMassStorageEnabled() = 5;
    /**
     * Mount external storage at given mount point. Returns an int consistent
     * with MountServiceResultCode
     */
    int mountVolume(in String mountPoint) = 6;
    /**
     * Safely unmount external storage at given mount point. The unmount is an
     * asynchronous operation. Applications should register StorageEventListener
     * for storage related status changes.
     * @param mountPoint the mount point
     * @param force whether or not to forcefully unmount it (e.g. even if programs are using this
     *     data currently)
     * @param removeEncryption whether or not encryption mapping should be removed from the volume.
     *     This value implies {@code force}.
     */
    void unmountVolume(in String mountPoint, boolean force, boolean removeEncryption) = 7;
    /**
     * Format external storage given a mount point. Returns an int consistent
     * with MountServiceResultCode
     */
    int formatVolume(in String mountPoint) = 8;
    /**
     * Returns an array of pids with open files on the specified path.
     */
    int[] getStorageUsers(in String path) = 9;
    /**
     * Gets the state of a volume via its mountpoint.
     */
    String getVolumeState(in String mountPoint) = 10;
    /*
     * Creates a secure container with the specified parameters. Returns an int
     * consistent with MountServiceResultCode
     */
    int createSecureContainer(in String id, int sizeMb, in String fstype, in String key,
            int ownerUid, boolean external) = 11;
    /*
     * Finalize a container which has just been created and populated. After
     * finalization, the container is immutable. Returns an int consistent with
     * MountServiceResultCode
     */
    int finalizeSecureContainer(in String id) = 12;
    /*
     * Destroy a secure container, and free up all resources associated with it.
     * NOTE: Ensure all references are released prior to deleting. Returns an
     * int consistent with MountServiceResultCode
     */
    int destroySecureContainer(in String id, boolean force) = 13;
    /*
     * Mount a secure container with the specified key and owner UID. Returns an
     * int consistent with MountServiceResultCode
     */
    int mountSecureContainer(in String id, in String key, int ownerUid, boolean readOnly) = 14;
    /*
     * Unount a secure container. Returns an int consistent with
     * MountServiceResultCode
     */
    int unmountSecureContainer(in String id, boolean force) = 15;
    /*
     * Returns true if the specified container is mounted
     */
    boolean isSecureContainerMounted(in String id) = 16;
    /*
     * Rename an unmounted secure container. Returns an int consistent with
     * MountServiceResultCode
     */
    int renameSecureContainer(in String oldId, in String newId) = 17;
    /*
     * Returns the filesystem path of a mounted secure container.
     */
    String getSecureContainerPath(in String id) = 18;
    /**
     * Gets an Array of currently known secure container IDs
     */
    String[] getSecureContainerList() = 19;
    /**
     * Shuts down the MountService and gracefully unmounts all external media.
     * Invokes call back once the shutdown is complete.
     */
    void shutdown(IMountShutdownObserver observer) = 20;
    /**
     * Call into MountService by PackageManager to notify that its done
     * processing the media status update request.
     */
    void finishMediaUpdate() = 21;
    /**
     * Mounts an Opaque Binary Blob (OBB) with the specified decryption key and
     * only allows the calling process's UID access to the contents.
     * MountService will call back to the supplied IObbActionListener to inform
     * it of the terminal state of the call.
     */
    void mountObb(in String rawPath, in String canonicalPath, in String key,
            IObbActionListener token, int nonce) = 22;
    /**
     * Unmounts an Opaque Binary Blob (OBB). When the force flag is specified,
     * any program using it will be forcibly killed to unmount the image.
     * MountService will call back to the supplied IObbActionListener to inform
     * it of the terminal state of the call.
     */
    void unmountObb(in String rawPath, boolean force, IObbActionListener token, int nonce) = 23;
    /**
     * Checks whether the specified Opaque Binary Blob (OBB) is mounted
     * somewhere.
     */
    boolean isObbMounted(in String rawPath) = 24;
    /**
     * Gets the path to the mounted Opaque Binary Blob (OBB).
     */
    String getMountedObbPath(in String rawPath) = 25;
    /**
     * Returns whether or not the external storage is emulated.
     */
    boolean isExternalStorageEmulated() = 26;
    /**
     * Decrypts any encrypted volumes.
     */
    int decryptStorage(in String password) = 27;
    /**
     * Encrypts storage.
     */
    int encryptStorage(int type, in String password) = 28;
    /**
     * Changes the encryption password.
     */
    int changeEncryptionPassword(int type, in String password) = 29;
    /**
     * Returns list of all mountable volumes.
     */
    StorageVolume[] getVolumeList(int uid, in String packageName, int flags) = 30;
    /**
     * Gets the path on the filesystem for the ASEC container itself.
     *
     * @param cid ASEC container ID
     * @return path to filesystem or {@code null} if it's not found
     * @throws RemoteException
     */
    String getSecureContainerFilesystemPath(in String cid) = 31;
    /**
     * Determines the encryption state of the volume.
     * @return a numerical value. See {@code ENCRYPTION_STATE_*} for possible
     * values.
     * Note that this has been replaced in most cases by the APIs in
     * StorageManager (see isEncryptable and below)
     * This is still useful to get the error state when encryption has failed
     * and CryptKeeper needs to throw up a screen advising the user what to do
     */
    int getEncryptionState() = 32;
    /**
     * Verify the encryption password against the stored volume.  This method
     * may only be called by the system process.
     */
    int verifyEncryptionPassword(in String password) = 33;
    /*
     * Fix permissions in a container which has just been created and populated.
     * Returns an int consistent with MountServiceResultCode
     */
    int fixPermissionsSecureContainer(in String id, int gid, in String filename) = 34;
    /**
     * Ensure that all directories along given path exist, creating parent
     * directories as needed. Validates that given path is absolute and that it
     * contains no relative "." or ".." paths or symlinks. Also ensures that
     * path belongs to a volume managed by vold, and that path is either
     * external storage data or OBB directory belonging to calling app.
     */
    int mkdirs(in String callingPkg, in String path) = 35;
    /**
     * Determines the type of the encryption password
     * @return PasswordType
     */
    int getPasswordType() = 36;
    /**
     * Get password from vold
     * @return password or empty string
     */
    String getPassword() = 37;
    /**
     * Securely clear password from vold
     */
    oneway void clearPassword() = 38;
    /**
     * Set a field in the crypto header.
     * @param field field to set
     * @param contents contents to set in field
     */
    oneway void setField(in String field, in String contents) = 39;
    /**
     * Gets a field from the crypto header.
     * @param field field to get
     * @return contents of field
     */
    String getField(in String field) = 40;
    int resizeSecureContainer(in String id, int sizeMb, in String key) = 41;
    /**
     * Report the time of the last maintenance operation such as fstrim.
     * @return Timestamp of the last maintenance operation, in the
     *     System.currentTimeMillis() time base
     * @throws RemoteException
     */
    long lastMaintenance() = 42;
    /**
     * Kick off an immediate maintenance operation
     * @throws RemoteException
     */
    void runMaintenance() = 43;
    void waitForAsecScan() = 44;
    DiskInfo[] getDisks() = 45;
    VolumeInfo[] getVolumes(int flags) = 46;
    VolumeRecord[] getVolumeRecords(int flags) = 47;
    void mount(in String volId) = 48;
    void unmount(in String volId) = 49;
    void format(in String volId) = 50;
    void partitionPublic(in String diskId) = 51;
    void partitionPrivate(in String diskId) = 52;
    void partitionMixed(in String diskId, int ratio) = 53;
    void setVolumeNickname(in String fsUuid, in String nickname) = 54;
    void setVolumeUserFlags(in String fsUuid, int flags, int mask) = 55;
    void forgetVolume(in String fsUuid) = 56;
    void forgetAllVolumes() = 57;
    String getPrimaryStorageUuid() = 58;
    void setPrimaryStorageUuid(in String volumeUuid, IPackageMoveObserver callback) = 59;
    long benchmark(in String volId) = 60;
    void setDebugFlags(int flags, int mask) = 61;
    void createUserKey(int userId, int serialNumber, boolean ephemeral) = 62;
    void destroyUserKey(int userId) = 63;
    void unlockUserKey(int userId, int serialNumber, in byte[] token, in byte[] secret) = 64;
    void lockUserKey(int userId) = 65;
    boolean isUserKeyUnlocked(int userId) = 66;
    void prepareUserStorage(in String volumeUuid, int userId, int serialNumber, int flags) = 67;
    void destroyUserStorage(in String volumeUuid, int userId, int flags) = 68;
    boolean isConvertibleToFBE() = 69;
    ParcelFileDescriptor mountAppFuse(in String name) = 70;
    void addUserKeyAuth(int userId, int serialNumber, in byte[] token, in byte[] secret) = 71;
    void fixateNewestUserKeyAuth(int userId) = 72;
}
 No newline at end of file
+0 −2491

File deleted.

Preview size limit exceeded, changes collapsed.

+64 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2016, 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.storage;

import android.os.storage.DiskInfo;
import android.os.storage.VolumeInfo;
import android.os.storage.VolumeRecord;

/**
 * Callback class for receiving events from MountService.
 *
 * Don't change the existing transaction Ids as they could be used in the native code.
 * When adding a new method, assign the next available transaction id.
 *
 * @hide - Applications should use IStorageEventListener for storage event
 *       callbacks.
 */
oneway interface IMountServiceListener {
    /**
     * Detection state of USB Mass Storage has changed
     *
     * @param available true if a UMS host is connected.
     */
    void onUsbMassStorageConnectionChanged(boolean connected) = 1;

    /**
     * Storage state has changed.
     *
     * @param path The volume mount path.
     * @param oldState The old state of the volume.
     * @param newState The new state of the volume. Note: State is one of the
     *            values returned by Environment.getExternalStorageState()
     */
    void onStorageStateChanged(in String path, in String oldState, in String newState) = 2;

    void onVolumeStateChanged(in VolumeInfo vol, int oldState, int newState) = 3;

    void onVolumeRecordChanged(in VolumeRecord rec) = 4;

    void onVolumeForgotten(in String fsUuid) = 5;

    void onDiskScanned(in DiskInfo disk, int volumeCount) = 6;

    void onDiskDestroyed(in DiskInfo disk) = 7;

    /**
     * Don't change the existing transaction Ids as they could be used in the native code.
     * When adding a new method, assign the next available transaction id.
     */
}
 No newline at end of file
+0 −309

File deleted.

Preview size limit exceeded, changes collapsed.

Loading