| /* |
| * This file is auto-generated. DO NOT MODIFY. |
| */ |
| 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; |
| } |
| /** |
| * 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. */ |
| 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); |
| } |
| switch (code) |
| { |
| case 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_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; |
| } |
| /** |
| * 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; |
| } |
| } |
| public static final java.lang.String DESCRIPTOR = "android$content$pm$IPackageManagerNative".replace('$', '.'); |
| static final int TRANSACTION_getNamesForUids = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); |
| static final int TRANSACTION_getInstallerForPackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); |
| static final int TRANSACTION_getVersionCodeForPackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); |
| static final int TRANSACTION_isAudioPlaybackCaptureAllowed = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); |
| static final int TRANSACTION_getLocationFlags = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4); |
| static final int TRANSACTION_getTargetSdkVersionForPackage = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5); |
| static final int TRANSACTION_getModuleMetadataPackageName = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6); |
| static final int TRANSACTION_hasSha256SigningCertificate = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7); |
| static final int TRANSACTION_isPackageDebuggable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8); |
| static final int TRANSACTION_hasSystemFeature = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9); |
| static final int TRANSACTION_registerStagedApexObserver = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10); |
| static final int TRANSACTION_unregisterStagedApexObserver = (android.os.IBinder.FIRST_CALL_TRANSACTION + 11); |
| static final int TRANSACTION_getStagedApexModuleNames = (android.os.IBinder.FIRST_CALL_TRANSACTION + 12); |
| static final int TRANSACTION_getStagedApexInfo = (android.os.IBinder.FIRST_CALL_TRANSACTION + 13); |
| } |
| /** 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; |
| /** |
| * 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; |
| } |