blob: 0b8747370f64ecc9be0e990ab88dca245fa5a01f [file] [log] [blame]
/*
* Copyright (C) 2018 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.apex;
import android.apex.ApexInfo;
import android.apex.ApexInfoList;
import android.apex.ApexSessionInfo;
import android.apex.ApexSessionParams;
interface IApexService {
void submitStagedSession(in ApexSessionParams params, out ApexInfoList packages);
void markStagedSessionReady(int session_id);
void markStagedSessionSuccessful(int session_id);
ApexSessionInfo[] getSessions();
ApexSessionInfo getStagedSessionInfo(int session_id);
ApexInfo[] getActivePackages();
ApexInfo[] getAllPackages();
void abortActiveSession();
/**
* Copies the CE apex data directory for the given user to the backup
* location, and returns the inode of the snapshot directory.
*/
long snapshotCeData(int user_id, int rollback_id, in @utf8InCpp String apex_name);
/**
* Restores the snapshot of the CE apex data directory for the given user and
* apex.
*/
void restoreCeData(int user_id, int rollback_id, in @utf8InCpp String apex_name);
void unstagePackages(in @utf8InCpp List<String> active_package_paths);
/**
* Returns the active package corresponding to |package_name| and null
* if none exists.
*/
ApexInfo getActivePackage(in @utf8InCpp String package_name);
/**
* Not meant for use outside of testing. The call will not be
* functional on user builds.
*/
void activatePackage(in @utf8InCpp String package_path);
/**
* Not meant for use outside of testing. The call will not be
* functional on user builds.
*/
void deactivatePackage(in @utf8InCpp String package_path);
/**
* Not meant for use outside of testing. The call will not be
* functional on user builds.
*/
void preinstallPackages(in @utf8InCpp List<String> package_tmp_paths);
/**
* Not meant for use outside of testing. The call will not be
* functional on user builds.
*/
void postinstallPackages(in @utf8InCpp List<String> package_tmp_paths);
/**
* Not meant for use outside of testing. The call will not be
* functional on user builds.
*/
void stagePackages(in @utf8InCpp List<String> package_tmp_paths);
/**
* Not meant for use outside of testing. The call will not be
* functional on user builds.
*/
void rollbackActiveSession();
/**
* Not meant for use outside of testing. The call will not be
* functional on user builds.
*/
void resumeRollbackIfNeeded();
}