summaryrefslogtreecommitdiff
path: root/binder_bindings/android/os/IUpdateEngine.aidl
blob: 363cec2c5d72bbe8eda3a19b72b4519c8b0a4f74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
 * 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 */
  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);
  /** @hide */
  void setPerformanceMode(in boolean enable);
}