816 lines
34 KiB
Java
816 lines
34 KiB
Java
/*
|
|
* 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 current --ninja -d out/soong/.intermediates/frameworks/native/libs/binder/packagemanager_aidl-java-source/gen/android/content/pm/IPackageManagerNative.java.d -o out/soong/.intermediates/frameworks/native/libs/binder/packagemanager_aidl-java-source/gen -Nframeworks/native/libs/binder/aidl frameworks/native/libs/binder/aidl/android/content/pm/IPackageManagerNative.aidl
|
|
*/
|
|
package android.content.pm;
|
|
/**
|
|
* Parallel implementation of certain {@link PackageManager} APIs that need to
|
|
* be exposed to native code.
|
|
* <p>These APIs are a parallel definition to the APIs in PackageManager, so,
|
|
* they can technically diverge. However, it's good practice to keep these
|
|
* APIs in sync with each other.
|
|
* <p>Because these APIs are exposed to native code, it's possible they will
|
|
* be exposed to privileged components [such as UID 0]. Care should be taken
|
|
* to avoid exposing potential security holes for methods where permission
|
|
* checks are bypassed based upon UID alone.
|
|
*
|
|
* @hide
|
|
*/
|
|
public interface IPackageManagerNative extends android.os.IInterface
|
|
{
|
|
/** Default implementation for IPackageManagerNative. */
|
|
public static class Default implements android.content.pm.IPackageManagerNative
|
|
{
|
|
/**
|
|
* Returns a set of names for the given UIDs.
|
|
* IMPORTANT: Unlike the Java version of this API, unknown UIDs are
|
|
* not represented by 'null's. Instead, they are represented by empty
|
|
* strings.
|
|
*/
|
|
@Override public java.lang.String[] getNamesForUids(int[] uids) throws android.os.RemoteException
|
|
{
|
|
return null;
|
|
}
|
|
/**
|
|
* Return the UID associated with the given package name.
|
|
* Note that the same package will have different UIDs under different UserHandle on
|
|
* the same device.
|
|
* @param packageName The full name (i.e. com.google.apps.contacts) of the desired package.
|
|
* @param flags Additional option flags to modify the data returned.
|
|
* @param userId The user handle identifier to look up the package under.
|
|
* @return Returns an integer UID who owns the given package name, or -1 if no such package is
|
|
* available to the caller.
|
|
*/
|
|
@Override public int getPackageUid(java.lang.String packageName, long flags, int userId) throws android.os.RemoteException
|
|
{
|
|
return 0;
|
|
}
|
|
/**
|
|
* Returns the name of the installer (a package) which installed the named
|
|
* package. Preloaded packages return the string "preload". Sideloaded packages
|
|
* return an empty string. Unknown or unknowable are returned as empty strings.
|
|
*/
|
|
@Override public java.lang.String getInstallerForPackage(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
return null;
|
|
}
|
|
/**
|
|
* Returns the version code of the named package.
|
|
* Unknown or unknowable versions are returned as 0.
|
|
*/
|
|
@Override public long getVersionCodeForPackage(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
return 0L;
|
|
}
|
|
/**
|
|
* Return if each app, identified by its package name allows its audio to be recorded.
|
|
* Unknown packages are mapped to false.
|
|
*/
|
|
@Override public boolean[] isAudioPlaybackCaptureAllowed(java.lang.String[] packageNames) throws android.os.RemoteException
|
|
{
|
|
return null;
|
|
}
|
|
/**
|
|
* Returns a set of bitflags about package location.
|
|
* LOCATION_SYSTEM: getApplicationInfo(packageName).isSystemApp()
|
|
* LOCATION_VENDOR: getApplicationInfo(packageName).isVendor()
|
|
* LOCATION_PRODUCT: getApplicationInfo(packageName).isProduct()
|
|
*/
|
|
@Override public int getLocationFlags(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
return 0;
|
|
}
|
|
/**
|
|
* Returns the target SDK version for the given package.
|
|
* Unknown packages will cause the call to fail. The caller must check the
|
|
* returned Status before using the result of this function.
|
|
*/
|
|
@Override public int getTargetSdkVersionForPackage(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
return 0;
|
|
}
|
|
/**
|
|
* Returns the name of module metadata package, or empty string if device doesn't have such
|
|
* package.
|
|
*/
|
|
@Override public java.lang.String getModuleMetadataPackageName() throws android.os.RemoteException
|
|
{
|
|
return null;
|
|
}
|
|
/**
|
|
* Returns true if the package has the SHA 256 version of the signing certificate.
|
|
* @see PackageManager#hasSigningCertificate(String, byte[], int), where type
|
|
* has been set to {@link PackageManager#CERT_INPUT_SHA256}.
|
|
*/
|
|
@Override public boolean hasSha256SigningCertificate(java.lang.String packageName, byte[] certificate) throws android.os.RemoteException
|
|
{
|
|
return false;
|
|
}
|
|
/**
|
|
* Returns the debug flag for the given package.
|
|
* Unknown packages will cause the call to fail.
|
|
*/
|
|
@Override public boolean isPackageDebuggable(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
return false;
|
|
}
|
|
/**
|
|
* Check whether the given feature name and version is one of the available
|
|
* features as returned by {@link PackageManager#getSystemAvailableFeatures()}. Since
|
|
* features are defined to always be backwards compatible, this returns true
|
|
* if the available feature version is greater than or equal to the
|
|
* requested version.
|
|
*/
|
|
@Override public boolean hasSystemFeature(java.lang.String featureName, int version) throws android.os.RemoteException
|
|
{
|
|
return false;
|
|
}
|
|
/** Register a observer for change in set of staged APEX ready for installation */
|
|
@Override public void registerStagedApexObserver(android.content.pm.IStagedApexObserver observer) throws android.os.RemoteException
|
|
{
|
|
}
|
|
/**
|
|
* Unregister an existing staged apex observer.
|
|
* This does nothing if this observer was not already registered.
|
|
*/
|
|
@Override public void unregisterStagedApexObserver(android.content.pm.IStagedApexObserver observer) throws android.os.RemoteException
|
|
{
|
|
}
|
|
/** Get APEX module names of all APEX that are staged ready for installation */
|
|
@Override public java.lang.String[] getStagedApexModuleNames() throws android.os.RemoteException
|
|
{
|
|
return null;
|
|
}
|
|
/**
|
|
* Get information of APEX which is staged ready for installation.
|
|
* Returns null if no such APEX is found.
|
|
*/
|
|
@Override public android.content.pm.StagedApexInfo getStagedApexInfo(java.lang.String moduleName) 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.content.pm.IPackageManagerNative
|
|
{
|
|
/** 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.content.pm.IPackageManagerNative interface,
|
|
* generating a proxy if needed.
|
|
*/
|
|
public static android.content.pm.IPackageManagerNative asInterface(android.os.IBinder obj)
|
|
{
|
|
if ((obj==null)) {
|
|
return null;
|
|
}
|
|
android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
|
|
if (((iin!=null)&&(iin instanceof android.content.pm.IPackageManagerNative))) {
|
|
return ((android.content.pm.IPackageManagerNative)iin);
|
|
}
|
|
return new android.content.pm.IPackageManagerNative.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_getNamesForUids:
|
|
{
|
|
int[] _arg0;
|
|
_arg0 = data.createIntArray();
|
|
data.enforceNoDataAvail();
|
|
java.lang.String[] _result = this.getNamesForUids(_arg0);
|
|
reply.writeNoException();
|
|
reply.writeStringArray(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_getPackageUid:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
long _arg1;
|
|
_arg1 = data.readLong();
|
|
int _arg2;
|
|
_arg2 = data.readInt();
|
|
data.enforceNoDataAvail();
|
|
int _result = this.getPackageUid(_arg0, _arg1, _arg2);
|
|
reply.writeNoException();
|
|
reply.writeInt(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_getInstallerForPackage:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
data.enforceNoDataAvail();
|
|
java.lang.String _result = this.getInstallerForPackage(_arg0);
|
|
reply.writeNoException();
|
|
reply.writeString(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_getVersionCodeForPackage:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
data.enforceNoDataAvail();
|
|
long _result = this.getVersionCodeForPackage(_arg0);
|
|
reply.writeNoException();
|
|
reply.writeLong(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_isAudioPlaybackCaptureAllowed:
|
|
{
|
|
java.lang.String[] _arg0;
|
|
_arg0 = data.createStringArray();
|
|
data.enforceNoDataAvail();
|
|
boolean[] _result = this.isAudioPlaybackCaptureAllowed(_arg0);
|
|
reply.writeNoException();
|
|
reply.writeBooleanArray(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_getLocationFlags:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
data.enforceNoDataAvail();
|
|
int _result = this.getLocationFlags(_arg0);
|
|
reply.writeNoException();
|
|
reply.writeInt(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_getTargetSdkVersionForPackage:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
data.enforceNoDataAvail();
|
|
int _result = this.getTargetSdkVersionForPackage(_arg0);
|
|
reply.writeNoException();
|
|
reply.writeInt(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_getModuleMetadataPackageName:
|
|
{
|
|
java.lang.String _result = this.getModuleMetadataPackageName();
|
|
reply.writeNoException();
|
|
reply.writeString(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_hasSha256SigningCertificate:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
byte[] _arg1;
|
|
_arg1 = data.createByteArray();
|
|
data.enforceNoDataAvail();
|
|
boolean _result = this.hasSha256SigningCertificate(_arg0, _arg1);
|
|
reply.writeNoException();
|
|
reply.writeBoolean(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_isPackageDebuggable:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
data.enforceNoDataAvail();
|
|
boolean _result = this.isPackageDebuggable(_arg0);
|
|
reply.writeNoException();
|
|
reply.writeBoolean(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_hasSystemFeature:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
int _arg1;
|
|
_arg1 = data.readInt();
|
|
data.enforceNoDataAvail();
|
|
boolean _result = this.hasSystemFeature(_arg0, _arg1);
|
|
reply.writeNoException();
|
|
reply.writeBoolean(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_registerStagedApexObserver:
|
|
{
|
|
android.content.pm.IStagedApexObserver _arg0;
|
|
_arg0 = android.content.pm.IStagedApexObserver.Stub.asInterface(data.readStrongBinder());
|
|
data.enforceNoDataAvail();
|
|
this.registerStagedApexObserver(_arg0);
|
|
reply.writeNoException();
|
|
break;
|
|
}
|
|
case TRANSACTION_unregisterStagedApexObserver:
|
|
{
|
|
android.content.pm.IStagedApexObserver _arg0;
|
|
_arg0 = android.content.pm.IStagedApexObserver.Stub.asInterface(data.readStrongBinder());
|
|
data.enforceNoDataAvail();
|
|
this.unregisterStagedApexObserver(_arg0);
|
|
reply.writeNoException();
|
|
break;
|
|
}
|
|
case TRANSACTION_getStagedApexModuleNames:
|
|
{
|
|
java.lang.String[] _result = this.getStagedApexModuleNames();
|
|
reply.writeNoException();
|
|
reply.writeStringArray(_result);
|
|
break;
|
|
}
|
|
case TRANSACTION_getStagedApexInfo:
|
|
{
|
|
java.lang.String _arg0;
|
|
_arg0 = data.readString();
|
|
data.enforceNoDataAvail();
|
|
android.content.pm.StagedApexInfo _result = this.getStagedApexInfo(_arg0);
|
|
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.content.pm.IPackageManagerNative
|
|
{
|
|
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;
|
|
}
|
|
/**
|
|
* Returns a set of names for the given UIDs.
|
|
* IMPORTANT: Unlike the Java version of this API, unknown UIDs are
|
|
* not represented by 'null's. Instead, they are represented by empty
|
|
* strings.
|
|
*/
|
|
@Override public java.lang.String[] getNamesForUids(int[] uids) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
java.lang.String[] _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeIntArray(uids);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getNamesForUids, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.createStringArray();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Return the UID associated with the given package name.
|
|
* Note that the same package will have different UIDs under different UserHandle on
|
|
* the same device.
|
|
* @param packageName The full name (i.e. com.google.apps.contacts) of the desired package.
|
|
* @param flags Additional option flags to modify the data returned.
|
|
* @param userId The user handle identifier to look up the package under.
|
|
* @return Returns an integer UID who owns the given package name, or -1 if no such package is
|
|
* available to the caller.
|
|
*/
|
|
@Override public int getPackageUid(java.lang.String packageName, long flags, int userId) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
int _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(packageName);
|
|
_data.writeLong(flags);
|
|
_data.writeInt(userId);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getPackageUid, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readInt();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Returns the name of the installer (a package) which installed the named
|
|
* package. Preloaded packages return the string "preload". Sideloaded packages
|
|
* return an empty string. Unknown or unknowable are returned as empty strings.
|
|
*/
|
|
@Override public java.lang.String getInstallerForPackage(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
java.lang.String _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(packageName);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getInstallerForPackage, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readString();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Returns the version code of the named package.
|
|
* Unknown or unknowable versions are returned as 0.
|
|
*/
|
|
@Override public long getVersionCodeForPackage(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
long _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(packageName);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getVersionCodeForPackage, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readLong();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Return if each app, identified by its package name allows its audio to be recorded.
|
|
* Unknown packages are mapped to false.
|
|
*/
|
|
@Override public boolean[] isAudioPlaybackCaptureAllowed(java.lang.String[] packageNames) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
boolean[] _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeStringArray(packageNames);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_isAudioPlaybackCaptureAllowed, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.createBooleanArray();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Returns a set of bitflags about package location.
|
|
* LOCATION_SYSTEM: getApplicationInfo(packageName).isSystemApp()
|
|
* LOCATION_VENDOR: getApplicationInfo(packageName).isVendor()
|
|
* LOCATION_PRODUCT: getApplicationInfo(packageName).isProduct()
|
|
*/
|
|
@Override public int getLocationFlags(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
int _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(packageName);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getLocationFlags, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readInt();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Returns the target SDK version for the given package.
|
|
* Unknown packages will cause the call to fail. The caller must check the
|
|
* returned Status before using the result of this function.
|
|
*/
|
|
@Override public int getTargetSdkVersionForPackage(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
int _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(packageName);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getTargetSdkVersionForPackage, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readInt();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Returns the name of module metadata package, or empty string if device doesn't have such
|
|
* package.
|
|
*/
|
|
@Override public java.lang.String getModuleMetadataPackageName() throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
java.lang.String _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getModuleMetadataPackageName, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readString();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Returns true if the package has the SHA 256 version of the signing certificate.
|
|
* @see PackageManager#hasSigningCertificate(String, byte[], int), where type
|
|
* has been set to {@link PackageManager#CERT_INPUT_SHA256}.
|
|
*/
|
|
@Override public boolean hasSha256SigningCertificate(java.lang.String packageName, byte[] certificate) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
boolean _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(packageName);
|
|
_data.writeByteArray(certificate);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_hasSha256SigningCertificate, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readBoolean();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Returns the debug flag for the given package.
|
|
* Unknown packages will cause the call to fail.
|
|
*/
|
|
@Override public boolean isPackageDebuggable(java.lang.String packageName) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
boolean _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(packageName);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_isPackageDebuggable, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readBoolean();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Check whether the given feature name and version is one of the available
|
|
* features as returned by {@link PackageManager#getSystemAvailableFeatures()}. Since
|
|
* features are defined to always be backwards compatible, this returns true
|
|
* if the available feature version is greater than or equal to the
|
|
* requested version.
|
|
*/
|
|
@Override public boolean hasSystemFeature(java.lang.String featureName, int version) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
boolean _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(featureName);
|
|
_data.writeInt(version);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_hasSystemFeature, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readBoolean();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/** Register a observer for change in set of staged APEX ready for installation */
|
|
@Override public void registerStagedApexObserver(android.content.pm.IStagedApexObserver observer) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeStrongInterface(observer);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_registerStagedApexObserver, _data, _reply, 0);
|
|
_reply.readException();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
}
|
|
/**
|
|
* Unregister an existing staged apex observer.
|
|
* This does nothing if this observer was not already registered.
|
|
*/
|
|
@Override public void unregisterStagedApexObserver(android.content.pm.IStagedApexObserver observer) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeStrongInterface(observer);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_unregisterStagedApexObserver, _data, _reply, 0);
|
|
_reply.readException();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
}
|
|
/** Get APEX module names of all APEX that are staged ready for installation */
|
|
@Override public java.lang.String[] getStagedApexModuleNames() throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
java.lang.String[] _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getStagedApexModuleNames, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.createStringArray();
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
/**
|
|
* Get information of APEX which is staged ready for installation.
|
|
* Returns null if no such APEX is found.
|
|
*/
|
|
@Override public android.content.pm.StagedApexInfo getStagedApexInfo(java.lang.String moduleName) throws android.os.RemoteException
|
|
{
|
|
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
|
|
android.os.Parcel _reply = android.os.Parcel.obtain();
|
|
android.content.pm.StagedApexInfo _result;
|
|
try {
|
|
_data.writeInterfaceToken(DESCRIPTOR);
|
|
_data.writeString(moduleName);
|
|
boolean _status = mRemote.transact(Stub.TRANSACTION_getStagedApexInfo, _data, _reply, 0);
|
|
_reply.readException();
|
|
_result = _reply.readTypedObject(android.content.pm.StagedApexInfo.CREATOR);
|
|
}
|
|
finally {
|
|
_reply.recycle();
|
|
_data.recycle();
|
|
}
|
|
return _result;
|
|
}
|
|
}
|
|
/** @hide */
|
|
public static final java.lang.String DESCRIPTOR = "android.content.pm.IPackageManagerNative";
|
|
static final int TRANSACTION_getNamesForUids = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
|
|
static final int TRANSACTION_getPackageUid = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
|
|
static final int TRANSACTION_getInstallerForPackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
|
|
static final int TRANSACTION_getVersionCodeForPackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3);
|
|
static final int TRANSACTION_isAudioPlaybackCaptureAllowed = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4);
|
|
static final int TRANSACTION_getLocationFlags = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5);
|
|
static final int TRANSACTION_getTargetSdkVersionForPackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6);
|
|
static final int TRANSACTION_getModuleMetadataPackageName = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
|
|
static final int TRANSACTION_hasSha256SigningCertificate = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8);
|
|
static final int TRANSACTION_isPackageDebuggable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9);
|
|
static final int TRANSACTION_hasSystemFeature = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10);
|
|
static final int TRANSACTION_registerStagedApexObserver = (android.os.IBinder.FIRST_CALL_TRANSACTION + 11);
|
|
static final int TRANSACTION_unregisterStagedApexObserver = (android.os.IBinder.FIRST_CALL_TRANSACTION + 12);
|
|
static final int TRANSACTION_getStagedApexModuleNames = (android.os.IBinder.FIRST_CALL_TRANSACTION + 13);
|
|
static final int TRANSACTION_getStagedApexInfo = (android.os.IBinder.FIRST_CALL_TRANSACTION + 14);
|
|
}
|
|
/** ApplicationInfo.isSystemApp() == true */
|
|
public static final int LOCATION_SYSTEM = 1;
|
|
/** ApplicationInfo.isVendor() == true */
|
|
public static final int LOCATION_VENDOR = 2;
|
|
/** ApplicationInfo.isProduct() == true */
|
|
public static final int LOCATION_PRODUCT = 4;
|
|
/**
|
|
* Returns a set of names for the given UIDs.
|
|
* IMPORTANT: Unlike the Java version of this API, unknown UIDs are
|
|
* not represented by 'null's. Instead, they are represented by empty
|
|
* strings.
|
|
*/
|
|
public java.lang.String[] getNamesForUids(int[] uids) throws android.os.RemoteException;
|
|
/**
|
|
* Return the UID associated with the given package name.
|
|
* Note that the same package will have different UIDs under different UserHandle on
|
|
* the same device.
|
|
* @param packageName The full name (i.e. com.google.apps.contacts) of the desired package.
|
|
* @param flags Additional option flags to modify the data returned.
|
|
* @param userId The user handle identifier to look up the package under.
|
|
* @return Returns an integer UID who owns the given package name, or -1 if no such package is
|
|
* available to the caller.
|
|
*/
|
|
public int getPackageUid(java.lang.String packageName, long flags, int userId) throws android.os.RemoteException;
|
|
/**
|
|
* Returns the name of the installer (a package) which installed the named
|
|
* package. Preloaded packages return the string "preload". Sideloaded packages
|
|
* return an empty string. Unknown or unknowable are returned as empty strings.
|
|
*/
|
|
public java.lang.String getInstallerForPackage(java.lang.String packageName) throws android.os.RemoteException;
|
|
/**
|
|
* Returns the version code of the named package.
|
|
* Unknown or unknowable versions are returned as 0.
|
|
*/
|
|
public long getVersionCodeForPackage(java.lang.String packageName) throws android.os.RemoteException;
|
|
/**
|
|
* Return if each app, identified by its package name allows its audio to be recorded.
|
|
* Unknown packages are mapped to false.
|
|
*/
|
|
public boolean[] isAudioPlaybackCaptureAllowed(java.lang.String[] packageNames) throws android.os.RemoteException;
|
|
/**
|
|
* Returns a set of bitflags about package location.
|
|
* LOCATION_SYSTEM: getApplicationInfo(packageName).isSystemApp()
|
|
* LOCATION_VENDOR: getApplicationInfo(packageName).isVendor()
|
|
* LOCATION_PRODUCT: getApplicationInfo(packageName).isProduct()
|
|
*/
|
|
public int getLocationFlags(java.lang.String packageName) throws android.os.RemoteException;
|
|
/**
|
|
* Returns the target SDK version for the given package.
|
|
* Unknown packages will cause the call to fail. The caller must check the
|
|
* returned Status before using the result of this function.
|
|
*/
|
|
public int getTargetSdkVersionForPackage(java.lang.String packageName) throws android.os.RemoteException;
|
|
/**
|
|
* Returns the name of module metadata package, or empty string if device doesn't have such
|
|
* package.
|
|
*/
|
|
public java.lang.String getModuleMetadataPackageName() throws android.os.RemoteException;
|
|
/**
|
|
* Returns true if the package has the SHA 256 version of the signing certificate.
|
|
* @see PackageManager#hasSigningCertificate(String, byte[], int), where type
|
|
* has been set to {@link PackageManager#CERT_INPUT_SHA256}.
|
|
*/
|
|
public boolean hasSha256SigningCertificate(java.lang.String packageName, byte[] certificate) throws android.os.RemoteException;
|
|
/**
|
|
* Returns the debug flag for the given package.
|
|
* Unknown packages will cause the call to fail.
|
|
*/
|
|
public boolean isPackageDebuggable(java.lang.String packageName) throws android.os.RemoteException;
|
|
/**
|
|
* Check whether the given feature name and version is one of the available
|
|
* features as returned by {@link PackageManager#getSystemAvailableFeatures()}. Since
|
|
* features are defined to always be backwards compatible, this returns true
|
|
* if the available feature version is greater than or equal to the
|
|
* requested version.
|
|
*/
|
|
public boolean hasSystemFeature(java.lang.String featureName, int version) throws android.os.RemoteException;
|
|
/** Register a observer for change in set of staged APEX ready for installation */
|
|
public void registerStagedApexObserver(android.content.pm.IStagedApexObserver observer) throws android.os.RemoteException;
|
|
/**
|
|
* Unregister an existing staged apex observer.
|
|
* This does nothing if this observer was not already registered.
|
|
*/
|
|
public void unregisterStagedApexObserver(android.content.pm.IStagedApexObserver observer) throws android.os.RemoteException;
|
|
/** Get APEX module names of all APEX that are staged ready for installation */
|
|
public java.lang.String[] getStagedApexModuleNames() throws android.os.RemoteException;
|
|
/**
|
|
* Get information of APEX which is staged ready for installation.
|
|
* Returns null if no such APEX is found.
|
|
*/
|
|
public android.content.pm.StagedApexInfo getStagedApexInfo(java.lang.String moduleName) throws android.os.RemoteException;
|
|
}
|