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

Commit 968c4b53 authored by David Anderson's avatar David Anderson Committed by Gerrit Code Review
Browse files

Merge "Introduce IBootControl 1.1."

parents 57487311 e8f1a7fd
Loading
Loading
Loading
Loading

boot/1.1/Android.bp

0 → 100644
+18 −0
Original line number Diff line number Diff line
// This file is autogenerated by hidl-gen -Landroidbp.

hidl_interface {
    name: "android.hardware.boot@1.1",
    root: "android.hardware",
    vndk: {
        enabled: true,
    },
    srcs: [
        "types.hal",
        "IBootControl.hal",
    ],
    interfaces: [
        "android.hardware.boot@1.0",
        "android.hidl.base@1.0",
    ],
    gen_java: true,
}
+66 −0
Original line number Diff line number Diff line
/*
 * Copyright 2019 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.hardware.boot@1.1;

import @1.0::IBootControl;

interface IBootControl extends @1.0::IBootControl {
    /**
     * Sets whether a snapshot-merge of any dynamic partition is in progress.
     *
     * After the merge status is set to a given value, subsequent calls to
     * getSnapshotMergeStatus must return the set value.
     *
     * The merge status must be persistent across reboots. That is, getSnapshotMergeStatus
     * must return the same value after a reboot if the merge status is not altered in any way
     * (e.g. set by setSnapshotMergeStatus or set to CANCELLED by bootloader).
     *
     * Read/write access to the merge status must be atomic. When the HAL is processing a
     * setSnapshotMergeStatus call, all subsequent calls to getSnapshotMergeStatus must block until
     * setSnapshotMergeStatus has returned.
     *
     * A MERGING state indicates that dynamic partitions are partially comprised by blocks in the
     * userdata partition.
     *
     * When the merge status is set to MERGING, the following operations must be prohibited from the
     * bootloader:
     *  - Flashing or erasing "userdata" or "metadata".
     *
     * The following operations may be prohibited when the status is set to MERGING. If not
     * prohibited, it is recommended that the user receive a warning.
     *  - Changing the active slot (e.g. via "fastboot set_active")
     *
     * @param status Merge status.
     *
     * @return success True on success, false otherwise.
     */
    setSnapshotMergeStatus(MergeStatus status) generates (bool success);

    /**
     * Returns whether a snapshot-merge of any dynamic partition is in progress.
     *
     * This function must return the merge status set by the last setSnapshotMergeStatus call and
     * recorded by the bootloader with one exception. If the partitions are being flashed from the
     * bootloader such that the pending merge must be canceled (for example, if the super partition
     * is being flashed), this function must return CANCELLED.
     *
     * @return success True if the merge status is read successfully, false otherwise.
     * @return status Merge status.
     */
    getSnapshotMergeStatus() generates (MergeStatus status);
};

boot/1.1/types.hal

0 → 100644
+44 −0
Original line number Diff line number Diff line
/*
 * Copyright 2019 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.hardware.boot@1.1;

enum MergeStatus : int32_t {
    /**
     * No snapshot or merge is in progress.
     */
    NONE = 0,

    /**
     * The merge status could not be determined.
     */
    UNKNOWN,

    /**
     * Partitions are being snapshotted, but no merge has been started.
     */
    SNAPSHOTTED,

    /**
     * At least one partition has merge is in progress.
     */
    MERGING,

    /**
     * A merge was in progress, but it was canceled by the bootloader.
     */
    CANCELLED,
};
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.boot</name>
        <version>1.0</version>
        <version>1.1</version>
        <interface>
            <name>IBootControl</name>
            <instance>default</instance>
+4 −0
Original line number Diff line number Diff line
@@ -579,3 +579,7 @@ fb382e986c10b8fbb797a8546e8f9ea6d1107bfe6f3fb7e57f6bbbf1f807a906 android.hardwar
a785a57447a81e9c130eef6904c3a5c256076c6a04588c40620ebd6fa2660d77 android.hardware.radio@1.2::types
1a6e2bd289f22931c526b21916910f1d4c436b7acb9556e4243de4ce8e6cc2e4 android.hardware.soundtrigger@2.0::ISoundTriggerHwCallback
fd65298e1e09e0e3c781ab18305920d757dbe55a3b459ce17814ec5cf6dfee99 android.hardware.wifi@1.0::IWifiP2pIface

# HALs released in Android R
07d0a252b2d8fa35887908a996ba395cf392968395fc30afab791f46e0c22a52 android.hardware.boot@1.1::IBootControl
74049a402be913963edfdd80828a53736570e9d8124a1bf18166b6ed46a6b0ab android.hardware.boot@1.1::types