/* * This file is auto-generated. DO NOT MODIFY. * Using: out/host/linux-x86/bin/aidl --lang=java -Weverything -Wno-missing-permission-annotation --min_sdk_version 28 --ninja -d out/soong/.intermediates/system/apex/apexd/apex_aidl_interface-java-source/gen/android/apex/IApexService.java.d -o out/soong/.intermediates/system/apex/apexd/apex_aidl_interface-java-source/gen -Nsystem/apex/apexd/aidl system/apex/apexd/aidl/android/apex/IApexService.aidl */ package android.apex; public interface IApexService extends android.os.IInterface { /** Default implementation for IApexService. */ public static class Default implements android.apex.IApexService { @Override public void submitStagedSession(android.apex.ApexSessionParams params, android.apex.ApexInfoList packages) throws android.os.RemoteException { } @Override public void markStagedSessionReady(int session_id) throws android.os.RemoteException { } @Override public void markStagedSessionSuccessful(int session_id) throws android.os.RemoteException { } @Override public android.apex.ApexSessionInfo[] getSessions() throws android.os.RemoteException { return null; } @Override public android.apex.ApexSessionInfo getStagedSessionInfo(int session_id) throws android.os.RemoteException { return null; } @Override public android.apex.ApexInfo[] getStagedApexInfos(android.apex.ApexSessionParams params) throws android.os.RemoteException { return null; } @Override public android.apex.ApexInfo[] getActivePackages() throws android.os.RemoteException { return null; } @Override public android.apex.ApexInfo[] getAllPackages() throws android.os.RemoteException { return null; } @Override public void abortStagedSession(int session_id) throws android.os.RemoteException { } @Override public void revertActiveSessions() throws android.os.RemoteException { } /** * Copies the CE apex data directory for the given user to the backup * location. */ @Override public void snapshotCeData(int user_id, int rollback_id, java.lang.String apex_name) throws android.os.RemoteException { } /** * Restores the snapshot of the CE apex data directory for the given user and * apex. Note the snapshot will be deleted after restoration succeeded. */ @Override public void restoreCeData(int user_id, int rollback_id, java.lang.String apex_name) throws android.os.RemoteException { } /** Deletes device-encrypted snapshots for the given rollback id. */ @Override public void destroyDeSnapshots(int rollback_id) throws android.os.RemoteException { } /** Deletes credential-encrypted snapshots for the given user, for the given rollback id. */ @Override public void destroyCeSnapshots(int user_id, int rollback_id) throws android.os.RemoteException { } /** * Deletes all credential-encrypted snapshots for the given user, except for * those listed in retain_rollback_ids. */ @Override public void destroyCeSnapshotsNotSpecified(int user_id, int[] retain_rollback_ids) throws android.os.RemoteException { } @Override public void unstagePackages(java.util.List active_package_paths) throws android.os.RemoteException { } /** * Returns the active package corresponding to |package_name| and null * if none exists. */ @Override public android.apex.ApexInfo getActivePackage(java.lang.String package_name) throws android.os.RemoteException { return null; } /** * Not meant for use outside of testing. The call will not be * functional on user builds. */ @Override public void stagePackages(java.util.List package_tmp_paths) throws android.os.RemoteException { } /** * Not meant for use outside of testing. The call will not be * functional on user builds. */ @Override public void resumeRevertIfNeeded() throws android.os.RemoteException { } /** * Forces apexd to remount all active packages. * * This call is mostly useful for speeding up development of APEXes. * Instead of going through a full APEX installation that requires a reboot, * developers can incorporate this method in much faster `adb sync` based * workflow: * * 1. adb shell stop * 2. adb sync * 3. adb shell cmd -w apexservice remountPackages * 4. adb shell start * * Note, that for an APEX package will be successfully remounted only if * there are no alive processes holding a reference to it. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ @Override public void remountPackages() throws android.os.RemoteException { } /** * Forces apexd to recollect pre-installed data from the given |paths|. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ @Override public void recollectPreinstalledData(java.util.List paths) throws android.os.RemoteException { } /** * Forces apexd to recollect data apex from the given |path|. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ @Override public void recollectDataApex(java.lang.String path, java.lang.String decompression_dir) throws android.os.RemoteException { } /** Informs apexd that the boot has completed. */ @Override public void markBootCompleted() throws android.os.RemoteException { } /** * Assuming the provided compressed APEX will be installed on next boot, * calculate how much space will be required for decompression */ @Override public long calculateSizeForCompressedApex(android.apex.CompressedApexInfoList compressed_apex_info_list) throws android.os.RemoteException { return 0L; } /** * Reserve space on /data partition for compressed APEX decompression. Returns error if * reservation fails. If empty list is passed, then reserved space is deallocated. */ @Override public void reserveSpaceForCompressedApex(android.apex.CompressedApexInfoList compressed_apex_info_list) throws android.os.RemoteException { } /** Performs a non-staged install of the given APEX. */ @Override public android.apex.ApexInfo installAndActivatePackage(java.lang.String packagePath, boolean force) throws android.os.RemoteException { return null; } @Override public android.os.IBinder asBinder() { return null; } } /** Local-side IPC implementation stub class. */ public static abstract class Stub extends android.os.Binder implements android.apex.IApexService { /** Construct the stub at attach it to the interface. */ @SuppressWarnings("this-escape") public Stub() { this.attachInterface(this, DESCRIPTOR); } /** * Cast an IBinder object into an android.apex.IApexService interface, * generating a proxy if needed. */ public static android.apex.IApexService asInterface(android.os.IBinder obj) { if ((obj==null)) { return null; } android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR); if (((iin!=null)&&(iin instanceof android.apex.IApexService))) { return ((android.apex.IApexService)iin); } return new android.apex.IApexService.Stub.Proxy(obj); } @Override public android.os.IBinder asBinder() { return this; } @Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException { java.lang.String descriptor = DESCRIPTOR; if (code >= android.os.IBinder.FIRST_CALL_TRANSACTION && code <= android.os.IBinder.LAST_CALL_TRANSACTION) { data.enforceInterface(descriptor); } if (code == INTERFACE_TRANSACTION) { reply.writeString(descriptor); return true; } switch (code) { case TRANSACTION_submitStagedSession: { android.apex.ApexSessionParams _arg0; _arg0 = data.readTypedObject(android.apex.ApexSessionParams.CREATOR); android.apex.ApexInfoList _arg1; _arg1 = new android.apex.ApexInfoList(); this.submitStagedSession(_arg0, _arg1); reply.writeNoException(); reply.writeTypedObject(_arg1, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_markStagedSessionReady: { int _arg0; _arg0 = data.readInt(); this.markStagedSessionReady(_arg0); reply.writeNoException(); break; } case TRANSACTION_markStagedSessionSuccessful: { int _arg0; _arg0 = data.readInt(); this.markStagedSessionSuccessful(_arg0); reply.writeNoException(); break; } case TRANSACTION_getSessions: { android.apex.ApexSessionInfo[] _result = this.getSessions(); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getStagedSessionInfo: { int _arg0; _arg0 = data.readInt(); android.apex.ApexSessionInfo _result = this.getStagedSessionInfo(_arg0); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getStagedApexInfos: { android.apex.ApexSessionParams _arg0; _arg0 = data.readTypedObject(android.apex.ApexSessionParams.CREATOR); android.apex.ApexInfo[] _result = this.getStagedApexInfos(_arg0); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getActivePackages: { android.apex.ApexInfo[] _result = this.getActivePackages(); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_getAllPackages: { android.apex.ApexInfo[] _result = this.getAllPackages(); reply.writeNoException(); reply.writeTypedArray(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_abortStagedSession: { int _arg0; _arg0 = data.readInt(); this.abortStagedSession(_arg0); reply.writeNoException(); break; } case TRANSACTION_revertActiveSessions: { this.revertActiveSessions(); reply.writeNoException(); break; } case TRANSACTION_snapshotCeData: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); java.lang.String _arg2; _arg2 = data.readString(); this.snapshotCeData(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_restoreCeData: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); java.lang.String _arg2; _arg2 = data.readString(); this.restoreCeData(_arg0, _arg1, _arg2); reply.writeNoException(); break; } case TRANSACTION_destroyDeSnapshots: { int _arg0; _arg0 = data.readInt(); this.destroyDeSnapshots(_arg0); reply.writeNoException(); break; } case TRANSACTION_destroyCeSnapshots: { int _arg0; _arg0 = data.readInt(); int _arg1; _arg1 = data.readInt(); this.destroyCeSnapshots(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_destroyCeSnapshotsNotSpecified: { int _arg0; _arg0 = data.readInt(); int[] _arg1; _arg1 = data.createIntArray(); this.destroyCeSnapshotsNotSpecified(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_unstagePackages: { java.util.List _arg0; _arg0 = data.createStringArrayList(); this.unstagePackages(_arg0); reply.writeNoException(); break; } case TRANSACTION_getActivePackage: { java.lang.String _arg0; _arg0 = data.readString(); android.apex.ApexInfo _result = this.getActivePackage(_arg0); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } case TRANSACTION_stagePackages: { java.util.List _arg0; _arg0 = data.createStringArrayList(); this.stagePackages(_arg0); reply.writeNoException(); break; } case TRANSACTION_resumeRevertIfNeeded: { this.resumeRevertIfNeeded(); reply.writeNoException(); break; } case TRANSACTION_remountPackages: { this.remountPackages(); reply.writeNoException(); break; } case TRANSACTION_recollectPreinstalledData: { java.util.List _arg0; _arg0 = data.createStringArrayList(); this.recollectPreinstalledData(_arg0); reply.writeNoException(); break; } case TRANSACTION_recollectDataApex: { java.lang.String _arg0; _arg0 = data.readString(); java.lang.String _arg1; _arg1 = data.readString(); this.recollectDataApex(_arg0, _arg1); reply.writeNoException(); break; } case TRANSACTION_markBootCompleted: { this.markBootCompleted(); reply.writeNoException(); break; } case TRANSACTION_calculateSizeForCompressedApex: { android.apex.CompressedApexInfoList _arg0; _arg0 = data.readTypedObject(android.apex.CompressedApexInfoList.CREATOR); long _result = this.calculateSizeForCompressedApex(_arg0); reply.writeNoException(); reply.writeLong(_result); break; } case TRANSACTION_reserveSpaceForCompressedApex: { android.apex.CompressedApexInfoList _arg0; _arg0 = data.readTypedObject(android.apex.CompressedApexInfoList.CREATOR); this.reserveSpaceForCompressedApex(_arg0); reply.writeNoException(); break; } case TRANSACTION_installAndActivatePackage: { java.lang.String _arg0; _arg0 = data.readString(); boolean _arg1; _arg1 = (0!=data.readInt()); android.apex.ApexInfo _result = this.installAndActivatePackage(_arg0, _arg1); reply.writeNoException(); reply.writeTypedObject(_result, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); break; } default: { return super.onTransact(code, data, reply, flags); } } return true; } private static class Proxy implements android.apex.IApexService { private android.os.IBinder mRemote; Proxy(android.os.IBinder remote) { mRemote = remote; } @Override public android.os.IBinder asBinder() { return mRemote; } public java.lang.String getInterfaceDescriptor() { return DESCRIPTOR; } @Override public void submitStagedSession(android.apex.ApexSessionParams params, android.apex.ApexInfoList packages) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(params, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_submitStagedSession, _data, _reply, 0); _reply.readException(); if ((0!=_reply.readInt())) { packages.readFromParcel(_reply); } } finally { _reply.recycle(); _data.recycle(); } } @Override public void markStagedSessionReady(int session_id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(session_id); boolean _status = mRemote.transact(Stub.TRANSACTION_markStagedSessionReady, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void markStagedSessionSuccessful(int session_id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(session_id); boolean _status = mRemote.transact(Stub.TRANSACTION_markStagedSessionSuccessful, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public android.apex.ApexSessionInfo[] getSessions() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); android.apex.ApexSessionInfo[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getSessions, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.apex.ApexSessionInfo.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.apex.ApexSessionInfo getStagedSessionInfo(int session_id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); android.apex.ApexSessionInfo _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(session_id); boolean _status = mRemote.transact(Stub.TRANSACTION_getStagedSessionInfo, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.apex.ApexSessionInfo.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.apex.ApexInfo[] getStagedApexInfos(android.apex.ApexSessionParams params) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); android.apex.ApexInfo[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(params, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_getStagedApexInfos, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.apex.ApexInfo.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.apex.ApexInfo[] getActivePackages() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); android.apex.ApexInfo[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getActivePackages, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.apex.ApexInfo.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public android.apex.ApexInfo[] getAllPackages() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); android.apex.ApexInfo[] _result; try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_getAllPackages, _data, _reply, 0); _reply.readException(); _result = _reply.createTypedArray(android.apex.ApexInfo.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } @Override public void abortStagedSession(int session_id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(session_id); boolean _status = mRemote.transact(Stub.TRANSACTION_abortStagedSession, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void revertActiveSessions() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_revertActiveSessions, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Copies the CE apex data directory for the given user to the backup * location. */ @Override public void snapshotCeData(int user_id, int rollback_id, java.lang.String apex_name) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(user_id); _data.writeInt(rollback_id); _data.writeString(apex_name); boolean _status = mRemote.transact(Stub.TRANSACTION_snapshotCeData, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Restores the snapshot of the CE apex data directory for the given user and * apex. Note the snapshot will be deleted after restoration succeeded. */ @Override public void restoreCeData(int user_id, int rollback_id, java.lang.String apex_name) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(user_id); _data.writeInt(rollback_id); _data.writeString(apex_name); boolean _status = mRemote.transact(Stub.TRANSACTION_restoreCeData, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** Deletes device-encrypted snapshots for the given rollback id. */ @Override public void destroyDeSnapshots(int rollback_id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(rollback_id); boolean _status = mRemote.transact(Stub.TRANSACTION_destroyDeSnapshots, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** Deletes credential-encrypted snapshots for the given user, for the given rollback id. */ @Override public void destroyCeSnapshots(int user_id, int rollback_id) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(user_id); _data.writeInt(rollback_id); boolean _status = mRemote.transact(Stub.TRANSACTION_destroyCeSnapshots, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Deletes all credential-encrypted snapshots for the given user, except for * those listed in retain_rollback_ids. */ @Override public void destroyCeSnapshotsNotSpecified(int user_id, int[] retain_rollback_ids) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeInt(user_id); _data.writeIntArray(retain_rollback_ids); boolean _status = mRemote.transact(Stub.TRANSACTION_destroyCeSnapshotsNotSpecified, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } @Override public void unstagePackages(java.util.List active_package_paths) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeStringList(active_package_paths); boolean _status = mRemote.transact(Stub.TRANSACTION_unstagePackages, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Returns the active package corresponding to |package_name| and null * if none exists. */ @Override public android.apex.ApexInfo getActivePackage(java.lang.String package_name) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); android.apex.ApexInfo _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeString(package_name); boolean _status = mRemote.transact(Stub.TRANSACTION_getActivePackage, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.apex.ApexInfo.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Not meant for use outside of testing. The call will not be * functional on user builds. */ @Override public void stagePackages(java.util.List package_tmp_paths) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeStringList(package_tmp_paths); boolean _status = mRemote.transact(Stub.TRANSACTION_stagePackages, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Not meant for use outside of testing. The call will not be * functional on user builds. */ @Override public void resumeRevertIfNeeded() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_resumeRevertIfNeeded, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Forces apexd to remount all active packages. * * This call is mostly useful for speeding up development of APEXes. * Instead of going through a full APEX installation that requires a reboot, * developers can incorporate this method in much faster `adb sync` based * workflow: * * 1. adb shell stop * 2. adb sync * 3. adb shell cmd -w apexservice remountPackages * 4. adb shell start * * Note, that for an APEX package will be successfully remounted only if * there are no alive processes holding a reference to it. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ @Override public void remountPackages() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_remountPackages, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Forces apexd to recollect pre-installed data from the given |paths|. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ @Override public void recollectPreinstalledData(java.util.List paths) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeStringList(paths); boolean _status = mRemote.transact(Stub.TRANSACTION_recollectPreinstalledData, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Forces apexd to recollect data apex from the given |path|. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ @Override public void recollectDataApex(java.lang.String path, java.lang.String decompression_dir) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeString(path); _data.writeString(decompression_dir); boolean _status = mRemote.transact(Stub.TRANSACTION_recollectDataApex, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** Informs apexd that the boot has completed. */ @Override public void markBootCompleted() throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); boolean _status = mRemote.transact(Stub.TRANSACTION_markBootCompleted, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** * Assuming the provided compressed APEX will be installed on next boot, * calculate how much space will be required for decompression */ @Override public long calculateSizeForCompressedApex(android.apex.CompressedApexInfoList compressed_apex_info_list) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); long _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(compressed_apex_info_list, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_calculateSizeForCompressedApex, _data, _reply, 0); _reply.readException(); _result = _reply.readLong(); } finally { _reply.recycle(); _data.recycle(); } return _result; } /** * Reserve space on /data partition for compressed APEX decompression. Returns error if * reservation fails. If empty list is passed, then reserved space is deallocated. */ @Override public void reserveSpaceForCompressedApex(android.apex.CompressedApexInfoList compressed_apex_info_list) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeTypedObject(compressed_apex_info_list, 0); boolean _status = mRemote.transact(Stub.TRANSACTION_reserveSpaceForCompressedApex, _data, _reply, 0); _reply.readException(); } finally { _reply.recycle(); _data.recycle(); } } /** Performs a non-staged install of the given APEX. */ @Override public android.apex.ApexInfo installAndActivatePackage(java.lang.String packagePath, boolean force) throws android.os.RemoteException { android.os.Parcel _data = android.os.Parcel.obtain(); android.os.Parcel _reply = android.os.Parcel.obtain(); android.apex.ApexInfo _result; try { _data.writeInterfaceToken(DESCRIPTOR); _data.writeString(packagePath); _data.writeInt(((force)?(1):(0))); boolean _status = mRemote.transact(Stub.TRANSACTION_installAndActivatePackage, _data, _reply, 0); _reply.readException(); _result = _reply.readTypedObject(android.apex.ApexInfo.CREATOR); } finally { _reply.recycle(); _data.recycle(); } return _result; } } static final int TRANSACTION_submitStagedSession = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); static final int TRANSACTION_markStagedSessionReady = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); static final int TRANSACTION_markStagedSessionSuccessful = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); static final int TRANSACTION_getSessions = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); static final int TRANSACTION_getStagedSessionInfo = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4); static final int TRANSACTION_getStagedApexInfos = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5); static final int TRANSACTION_getActivePackages = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6); static final int TRANSACTION_getAllPackages = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7); static final int TRANSACTION_abortStagedSession = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8); static final int TRANSACTION_revertActiveSessions = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9); static final int TRANSACTION_snapshotCeData = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10); static final int TRANSACTION_restoreCeData = (android.os.IBinder.FIRST_CALL_TRANSACTION + 11); static final int TRANSACTION_destroyDeSnapshots = (android.os.IBinder.FIRST_CALL_TRANSACTION + 12); static final int TRANSACTION_destroyCeSnapshots = (android.os.IBinder.FIRST_CALL_TRANSACTION + 13); static final int TRANSACTION_destroyCeSnapshotsNotSpecified = (android.os.IBinder.FIRST_CALL_TRANSACTION + 14); static final int TRANSACTION_unstagePackages = (android.os.IBinder.FIRST_CALL_TRANSACTION + 15); static final int TRANSACTION_getActivePackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16); static final int TRANSACTION_stagePackages = (android.os.IBinder.FIRST_CALL_TRANSACTION + 17); static final int TRANSACTION_resumeRevertIfNeeded = (android.os.IBinder.FIRST_CALL_TRANSACTION + 18); static final int TRANSACTION_remountPackages = (android.os.IBinder.FIRST_CALL_TRANSACTION + 19); static final int TRANSACTION_recollectPreinstalledData = (android.os.IBinder.FIRST_CALL_TRANSACTION + 20); static final int TRANSACTION_recollectDataApex = (android.os.IBinder.FIRST_CALL_TRANSACTION + 21); static final int TRANSACTION_markBootCompleted = (android.os.IBinder.FIRST_CALL_TRANSACTION + 22); static final int TRANSACTION_calculateSizeForCompressedApex = (android.os.IBinder.FIRST_CALL_TRANSACTION + 23); static final int TRANSACTION_reserveSpaceForCompressedApex = (android.os.IBinder.FIRST_CALL_TRANSACTION + 24); static final int TRANSACTION_installAndActivatePackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 25); } /** @hide */ public static final java.lang.String DESCRIPTOR = "android.apex.IApexService"; public void submitStagedSession(android.apex.ApexSessionParams params, android.apex.ApexInfoList packages) throws android.os.RemoteException; public void markStagedSessionReady(int session_id) throws android.os.RemoteException; public void markStagedSessionSuccessful(int session_id) throws android.os.RemoteException; public android.apex.ApexSessionInfo[] getSessions() throws android.os.RemoteException; public android.apex.ApexSessionInfo getStagedSessionInfo(int session_id) throws android.os.RemoteException; public android.apex.ApexInfo[] getStagedApexInfos(android.apex.ApexSessionParams params) throws android.os.RemoteException; public android.apex.ApexInfo[] getActivePackages() throws android.os.RemoteException; public android.apex.ApexInfo[] getAllPackages() throws android.os.RemoteException; public void abortStagedSession(int session_id) throws android.os.RemoteException; public void revertActiveSessions() throws android.os.RemoteException; /** * Copies the CE apex data directory for the given user to the backup * location. */ public void snapshotCeData(int user_id, int rollback_id, java.lang.String apex_name) throws android.os.RemoteException; /** * Restores the snapshot of the CE apex data directory for the given user and * apex. Note the snapshot will be deleted after restoration succeeded. */ public void restoreCeData(int user_id, int rollback_id, java.lang.String apex_name) throws android.os.RemoteException; /** Deletes device-encrypted snapshots for the given rollback id. */ public void destroyDeSnapshots(int rollback_id) throws android.os.RemoteException; /** Deletes credential-encrypted snapshots for the given user, for the given rollback id. */ public void destroyCeSnapshots(int user_id, int rollback_id) throws android.os.RemoteException; /** * Deletes all credential-encrypted snapshots for the given user, except for * those listed in retain_rollback_ids. */ public void destroyCeSnapshotsNotSpecified(int user_id, int[] retain_rollback_ids) throws android.os.RemoteException; public void unstagePackages(java.util.List active_package_paths) throws android.os.RemoteException; /** * Returns the active package corresponding to |package_name| and null * if none exists. */ public android.apex.ApexInfo getActivePackage(java.lang.String package_name) throws android.os.RemoteException; /** * Not meant for use outside of testing. The call will not be * functional on user builds. */ public void stagePackages(java.util.List package_tmp_paths) throws android.os.RemoteException; /** * Not meant for use outside of testing. The call will not be * functional on user builds. */ public void resumeRevertIfNeeded() throws android.os.RemoteException; /** * Forces apexd to remount all active packages. * * This call is mostly useful for speeding up development of APEXes. * Instead of going through a full APEX installation that requires a reboot, * developers can incorporate this method in much faster `adb sync` based * workflow: * * 1. adb shell stop * 2. adb sync * 3. adb shell cmd -w apexservice remountPackages * 4. adb shell start * * Note, that for an APEX package will be successfully remounted only if * there are no alive processes holding a reference to it. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ public void remountPackages() throws android.os.RemoteException; /** * Forces apexd to recollect pre-installed data from the given |paths|. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ public void recollectPreinstalledData(java.util.List paths) throws android.os.RemoteException; /** * Forces apexd to recollect data apex from the given |path|. * * Not meant for use outside of testing. This call will not be functional * on user builds. Only root is allowed to call this method. */ public void recollectDataApex(java.lang.String path, java.lang.String decompression_dir) throws android.os.RemoteException; /** Informs apexd that the boot has completed. */ public void markBootCompleted() throws android.os.RemoteException; /** * Assuming the provided compressed APEX will be installed on next boot, * calculate how much space will be required for decompression */ public long calculateSizeForCompressedApex(android.apex.CompressedApexInfoList compressed_apex_info_list) throws android.os.RemoteException; /** * Reserve space on /data partition for compressed APEX decompression. Returns error if * reservation fails. If empty list is passed, then reserved space is deallocated. */ public void reserveSpaceForCompressedApex(android.apex.CompressedApexInfoList compressed_apex_info_list) throws android.os.RemoteException; /** Performs a non-staged install of the given APEX. */ public android.apex.ApexInfo installAndActivatePackage(java.lang.String packagePath, boolean force) throws android.os.RemoteException; }