| /* |
| * Copyright (C) 2015 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.IUpdateEngineCallback; |
| import android.os.ParcelFileDescriptor; |
| |
| /** @hide */ |
| interface IUpdateEngine { |
| /** @hide */ |
| void applyPayload(String url, |
| in long payload_offset, |
| in long payload_size, |
| in String[] headerKeyValuePairs); |
| /** @hide */ |
| void applyPayloadFd(in ParcelFileDescriptor pfd, |
| in long payload_offset, |
| in long payload_size, |
| in String[] headerKeyValuePairs); |
| /** @hide */ |
| boolean bind(IUpdateEngineCallback callback); |
| /** @hide */ |
| boolean unbind(IUpdateEngineCallback callback); |
| /** @hide */ |
| void suspend(); |
| /** @hide */ |
| void resume(); |
| /** @hide */ |
| void cancel(); |
| /** @hide */ |
| void resetStatus(); |
| /** @hide */ |
| void setShouldSwitchSlotOnReboot(in String metadataFilename); |
| /** @hide */ |
| void resetShouldSwitchSlotOnReboot(); |
| |
| /** @hide */ |
| boolean verifyPayloadApplicable(in String metadataFilename); |
| /** |
| * Allocate space on userdata partition. |
| * |
| * @return 0 indicates allocation is successful. |
| * Non-zero indicates space is insufficient. The returned value is the |
| * total required space (in bytes) on userdata partition. |
| * |
| * @throws ServiceSpecificException for other errors. |
| * |
| * @hide |
| */ |
| long allocateSpaceForPayload(in String metadataFilename, |
| in String[] headerKeyValuePairs); |
| /** @hide |
| * |
| * Wait for merge to finish, and clean up necessary files. |
| * |
| * @param callback Report status updates in callback (not the one previously |
| * bound with {@link #bind()}). |
| * {@link IUpdateEngineCallback#onStatusUpdate} is called with |
| * CLEANUP_PREVIOUS_UPDATE and a progress value during the cleanup. |
| * {@link IUpdateEngineCallback#onPayloadApplicationComplete} is called at |
| * the end with SUCCESS if successful. ERROR if transient errors (e.g. merged |
| * but needs reboot). DEVICE_CORRUPTED for permanent errors. |
| */ |
| void cleanupSuccessfulUpdate(IUpdateEngineCallback callback); |
| } |