mirror of
https://github.com/TeamVanced/VancedMicroG
synced 2025-01-02 15:45:56 +01:00
Update base
This commit is contained in:
parent
0bdcb1319b
commit
050afb8f87
@ -29,16 +29,19 @@ import com.google.android.gms.common.internal.IGmsServiceBroker;
|
|||||||
|
|
||||||
import org.microg.gms.common.GmsService;
|
import org.microg.gms.common.GmsService;
|
||||||
|
|
||||||
|
import java.io.FileDescriptor;
|
||||||
|
import java.io.PrintWriter;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
|
||||||
public abstract class BaseService extends LifecycleService {
|
public abstract class BaseService extends LifecycleService {
|
||||||
private final IGmsServiceBroker broker;
|
private final IGmsServiceBroker broker;
|
||||||
|
private final EnumSet<GmsService> services;
|
||||||
protected final String TAG;
|
protected final String TAG;
|
||||||
|
|
||||||
public BaseService(String tag, GmsService supportedService, GmsService... supportedServices) {
|
public BaseService(String tag, GmsService supportedService, GmsService... supportedServices) {
|
||||||
this.TAG = tag;
|
this.TAG = tag;
|
||||||
EnumSet<GmsService> services = EnumSet.of(supportedService);
|
services = EnumSet.of(supportedService);
|
||||||
services.addAll(Arrays.asList(supportedServices));
|
services.addAll(Arrays.asList(supportedServices));
|
||||||
broker = new AbstractGmsServiceBroker(services) {
|
broker = new AbstractGmsServiceBroker(services) {
|
||||||
@Override
|
@Override
|
||||||
@ -61,5 +64,10 @@ public abstract class BaseService extends LifecycleService {
|
|||||||
return broker.asBinder();
|
return broker.asBinder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
|
||||||
|
writer.println(TAG + " providing services " + services.toString());
|
||||||
|
}
|
||||||
|
|
||||||
public abstract void handleServiceRequest(IGmsCallbacks callback, GetServiceRequest request, GmsService service) throws RemoteException;
|
public abstract void handleServiceRequest(IGmsCallbacks callback, GetServiceRequest request, GmsService service) throws RemoteException;
|
||||||
}
|
}
|
||||||
|
@ -137,6 +137,30 @@ public class PackageUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public static byte[] firstSignatureDigestBytes(Context context, String packageName) {
|
||||||
|
return firstSignatureDigestBytes(context.getPackageManager(), packageName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public static byte[] firstSignatureDigestBytes(PackageManager packageManager, String packageName) {
|
||||||
|
final PackageInfo info;
|
||||||
|
try {
|
||||||
|
info = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (info != null && info.signatures != null && info.signatures.length > 0) {
|
||||||
|
for (Signature sig : info.signatures) {
|
||||||
|
byte[] digest = sha1bytes(sig.toByteArray());
|
||||||
|
if (digest != null) {
|
||||||
|
return digest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static String getCallingPackage(Context context) {
|
public static String getCallingPackage(Context context) {
|
||||||
int callingUid = Binder.getCallingUid(), callingPid = Binder.getCallingPid();
|
int callingUid = Binder.getCallingUid(), callingPid = Binder.getCallingPid();
|
||||||
@ -311,6 +335,19 @@ public class PackageUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static byte[] sha1bytes(byte[] bytes) {
|
||||||
|
MessageDigest md;
|
||||||
|
try {
|
||||||
|
md = MessageDigest.getInstance("SHA1");
|
||||||
|
} catch (final NoSuchAlgorithmException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (md != null) {
|
||||||
|
return md.digest(bytes);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public static int versionCode(Context context, String packageName) {
|
public static int versionCode(Context context, String packageName) {
|
||||||
try {
|
try {
|
||||||
return context.getPackageManager().getPackageInfo(packageName, 0).versionCode;
|
return context.getPackageManager().getPackageInfo(packageName, 0).versionCode;
|
||||||
|
@ -6,16 +6,19 @@
|
|||||||
package org.microg.gms.utils
|
package org.microg.gms.utils
|
||||||
|
|
||||||
import android.os.Binder
|
import android.os.Binder
|
||||||
|
import android.os.IBinder
|
||||||
import android.os.Parcel
|
import android.os.Parcel
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
|
||||||
fun warnOnTransactionIssues(tag: String, code: Int, reply: Parcel?, flags: Int, base: () -> Boolean): Boolean {
|
private const val TAG = "BinderUtils"
|
||||||
|
|
||||||
|
fun IBinder.warnOnTransactionIssues(code: Int, reply: Parcel?, flags: Int, base: () -> Boolean): Boolean {
|
||||||
if (base.invoke()) {
|
if (base.invoke()) {
|
||||||
if ((flags and Binder.FLAG_ONEWAY) > 0 && (reply?.dataSize() ?: 0) > 0) {
|
if ((flags and Binder.FLAG_ONEWAY) > 0 && (reply?.dataSize() ?: 0) > 0) {
|
||||||
Log.w(tag, "onTransact[$code] is oneway, but returned data")
|
Log.w(TAG, "Method $code in $interfaceDescriptor is oneway, but returned data")
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
Log.w(tag, "onTransact[$code] is not processed.")
|
Log.w(TAG, "Unknown method $code in $interfaceDescriptor, skipping")
|
||||||
return (flags and Binder.FLAG_ONEWAY) > 0 // Don't return false on oneway transaction to suppress warning
|
return (flags and Binder.FLAG_ONEWAY) > 0 // Don't return false on oneway transaction to suppress warning
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ open class PackageManagerWrapper(private val wrapped: PackageManager) : PackageM
|
|||||||
return wrapped.getPermissionInfo(permName, flags)
|
return wrapped.getPermissionInfo(permName, flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun queryPermissionsByGroup(permissionGroup: String, flags: Int): MutableList<PermissionInfo> {
|
override fun queryPermissionsByGroup(permissionGroup: String?, flags: Int): MutableList<PermissionInfo> {
|
||||||
return wrapped.queryPermissionsByGroup(permissionGroup, flags)
|
return wrapped.queryPermissionsByGroup(permissionGroup, flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ public abstract class GmsClient<I extends IInterface> implements ApiClient {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean isConnected() {
|
public synchronized boolean isConnected() {
|
||||||
return state == ConnectionState.CONNECTED || state == ConnectionState.PSEUDO_CONNECTED;
|
return (state == ConnectionState.CONNECTED && serviceInterface != null && serviceInterface.asBinder().isBinderAlive() ) || state == ConnectionState.PSEUDO_CONNECTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -7,6 +7,7 @@ package org.microg.gms.common.api;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.DeadObjectException;
|
||||||
|
|
||||||
import com.google.android.gms.common.ConnectionResult;
|
import com.google.android.gms.common.ConnectionResult;
|
||||||
import com.google.android.gms.common.api.Api;
|
import com.google.android.gms.common.api.Api;
|
||||||
|
@ -32,11 +32,11 @@ import org.microg.safeparcel.SafeParceled;
|
|||||||
@PublicApi
|
@PublicApi
|
||||||
public final class Status extends AutoSafeParcelable implements Result {
|
public final class Status extends AutoSafeParcelable implements Result {
|
||||||
@PublicApi(exclude = true)
|
@PublicApi(exclude = true)
|
||||||
public static final Status INTERNAL_ERROR = new Status(CommonStatusCodes.INTERNAL_ERROR);
|
public static final Status INTERNAL_ERROR = new Status(CommonStatusCodes.INTERNAL_ERROR, "Internal error");
|
||||||
@PublicApi(exclude = true)
|
@PublicApi(exclude = true)
|
||||||
public static final Status CANCELED = new Status(CommonStatusCodes.CANCELED);
|
public static final Status CANCELED = new Status(CommonStatusCodes.CANCELED, "Cancelled");
|
||||||
@PublicApi(exclude = true)
|
@PublicApi(exclude = true)
|
||||||
public static final Status SUCCESS = new Status(CommonStatusCodes.SUCCESS);
|
public static final Status SUCCESS = new Status(CommonStatusCodes.SUCCESS, "Success");
|
||||||
|
|
||||||
@SafeParceled(1000)
|
@SafeParceled(1000)
|
||||||
private int versionCode = 1;
|
private int versionCode = 1;
|
||||||
|
@ -57,6 +57,10 @@ public class GetServiceRequest extends AutoSafeParcelable {
|
|||||||
private boolean field12;
|
private boolean field12;
|
||||||
@Field(13)
|
@Field(13)
|
||||||
private int field13;
|
private int field13;
|
||||||
|
@Field(14)
|
||||||
|
private boolean field14;
|
||||||
|
@Field(15)
|
||||||
|
private String field15;
|
||||||
|
|
||||||
private GetServiceRequest() {
|
private GetServiceRequest() {
|
||||||
serviceId = -1;
|
serviceId = -1;
|
||||||
|
@ -33,7 +33,7 @@ public enum GmsService {
|
|||||||
ADDRESS(12, "com.google.android.gms.identity.service.BIND"),
|
ADDRESS(12, "com.google.android.gms.identity.service.BIND"),
|
||||||
CAR(13, "com.google.android.gms.car.service.START"),
|
CAR(13, "com.google.android.gms.car.service.START"),
|
||||||
WEARABLE(14, "com.google.android.gms.wearable.BIND"),
|
WEARABLE(14, "com.google.android.gms.wearable.BIND"),
|
||||||
AUTH(16, "com.google.android.gms.auth.service.START"),
|
AUTH_PROXY(16, "com.google.android.gms.auth.service.START"),
|
||||||
FITNESS(17, "com.google.android.gms.fitness.GoogleFitnessService.START"),
|
FITNESS(17, "com.google.android.gms.fitness.GoogleFitnessService.START"),
|
||||||
REMINDERS(18, "com.google.android.gms.reminders.service.START"),
|
REMINDERS(18, "com.google.android.gms.reminders.service.START"),
|
||||||
LIGHTWEIGHT_INDEX(19, "com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE"),
|
LIGHTWEIGHT_INDEX(19, "com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE"),
|
||||||
@ -103,9 +103,12 @@ public enum GmsService {
|
|||||||
APP_INDEXING(113),
|
APP_INDEXING(113),
|
||||||
GASS(116, "com.google.android.gms.gass.START"),
|
GASS(116, "com.google.android.gms.gass.START"),
|
||||||
WORK_ACCOUNT(120),
|
WORK_ACCOUNT(120),
|
||||||
|
INSTANT_APPS(121, "com.google.android.gms.instantapps.START"),
|
||||||
CAST_FIRSTPATY(122, "com.google.android.gms.cast.firstparty.START"),
|
CAST_FIRSTPATY(122, "com.google.android.gms.cast.firstparty.START"),
|
||||||
AD_CACHE(123, "com.google.android.gms.ads.service.CACHE"),
|
AD_CACHE(123, "com.google.android.gms.ads.service.CACHE"),
|
||||||
|
CRYPT_AUTH(129, "com.google.android.gms.auth.cryptauth.cryptauthservice.START"),
|
||||||
DYNAMIC_LINKS(131, "com.google.firebase.dynamiclinks.service.START"),
|
DYNAMIC_LINKS(131, "com.google.firebase.dynamiclinks.service.START"),
|
||||||
|
FONTS(132, "com.google.android.gms.fonts.service.START"),
|
||||||
ROMANESCO(135, "com.google.android.gms.romanesco.service.START"),
|
ROMANESCO(135, "com.google.android.gms.romanesco.service.START"),
|
||||||
TRAINER(139, "com.google.android.gms.learning.trainer.START"),
|
TRAINER(139, "com.google.android.gms.learning.trainer.START"),
|
||||||
FIDO2_REGULAR(148, "com.google.android.gms.fido.fido2.regular.START"),
|
FIDO2_REGULAR(148, "com.google.android.gms.fido.fido2.regular.START"),
|
||||||
@ -116,14 +119,19 @@ public enum GmsService {
|
|||||||
AUDIT(154, "com.google.android.gms.audit.service.START"),
|
AUDIT(154, "com.google.android.gms.audit.service.START"),
|
||||||
SYSTEM_UPDATE(157, "com.google.android.gms.update.START_API_SERVICE"),
|
SYSTEM_UPDATE(157, "com.google.android.gms.update.START_API_SERVICE"),
|
||||||
USER_LOCATION(163, "com.google.android.gms.userlocation.service.START"),
|
USER_LOCATION(163, "com.google.android.gms.userlocation.service.START"),
|
||||||
|
AD_HTTP(166, "com.google.android.gms.ads.service.HTTP"),
|
||||||
LANGUAGE_PROFILE(167, "com.google.android.gms.languageprofile.service.START"),
|
LANGUAGE_PROFILE(167, "com.google.android.gms.languageprofile.service.START"),
|
||||||
MDNS(168, "com.google.android.gms.mdns.service.START"),
|
MDNS(168, "com.google.android.gms.mdns.service.START"),
|
||||||
FIDO2_ZEROPARTY(180, "com.google.android.gms.fido.fido2.zeroparty.START"),
|
FIDO2_ZEROPARTY(180, "com.google.android.gms.fido.fido2.zeroparty.START"),
|
||||||
G1_RESTORE(181, "com.google.android.gms.backup.G1_RESTORE"),
|
G1_RESTORE(181, "com.google.android.gms.backup.G1_RESTORE"),
|
||||||
G1_BACKUP(182, "com.google.android.gms.backup.G1_BACKUP"),
|
G1_BACKUP(182, "com.google.android.gms.backup.G1_BACKUP"),
|
||||||
|
PAYSE(188, "com.google.android.gms.payse.service.BIND"),
|
||||||
|
RCS(189, "com.google.android.gms.rcs.START"),
|
||||||
CARRIER_AUTH(191, "com.google.android.gms.carrierauth.service.START"),
|
CARRIER_AUTH(191, "com.google.android.gms.carrierauth.service.START"),
|
||||||
SYSTEM_UPDATE_SINGLE_UESR(192, "com.google.android.gms.update.START_SINGLE_USER_API_SERVICE"),
|
SYSTEM_UPDATE_SINGLE_UESR(192, "com.google.android.gms.update.START_SINGLE_USER_API_SERVICE"),
|
||||||
APP_USAGE(193, "com.google.android.gms.appusage.service.START"),
|
APP_USAGE(193, "com.google.android.gms.appusage.service.START"),
|
||||||
|
NEARBY_SHARING_2(194, "com.google.android.gms.nearby.sharing.START_SERVICE"),
|
||||||
|
AD_CONSENT_LOOKUP(195, "com.google.android.gms.ads.service.CONSENT_LOOKUP"),
|
||||||
PHONE_INTERNAL(197, "com.google.android.gms.auth.api.phone.service.InternalService.START"),
|
PHONE_INTERNAL(197, "com.google.android.gms.auth.api.phone.service.InternalService.START"),
|
||||||
PAY(198, "com.google.android.gms.pay.service.BIND"),
|
PAY(198, "com.google.android.gms.pay.service.BIND"),
|
||||||
ASTERISM(199, "com.google.android.gms.asterism.service.START"),
|
ASTERISM(199, "com.google.android.gms.asterism.service.START"),
|
||||||
@ -137,12 +145,22 @@ public enum GmsService {
|
|||||||
SCHEDULER(218, "com.google.android.gms.scheduler.ACTION_PROXY_SCHEDULE"),
|
SCHEDULER(218, "com.google.android.gms.scheduler.ACTION_PROXY_SCHEDULE"),
|
||||||
AUTHORIZATION(219, "com.google.android.gms.auth.api.identity.service.authorization.START"),
|
AUTHORIZATION(219, "com.google.android.gms.auth.api.identity.service.authorization.START"),
|
||||||
FACS_SYNC(220, "com.google.android.gms.facs.internal.service.START"),
|
FACS_SYNC(220, "com.google.android.gms.facs.internal.service.START"),
|
||||||
CONFIG_SYNC(221, "com.google.android.gms.auth.config.service.START"),
|
AUTH_CONFIG_SYNC(221, "com.google.android.gms.auth.config.service.START"),
|
||||||
CREDENTIAL_SAVING(223, "com.google.android.gms.auth.api.identity.service.credentialsaving.START"),
|
CREDENTIAL_SAVING(223, "com.google.android.gms.auth.api.identity.service.credentialsaving.START"),
|
||||||
GOOGLE_AUTH(224, "com.google.android.gms.auth.account.authapi.START"),
|
GOOGLE_AUTH(224, "com.google.android.gms.auth.account.authapi.START"),
|
||||||
ENTERPRISE_LOADER(225, "com.google.android.gms.enterprise.loader.service.START"),
|
ENTERPRISE_LOADER(225, "com.google.android.gms.enterprise.loader.service.START"),
|
||||||
THUNDERBIRD(226, "com.google.android.gms.thunderbird.service.START"),
|
THUNDERBIRD(226, "com.google.android.gms.thunderbird.service.START"),
|
||||||
NEARBY_EXPOSURE(236, "com.google.android.gms.nearby.exposurenotification.START"),
|
NEARBY_EXPOSURE(236, "com.google.android.gms.nearby.exposurenotification.START"),
|
||||||
|
GMS_COMPLIANCE(257, "com.google.android.gms.gmscompliance.service.START"),
|
||||||
|
FIDO_SOURCE_DEVICE(262, "com.google.android.gms.fido.sourcedevice.service.START"),
|
||||||
|
FAST_PAIR(265, "com.google.android.gms.nearby.fastpair.START"),
|
||||||
|
MATCHSTICK_LIGHTER(268, "com.google.android.gms.matchstick.lighter.service.START"),
|
||||||
|
FIDO_TARGET_DEVICE_INTERNAL(269, "com.google.android.gms.fido.targetdevice.internal_service.START"),
|
||||||
|
TELEMETRY(270, "com.google.android.gms.common.telemetry.service.START"),
|
||||||
|
SECOND_DEVICE_AUTH(275, "com.google.android.gms.setup.auth.SecondDeviceAuth.START"),
|
||||||
|
LOCATION_SHARING_REPORTER(277, "com.google.android.gms.locationsharingreporter.service.START"),
|
||||||
|
OCR(279, "com.google.android.gms.ocr.service.START"),
|
||||||
|
OCR_INTERNAL(281, "com.google.android.gms.ocr.service.internal.START"),
|
||||||
;
|
;
|
||||||
|
|
||||||
public int SERVICE_ID;
|
public int SERVICE_ID;
|
||||||
|
Loading…
Reference in New Issue
Block a user