Merge pull request #170 from Oizaro/master

MicroG 0.2.23.220217
This commit is contained in:
KevinX8 2022-01-31 12:57:15 +00:00 committed by GitHub
commit e6d706456e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
306 changed files with 4279 additions and 1474 deletions

View File

@ -22,20 +22,20 @@ LOCAL_PACKAGE_NAME := GmsCore
gmscore_root := $(LOCAL_PATH)
gmscore_dir := play-services-core
gmscore_out := $(TARGET_COMMON_OUT_ROOT)/obj/APPS/$(LOCAL_MODULE)_intermediates
gmscore_build := $(gmscore_root)/$(gmscore_dir)/build
gmscore_apk := build/outputs/apk/release/play-services-core-release-unsigned.apk
gmscore_build := $(gmscore_dir)/build
gmscore_apk := $(gmscore_build)/outputs/apk/release/play-services-core-release-unsigned.apk
$(gmscore_root)/$(gmscore_dir)/$(gmscore_apk):
rm -Rf $(gmscore_build)
$(gmscore_root)/$(gmscore_apk):
rm -Rf $(gmscore_root)/$(gmscore_build)
mkdir -p $(ANDROID_BUILD_TOP)/$(gmscore_out)
ln -s $(ANDROID_BUILD_TOP)/$(gmscore_out) $(ANDROID_BUILD_TOP)/$(gmscore_build)
ln -s $(ANDROID_BUILD_TOP)/$(gmscore_out) $(ANDROID_BUILD_TOP)/$(gmscore_root)/$(gmscore_build)
echo "sdk.dir=$(ANDROID_HOME)" > $(gmscore_root)/local.properties
cd $(gmscore_root) && git submodule update --recursive --init
cd $(gmscore_root)/$(gmscore_dir) && JAVA_TOOL_OPTIONS="$(JAVA_TOOL_OPTIONS) -Dfile.encoding=UTF8" ../gradlew assembleRelease
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(gmscore_dir)/$(gmscore_apk)
LOCAL_SRC_FILES := $(gmscore_apk)
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
include $(BUILD_PREBUILT)

121
LICENSES/CC0-1.0.txt Normal file
View File

@ -0,0 +1,121 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

View File

@ -4,31 +4,9 @@
*/
buildscript {
ext.cronetVersion = '91.0.4472.120.1'
ext.safeParcelVersion = '1.7.0'
ext.kotlinVersion = '1.4.32'
ext.coroutineVersion = '1.3.8'
ext.annotationVersion = '1.2.0'
ext.appcompatVersion = '1.2.0'
ext.fragmentVersion = '1.3.0'
ext.lifecycleVersion = '2.3.1'
ext.mediarouterVersion = '1.2.2'
ext.navigationVersion = '2.3.5'
ext.preferenceVersion = '1.1.1'
ext.recyclerviewVersion = '1.1.0'
ext.supportLibraryVersion = "28.0.0"
ext.wireVersion = '3.2.2'
ext.androidBuildGradleVersion = "4.1.0"
ext.androidBuildVersionTools = "30.0.2"
ext.androidMinSdk = 21
ext.androidTargetSdk = 29
ext.androidCompileSdk = 30
ext.androidMinSdk = 23
ext.androidTargetSdk = 30
ext.androidCompileSdk = 31
repositories {
jcenter()
@ -36,9 +14,9 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "com.squareup.wire:wire-gradle-plugin:$wireVersion"
classpath 'com.android.tools.build:gradle:7.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
classpath "com.squareup.wire:wire-gradle-plugin:3.2.2"
}
}
@ -46,8 +24,8 @@ allprojects {
apply plugin: 'idea'
group = 'org.microg.gms'
version = "0.2.22.212658"
ext.appVersionCode = 212658001
version = "0.2.23.220217"
ext.appVersionCode = 220217001
ext.isReleaseVersion = false
}

View File

@ -1,6 +1,6 @@
#Sat Sep 11 09:04:01 CEST 2021
#Wed Jan 26 02:00:21 CET 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

274
gradlew vendored
View File

@ -1,7 +1,8 @@
#!/usr/bin/env sh
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0
#
# Copyright 2015 the original author or authors.
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -17,67 +18,101 @@
#
##############################################################################
##
## Gradle start up script for UN*X
##
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
MAX_FD=maximum
warn () {
echo "$*"
}
} >&2
die () {
echo
echo "$*"
echo
exit 1
}
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@ -87,99 +122,112 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD="$JAVA_HOME/bin/java"
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
exec "$JAVACMD" "$@"
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"

View File

@ -18,7 +18,7 @@ apply plugin: 'com.android.library'
android {
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion androidMinSdk

View File

@ -0,0 +1,8 @@
package com.google.android.gms.auth.api.internal;
import com.google.android.gms.auth.api.proxy.ProxyResponse;
interface IAuthCallbacks {
void onProxyResponse(in ProxyResponse response) = 0;
void onSpatulaHeader(String spatulaHeader) = 1;
}

View File

@ -0,0 +1,11 @@
package com.google.android.gms.auth.api.internal;
import com.google.android.gms.auth.api.internal.IAuthCallbacks;
//import com.google.android.gms.auth.api.proxy.ProxyGrpcRequest;
import com.google.android.gms.auth.api.proxy.ProxyRequest;
interface IAuthService {
void performProxyRequest(IAuthCallbacks callbacks, in ProxyRequest request) = 0;
// void performProxyGrpcRequest(IAuthCallback callbacks, in ProxyGrpcRequest request) = 1;
void getSpatulaHeader(IAuthCallbacks callbacks) = 2;
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.auth.api.proxy;
parcelable ProxyRequest;

View File

@ -0,0 +1,3 @@
package com.google.android.gms.auth.api.proxy;
parcelable ProxyResponse;

View File

@ -0,0 +1,6 @@
package com.google.android.gms.auth.appcert;
interface IAppCertService {
boolean fetchDeviceKey() = 0;
String getSpatulaHeader(String packageName) = 1;
}

View File

@ -2,4 +2,6 @@ package com.google.android.gms.checkin.internal;
interface ICheckinService {
String getDeviceDataVersionInfo();
long getLastCheckinSuccessTime();
String getLastSimOperator();
}

View File

@ -1,7 +1,13 @@
package com.google.android.gms.clearcut.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.common.data.DataHolder;
interface IClearcutLoggerCallbacks {
oneway void onStatus(in Status status) = 0;
oneway void onLogResult(in Status status) = 0;
oneway void onForceUploadResult(in Status status) = 1;
oneway void onStartCollectForDebugResult(in Status status, long l) = 2;
oneway void onStopCollectForDebugResult(in Status status) = 3;
oneway void onCollectForDebugExpiryTime(in Status status, long l) = 4;
oneway void onLogEventParcelables(in DataHolder data) = 6;
}

View File

@ -4,5 +4,11 @@ import com.google.android.gms.clearcut.internal.IClearcutLoggerCallbacks;
import com.google.android.gms.clearcut.LogEventParcelable;
interface IClearcutLoggerService {
void log(IClearcutLoggerCallbacks callbacks, in LogEventParcelable event) = 0;
oneway void log(IClearcutLoggerCallbacks callbacks, in LogEventParcelable event) = 0;
oneway void forceUpload(IClearcutLoggerCallbacks callbacks) = 1;
oneway void startCollectForDebug(IClearcutLoggerCallbacks callbacks) = 2;
oneway void stopCollectForDebug(IClearcutLoggerCallbacks callbacks) = 3;
oneway void getCollectForDebugExpiryTime(IClearcutLoggerCallbacks callbacks) = 4;
oneway void getLogEventParcelablesLegacy(IClearcutLoggerCallbacks callbacks) = 5;
oneway void getLogEventParcelables(IClearcutLoggerCallbacks callbacks) = 6;
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.clearcut.internal;
parcelable PlayLoggerContext;

View File

@ -0,0 +1,55 @@
package com.google.android.gms.measurement.api.internal;
import com.google.android.gms.dynamic.IObjectWrapper;
import com.google.android.gms.measurement.api.internal.IBundleReceiver;
import com.google.android.gms.measurement.api.internal.IEventHandlerProxy;
import com.google.android.gms.measurement.api.internal.IStringProvider;
import com.google.android.gms.measurement.api.internal.InitializationParams;
interface IAppMeasurementDynamiteService {
void initialize(in IObjectWrapper context, in InitializationParams params, long timestamp) = 0;
void logEvent(String str, String str2, in Bundle bundle, boolean z, boolean z2, long timestamp) = 1;
void logEventAndBundle(String str, String str2, in Bundle bundle, IBundleReceiver receiver, long j) = 2;
void setUserProperty(String str, String str2, in IObjectWrapper obj, boolean z, long j) = 3;
void getUserProperties(String str, String str2, boolean z, IBundleReceiver receiver) = 4;
void getMaxUserProperties(String str, IBundleReceiver receiver) = 5;
void setUserId(String str, long j) = 6;
void setConditionalUserProperty(in Bundle bundle, long j) = 7;
void clearConditionalUserProperty(String str, String str2, in Bundle bundle) = 8;
void getConditionalUserProperties(String str, String str2, IBundleReceiver receiver) = 9;
void setMeasurementEnabled(boolean z, long j) = 10;
void resetAnalyticsData(long j) = 11;
void setMinimumSessionDuration(long j) = 12;
void setSessionTimeoutDuration(long j) = 13;
void setCurrentScreen(in IObjectWrapper obj, String str, String str2, long j) = 14;
void getCurrentScreenName(IBundleReceiver receiver) = 15;
void getCurrentScreenClass(IBundleReceiver receiver) = 16;
void setInstanceIdProvider(IStringProvider provider) = 17;
void getCachedAppInstanceId(IBundleReceiver receiver) = 18;
void getAppInstanceId(IBundleReceiver receiver) = 19;
void getGmpAppId(IBundleReceiver receiver) = 20;
void generateEventId(IBundleReceiver receiver) = 21;
void beginAdUnitExposure(String str, long j) = 22;
void endAdUnitExposure(String str, long j) = 23;
void onActivityStarted(in IObjectWrapper activity, long j) = 24;
void onActivityStopped(in IObjectWrapper activity, long j) = 25;
void onActivityCreated(in IObjectWrapper activity, in Bundle bundle, long j) = 26;
void onActivityDestroyed(in IObjectWrapper activity, long j) = 27;
void onActivityPaused(in IObjectWrapper activity, long j) = 28;
void onActivityResumed(in IObjectWrapper activity, long j) = 29;
void onActivitySaveInstanceState(in IObjectWrapper activity, IBundleReceiver receiver, long j) = 30;
void performAction(in Bundle bundle, IBundleReceiver receiver, long j) = 31;
void logHealthData(int i, String str, in IObjectWrapper obj, in IObjectWrapper obj2, in IObjectWrapper obj3) = 32;
void setEventInterceptor(IEventHandlerProxy proxy) = 33;
void registerOnMeasurementEventListener(IEventHandlerProxy proxy) = 34;
void unregisterOnMeasurementEventListener(IEventHandlerProxy proxy) = 35;
void initForTests(in Map map) = 36;
void getTestFlag(IBundleReceiver receiver, int i) = 37;
void setDataCollectionEnabled(boolean z) = 38;
void isDataCollectionEnabled(IBundleReceiver receiver) = 39;
void setDefaultEventParameters(in Bundle bundle) = 41;
void setConsent(in Bundle bundle, long j) = 43;
void setConsentThirdParty(in Bundle bundle, long j) = 44;
void clearMeasurementEnabled(long j) = 42;
}

View File

@ -0,0 +1,5 @@
package com.google.android.gms.measurement.api.internal;
interface IBundleReceiver {
void onBundle(in Bundle bundle);
}

View File

@ -0,0 +1,6 @@
package com.google.android.gms.measurement.api.internal;
interface IEventHandlerProxy {
void f1(String s1, String s2, in Bundle bundle, long j) = 0;
int f2() = 1;
}

View File

@ -0,0 +1,4 @@
package com.google.android.gms.measurement.api.internal;
interface IStringProvider {
}

View File

@ -0,0 +1,3 @@
package com.google.android.gms.measurement.api.internal;
parcelable InitializationParams;

View File

@ -3,23 +3,25 @@ package com.google.android.gms.measurement.internal;
import com.google.android.gms.measurement.internal.AppMetadata;
import com.google.android.gms.measurement.internal.ConditionalUserPropertyParcel;
import com.google.android.gms.measurement.internal.EventParcel;
import com.google.android.gms.measurement.internal.UserAttributeParcel;
interface IMeasurementService {
void f1(in EventParcel p0, in AppMetadata p1) = 0;
// void zza(UserAttributeParcel p0, AppMetadata p1) = 1;
void f4(in AppMetadata p0) = 3;
// void zza(EventParcel p0, String p1, String p2) = 4;
// void zzb(AppMetadata p0) = 5;
// List<UserAttributeParcel> zza(AppMetadata p0, boolean p1) = 6;
// byte[] zza(EventParcel p0, String p1) = 8;
void f1(in EventParcel event, in AppMetadata app) = 0;
void f2(in UserAttributeParcel attribute, in AppMetadata app) = 1;
void f4(in AppMetadata app) = 3;
// void f5(in EventParcel p0, String p1, String p2) = 4;
// void f6(in AppMetadata p0) = 5;
// List<UserAttributeParcel> f7(in AppMetadata p0, boolean p1) = 6;
// byte[] f9(in EventParcel p0, String p1) = 8;
void f10(long p0, String p1, String p2, String p3) = 9;
String f11(in AppMetadata p0) = 10;
void f12(in ConditionalUserPropertyParcel p0, in AppMetadata p1) = 11;
// void zza(ConditionalUserPropertyParcel p0) = 12;
// List<UserAttributeParcelzkr> zza(String p0, String p1, boolean p2, AppMetadata p3) = 13;
// List<UserAttributeParcel> zza(String p0, String p1, String p2, boolean p3) = 14;
// List<ConditionalUserPropertyParcel> zza(String p0, String p1, AppMetadata p2) = 15;
// List<ConditionalUserPropertyParcel> zza(String p0, String p1, String p2) = 16;
// void zzd(AppMetadata p0) = 17;
// void zza(Bundle p0, AppMetadata p1) = 18;
String f11(in AppMetadata app) = 10;
void f12(in ConditionalUserPropertyParcel property, in AppMetadata app) = 11;
// void f13(ConditionalUserPropertyParcel p0) = 12;
// List<UserAttributeParcel> getUserProperties(String p0, String p1, boolean p2, in AppMetadata p3) = 13;
// List<UserAttributeParcel> getUserPropertiesAs(String p0, String p1, String p2, boolean p3) = 14;
// List<ConditionalUserPropertyParcel> getConditionalUserProperties(String p0, String p1, in AppMetadata p2) = 15;
// List<ConditionalUserPropertyParcel> getCondtionalUserPropertiesAs(String p0, String p1, String p2) = 16;
// void f18(in AppMetadata p0) = 17;
void setDefaultEventParameters(in Bundle params, in AppMetadata app) = 18;
// void f20(in AppMetadata p0) = 19;
}

View File

@ -1,8 +1,9 @@
package com.google.android.gms.playlog.internal;
import com.google.android.gms.clearcut.internal.PlayLoggerContext;
import com.google.android.gms.playlog.internal.LogEvent;
import com.google.android.gms.playlog.internal.PlayLoggerContext;
// Deprecated
interface IPlayLogService {
void onEvent(String packageName, in PlayLoggerContext context, in LogEvent event) = 1;
void onMultiEvent(String packageName, in PlayLoggerContext context, in List<LogEvent> events) = 2;

View File

@ -1,3 +0,0 @@
package com.google.android.gms.playlog.internal;
parcelable PlayLoggerContext;

View File

@ -0,0 +1,3 @@
package com.google.android.gms.usagereporting;
parcelable UsageReportingOptInOptions;

View File

@ -0,0 +1,11 @@
package com.google.android.gms.usagereporting.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.usagereporting.UsageReportingOptInOptions;
interface IUsageReportingCallbacks {
oneway void onOptInOptions(in Status status, in UsageReportingOptInOptions options) = 1;
oneway void onOptInOptionsSet(in Status status) = 2;
oneway void onOptInOptionsChangedListenerAdded(in Status status) = 3;
oneway void onOptInOptionsChangedListenerRemoved(in Status status) = 4;
}

View File

@ -0,0 +1,5 @@
package com.google.android.gms.usagereporting.internal;
interface IUsageReportingOptInOptionsChangedListener {
oneway void onOptionsChanged() = 1;
}

View File

@ -0,0 +1,12 @@
package com.google.android.gms.usagereporting.internal;
import com.google.android.gms.usagereporting.internal.IUsageReportingCallbacks;
import com.google.android.gms.usagereporting.internal.IUsageReportingOptInOptionsChangedListener;
import com.google.android.gms.usagereporting.UsageReportingOptInOptions;
interface IUsageReportingService {
oneway void getOptInOptions(IUsageReportingCallbacks callbacks) = 1;
oneway void setOptInOptions(in UsageReportingOptInOptions options, IUsageReportingCallbacks callbacks) = 2;
oneway void addOptInOptionsChangedListener(IUsageReportingOptInOptionsChangedListener listener, IUsageReportingCallbacks callbacks) = 3;
oneway void removeOptInOptionsChangedListener(IUsageReportingOptInOptionsChangedListener listener, IUsageReportingCallbacks callbacks) = 4;
}

View File

@ -4,5 +4,6 @@ import com.mgoogle.android.gms.phenotype.internal.IPhenotypeCallbacks;
interface IPhenotypeService {
void register(IPhenotypeCallbacks callbacks, String p1, int p2, in String[] p3, in byte[] p4) = 0;
void register2(IPhenotypeCallbacks callbacks, String p1, int p2, in String[] p3, in int[] p4, in byte[] p5) = 1;
void getConfigurationSnapshot(IPhenotypeCallbacks callbacks, String p1, String p2, String p3) = 10;
}

View File

@ -24,7 +24,7 @@ import org.microg.safeparcel.SafeParceled;
public class CorpusStatus extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
private final int versionCode;
@SafeParceled(1)
public boolean found;
@SafeParceled(2)

View File

@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled;
public class PIMEUpdateResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
private final int versionCode;
@SafeParceled(1)
private String b;

View File

@ -24,7 +24,7 @@ import java.util.List;
public class QuerySpecification extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 2;
private final int versionCode = 2;
@SafeParceled(1)
public final boolean b;
//@SafeParceled(value = 2, subType = "TODO")

View File

@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled;
public class SearchResults extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 2;
private final int versionCode = 2;
public static Creator<SearchResults> CREATOR = new AutoCreator<SearchResults>(SearchResults.class);
}

View File

@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled;
public class SuggestSpecification extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
private final int versionCode;
public SuggestSpecification() {
versionCode = 2;

View File

@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled;
public class SuggestionResults extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
private final int versionCode;
@SafeParceled(1)
public final String errorMessage;

View File

@ -19,5 +19,5 @@ package com.google.android.gms.auth;
import org.microg.safeparcel.AutoSafeParcelable;
public class AccountChangeEvent extends AutoSafeParcelable {
public static Creator<AccountChangeEvent> CREATOR = new AutoCreator<>(AccountChangeEvent.class);
public static Creator<AccountChangeEvent> CREATOR = new AutoCreator<AccountChangeEvent>(AccountChangeEvent.class);
}

View File

@ -21,12 +21,12 @@ import org.microg.safeparcel.SafeParceled;
public class AccountChangeEventsRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
private int i;
@SafeParceled(3)
private String s;
public static Creator<AccountChangeEventsRequest> CREATOR = new AutoCreator<>(AccountChangeEventsRequest.class);
public static Creator<AccountChangeEventsRequest> CREATOR = new AutoCreator<AccountChangeEventsRequest>(AccountChangeEventsRequest.class);
}

View File

@ -24,13 +24,13 @@ import java.util.List;
public class AccountChangeEventsResponse extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(value = 2, subClass = AccountChangeEvent.class)
private List<AccountChangeEvent> events;
private final List<AccountChangeEvent> events;
public AccountChangeEventsResponse() {
events = new ArrayList<>();
events = new ArrayList<AccountChangeEvent>();
}
public static Creator<AccountChangeEventsResponse> CREATOR = new AutoCreator<>(AccountChangeEventsResponse.class);
public static Creator<AccountChangeEventsResponse> CREATOR = new AutoCreator<AccountChangeEventsResponse>(AccountChangeEventsResponse.class);
}

View File

@ -25,7 +25,7 @@ import java.util.List;
public class TokenData extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
public final String token;
@ -60,5 +60,5 @@ public class TokenData extends AutoSafeParcelable {
this.scopes = null;
}
public static final Creator<TokenData> CREATOR = new AutoCreator<>(TokenData.class);
public static final Creator<TokenData> CREATOR = new AutoCreator<TokenData>(TokenData.class);
}

View File

@ -13,37 +13,29 @@ import android.text.TextUtils;
import org.microg.gms.common.PublicApi;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
@PublicApi
public class Credential extends AutoSafeParcelable {
@Field(1000)
private int versionCode = 1;
private final int versionCode = 1;
@Field(1)
private String id;
@Field(2)
private String name;
@Field(3)
private Uri profilePictureUri;
@Field(value = 4, subClass = IdToken.class)
private List<IdToken> tokens;
@Field(5)
private String password;
@Field(6)
private String accountType;
@Field(7)
private String generatedPassword;
@ -132,19 +124,19 @@ public class Credential extends AutoSafeParcelable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Credential)) return false;
if (o == null || !(o instanceof Credential)) return false;
Credential that = (Credential) o;
if (!Objects.equals(id, that.id)) return false;
if (!Objects.equals(name, that.name)) return false;
if (!Objects.equals(profilePictureUri, that.profilePictureUri))
if (id != null ? !id.equals(that.id) : that.id != null) return false;
if (name != null ? !name.equals(that.name) : that.name != null) return false;
if (profilePictureUri != null ? !profilePictureUri.equals(that.profilePictureUri) : that.profilePictureUri != null)
return false;
if (!Objects.equals(password, that.password))
if (password != null ? !password.equals(that.password) : that.password != null)
return false;
if (!Objects.equals(accountType, that.accountType))
if (accountType != null ? !accountType.equals(that.accountType) : that.accountType != null)
return false;
return Objects.equals(generatedPassword, that.generatedPassword);
return generatedPassword != null ? generatedPassword.equals(that.generatedPassword) : that.generatedPassword == null;
}
@ -154,7 +146,7 @@ public class Credential extends AutoSafeParcelable {
}
public static class Builder {
private String id;
private final String id;
private String name;
private Uri profilePictureUri;
private String password;
@ -238,5 +230,5 @@ public class Credential extends AutoSafeParcelable {
}
}
public static final Creator<Credential> CREATOR = new AutoCreator<>(Credential.class);
public static final Creator<Credential> CREATOR = new AutoCreator<Credential>(Credential.class);
}

View File

@ -10,20 +10,17 @@ package com.google.android.gms.auth.api.credentials;
import org.microg.gms.common.PublicApi;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
@PublicApi
public class CredentialPickerConfig extends AutoSafeParcelable {
@Field(1000)
private int versionCode = 1;
private final int versionCode = 1;
@Field(1)
private boolean showAddAccountButton;
@Field(2)
private boolean showCancelButton;
@Field(3)
private boolean forNewAccount;
@ -60,7 +57,7 @@ public class CredentialPickerConfig extends AutoSafeParcelable {
'}';
}
public static class Builder {
public class Builder {
private boolean showAddAccountButton;
private boolean showCancelButton;
private boolean forNewAccount;
@ -94,5 +91,5 @@ public class CredentialPickerConfig extends AutoSafeParcelable {
}
}
public static final Creator<CredentialPickerConfig> CREATOR = new AutoCreator<>(CredentialPickerConfig.class);
public static final Creator<CredentialPickerConfig> CREATOR = new AutoCreator<CredentialPickerConfig>(CredentialPickerConfig.class);
}

View File

@ -9,7 +9,6 @@
package com.google.android.gms.auth.api.credentials;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
/**
* Parameters for requesting a Credential, via Auth.CredentialsApi.request(). Instances can be
@ -18,17 +17,14 @@ import org.microg.safeparcel.SafeParceled;
public class CredentialRequest extends AutoSafeParcelable {
@Field(1000)
private int versionCode = 1;
private final int versionCode = 1;
@Field(1)
private boolean passwordLoginSupported;
@Field(2)
private String[] accountTypes;
@Field(3)
private CredentialPickerConfig credentialPickerConfig;
@Field(4)
private CredentialPickerConfig credentialHintPickerConfig;
@ -65,7 +61,7 @@ public class CredentialRequest extends AutoSafeParcelable {
return passwordLoginSupported;
}
public static final Creator<CredentialRequest> CREATOR = new AutoCreator<>(CredentialRequest.class);
public static final Creator<CredentialRequest> CREATOR = new AutoCreator<CredentialRequest>(CredentialRequest.class);
public static class Builder {
private boolean passwordLoginSupported;

View File

@ -20,7 +20,7 @@ import java.util.Arrays;
@PublicApi
public class HintRequest extends AutoSafeParcelable {
@Field(1000)
private int versionCode = 2;
private final int versionCode = 2;
@Field(1)
private CredentialPickerConfig hintPickerConfig;
@ -167,4 +167,4 @@ public class HintRequest extends AutoSafeParcelable {
this.serverClientId = serverClientId;
}
}
}
}

View File

@ -10,13 +10,12 @@ package com.google.android.gms.auth.api.credentials;
import org.microg.gms.common.PublicApi;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
@PublicApi
public class IdToken extends AutoSafeParcelable {
@Field(1000)
private int versionCode = 1;
private final int versionCode = 1;
@Field(1)
private String accountType;
@ -46,5 +45,5 @@ public class IdToken extends AutoSafeParcelable {
return id;
}
public static final Creator<IdToken> CREATOR = new AutoCreator<>(IdToken.class);
public static final Creator<IdToken> CREATOR = new AutoCreator<IdToken>(IdToken.class);
}

View File

@ -31,4 +31,4 @@ public final class IdentityProviders {
public static String getIdentityProviderForAccount(Account account) {
return null;
}
}
}

View File

@ -19,5 +19,5 @@ package com.google.android.gms.auth.api.credentials.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class DeleteRequest extends AutoSafeParcelable {
public static final Creator<DeleteRequest> CREATOR = new AutoCreator<>(DeleteRequest.class);
public static final Creator<DeleteRequest> CREATOR = new AutoCreator<DeleteRequest>(DeleteRequest.class);
}

View File

@ -19,5 +19,5 @@ package com.google.android.gms.auth.api.credentials.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class GeneratePasswordRequest extends AutoSafeParcelable {
public static final Creator<GeneratePasswordRequest> CREATOR = new AutoCreator<>(GeneratePasswordRequest.class);
public static final Creator<GeneratePasswordRequest> CREATOR = new AutoCreator<GeneratePasswordRequest>(GeneratePasswordRequest.class);
}

View File

@ -19,5 +19,5 @@ package com.google.android.gms.auth.api.credentials.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SaveRequest extends AutoSafeParcelable {
public static final Creator<SaveRequest> CREATOR = new AutoCreator<>(SaveRequest.class);
public static final Creator<SaveRequest> CREATOR = new AutoCreator<SaveRequest>(SaveRequest.class);
}

View File

@ -0,0 +1,41 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.proxy;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
public class ProxyRequest extends AutoSafeParcelable {
public static final int HTTP_METHOD_GET = 0;
public static final int HTTP_METHOD_POST = 1;
public static final int HTTP_METHOD_PUT = 2;
public static final int HTTP_METHOD_DELETE = 3;
public static final int HTTP_METHOD_HEAD = 4;
public static final int HTTP_METHOD_OPTIONS = 5;
public static final int HTTP_METHOD_TRACE = 6;
public static final int HTTP_METHOD_PATCH = 7;
@Field(1000)
private final int versionCode = 2;
@Field(1)
public String url;
@Field(2)
public int httpMethod;
@Field(3)
public long timeoutMillis;
@Field(4)
public byte[] body;
@Field(5)
public Bundle headers;
@Override
public String toString() {
return url;
}
public static final Creator<ProxyRequest> CREATOR = new AutoCreator<>(ProxyRequest.class);
}

View File

@ -0,0 +1,30 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.proxy;
import android.app.PendingIntent;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
public class ProxyResponse extends AutoSafeParcelable {
public static final int STATUS_CODE_NO_CONNECTION = -1;
@Field(1000)
private final int versionCode = 1;
@Field(1)
public int gmsStatusCode;
@Field(2)
public PendingIntent recoveryAction;
@Field(3)
public int httpStatusCode;
@Field(4)
public Bundle headers;
@Field(5)
public byte[] body;
public static final Creator<ProxyResponse> CREATOR = new AutoCreator<>(ProxyResponse.class);
}

View File

@ -25,7 +25,7 @@ import org.microg.safeparcel.SafeParceled;
public class AccountRecoveryGuidanceRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
@Deprecated
public final String accountName;
@ -42,5 +42,5 @@ public class AccountRecoveryGuidanceRequest extends AutoSafeParcelable {
this.account = account;
}
public static final Creator<AccountRecoveryGuidanceRequest> CREATOR = new AutoCreator<>(AccountRecoveryGuidanceRequest.class);
public static final Creator<AccountRecoveryGuidanceRequest> CREATOR = new AutoCreator<AccountRecoveryGuidanceRequest>(AccountRecoveryGuidanceRequest.class);
}

View File

@ -25,7 +25,7 @@ import org.microg.safeparcel.SafeParceled;
public class AccountRemovalRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
@Deprecated
public final String accountName;
@ -42,5 +42,5 @@ public class AccountRemovalRequest extends AutoSafeParcelable {
this.account = account;
}
public static final Creator<AccountRemovalRequest> CREATOR = new AutoCreator<>(AccountRemovalRequest.class);
public static final Creator<AccountRemovalRequest> CREATOR = new AutoCreator<AccountRemovalRequest>(AccountRemovalRequest.class);
}

View File

@ -24,11 +24,11 @@ import org.microg.safeparcel.SafeParceled;
public class ConfirmCredentialsRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
public AccountCredentials accountCredentials;
@SafeParceled(3)
public CaptchaSolution captchaSolution;
public static final Creator<ConfirmCredentialsRequest> CREATOR = new AutoCreator<>(ConfirmCredentialsRequest.class);
public static final Creator<ConfirmCredentialsRequest> CREATOR = new AutoCreator<ConfirmCredentialsRequest>(ConfirmCredentialsRequest.class);
}

View File

@ -26,7 +26,7 @@ import org.microg.safeparcel.SafeParceled;
public class TokenRequest extends AutoSafeParcelable{
@SafeParceled(1)
private int versionCode = 4;
private final int versionCode = 4;
@SafeParceled(3)
public String accountName;
@SafeParceled(4)
@ -40,5 +40,5 @@ public class TokenRequest extends AutoSafeParcelable{
return new Account(accountName, accountType);
}
public static final Creator<TokenRequest> CREATOR = new AutoCreator<>(TokenRequest.class);
public static final Creator<TokenRequest> CREATOR = new AutoCreator<TokenRequest>(TokenRequest.class);
}

View File

@ -27,7 +27,7 @@ import org.microg.safeparcel.SafeParceled;
public class ConfirmCredentialsWorkflowRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 3;
private final int versionCode = 3;
@SafeParceled(2)
public String accountName;
@SafeParceled(3)
@ -39,5 +39,5 @@ public class ConfirmCredentialsWorkflowRequest extends AutoSafeParcelable {
@SafeParceled(6)
public AccountAuthenticatorResponse accountAuthenticatorResponse;
public static final Creator<ConfirmCredentialsWorkflowRequest> CREATOR = new AutoCreator<>(ConfirmCredentialsWorkflowRequest.class);
public static final Creator<ConfirmCredentialsWorkflowRequest> CREATOR = new AutoCreator<ConfirmCredentialsWorkflowRequest>(ConfirmCredentialsWorkflowRequest.class);
}

View File

@ -24,7 +24,7 @@ import org.microg.safeparcel.SafeParceled;
// TODO
public class AccountCredentials extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 2;
private final int versionCode = 2;
@SafeParceled(3)
public String accountName;
@SafeParceled(9)
@ -34,5 +34,5 @@ public class AccountCredentials extends AutoSafeParcelable {
return new Account(accountName, accountType);
}
public static final Creator<AccountCredentials> CREATOR = new AutoCreator<>(AccountCredentials.class);
public static final Creator<AccountCredentials> CREATOR = new AutoCreator<AccountCredentials>(AccountCredentials.class);
}

View File

@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled;
public class AppDescription extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
public int callingUid;
@SafeParceled(3)
@ -31,5 +31,5 @@ public class AppDescription extends AutoSafeParcelable {
@SafeParceled(5)
public String callingPkg;
public static final Creator<AppDescription> CREATOR = new AutoCreator<>(AppDescription.class);
public static final Creator<AppDescription> CREATOR = new AutoCreator<AppDescription>(AppDescription.class);
}

View File

@ -23,7 +23,7 @@ import org.microg.safeparcel.SafeParceled;
public class CaptchaSolution extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
public static final Creator<CaptchaSolution> CREATOR = new AutoCreator<>(CaptchaSolution.class);
public static final Creator<CaptchaSolution> CREATOR = new AutoCreator<CaptchaSolution>(CaptchaSolution.class);
}

View File

@ -18,22 +18,23 @@ package com.google.android.gms.clearcut;
import android.util.Base64;
import com.google.android.gms.phenotype.ExperimentToken;
import com.google.android.gms.phenotype.GenericDimension;
import com.google.android.gms.playlog.internal.PlayLoggerContext;
import com.google.android.gms.clearcut.internal.LogVerifierResultParcelable;
import com.google.android.gms.clearcut.internal.PlayLoggerContext;
import com.mgoogle.android.gms.phenotype.ExperimentToken;
import com.mgoogle.android.gms.phenotype.GenericDimension;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
public class LogEventParcelable extends AutoSafeParcelable {
@Field(1)
private int versionCode = 1;
private final int versionCode = 1;
@Field(2)
public final PlayLoggerContext context;
@ -62,6 +63,9 @@ public class LogEventParcelable extends AutoSafeParcelable {
@Field(10)
public final GenericDimension[] genericDimensions;
@Field(11)
public final LogVerifierResultParcelable logVerifierResult;
private LogEventParcelable() {
context = null;
bytes = null;
@ -71,6 +75,7 @@ public class LogEventParcelable extends AutoSafeParcelable {
addPhenotypeExperimentTokens = false;
experimentTokenParcelables = null;
genericDimensions = null;
logVerifierResult = null;
}
public LogEventParcelable(PlayLoggerContext context, byte[] bytes, int[] testCodes, String[] mendelPackages, int[] experimentIds, byte[][] experimentTokens, boolean addPhenotypeExperimentTokens) {
@ -81,8 +86,9 @@ public class LogEventParcelable extends AutoSafeParcelable {
this.experimentIds = experimentIds;
this.experimentTokens = experimentTokens;
this.addPhenotypeExperimentTokens = addPhenotypeExperimentTokens;
experimentTokenParcelables = null;
genericDimensions = null;
this.experimentTokenParcelables = null;
this.genericDimensions = null;
this.logVerifierResult = null;
}
@Override
@ -112,5 +118,5 @@ public class LogEventParcelable extends AutoSafeParcelable {
}
}
public static final Creator<LogEventParcelable> CREATOR = new AutoCreator<>(LogEventParcelable.class);
public static final Creator<LogEventParcelable> CREATOR = new AutoCreator<LogEventParcelable>(LogEventParcelable.class);
}

View File

@ -0,0 +1,15 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.clearcut.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class LogVerifierResultParcelable extends AutoSafeParcelable {
@Field(1)
public boolean b;
public static final Creator<LogVerifierResultParcelable> CREATOR = new AutoCreator<>(LogVerifierResultParcelable.class);
}

View File

@ -1,28 +1,16 @@
/*
* Copyright (C) 2013-2017 microG Project Team
*
* 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.
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.playlog.internal;
package com.google.android.gms.clearcut.internal;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class PlayLoggerContext extends AutoSafeParcelable {
@Field(1)
private int versionCode = 1;
private final int versionCode = 1;
@Field(2)
public final String packageName;
@ -33,9 +21,6 @@ public class PlayLoggerContext extends AutoSafeParcelable {
@Field(4)
public final int logSource;
@Field(8)
public final String logSourceName;
@Field(5)
public final String uploadAccount;
@ -45,6 +30,9 @@ public class PlayLoggerContext extends AutoSafeParcelable {
@Field(7)
public final boolean logAndroidId;
@Field(8)
public final String logSourceName;
@Field(9)
public final boolean isAnonymous;
@ -57,13 +45,16 @@ public class PlayLoggerContext extends AutoSafeParcelable {
@Field(12)
public final boolean scrubMccMnc;
@Field(13)
public final Integer piiLevelset;
private PlayLoggerContext() {
packageName = uploadAccount = logSourceName = loggingId = null;
qosTier = packageVersionCode = logSource = appMobileSpecId = -1;
qosTier = packageVersionCode = logSource = appMobileSpecId = piiLevelset = -1;
isAnonymous = logAndroidId = scrubMccMnc = false;
}
public PlayLoggerContext(String packageName, int packageVersionCode, int logSource, String logSourceName, String uploadAccount, String loggingId, boolean isAnonymous, int qosTier, boolean scrubMccMnc) {
public PlayLoggerContext(String packageName, int packageVersionCode, int logSource, String logSourceName, String uploadAccount, String loggingId, boolean isAnonymous, int qosTier, boolean scrubMccMnc, int piiLevelset) {
this.packageName = packageName;
this.packageVersionCode = packageVersionCode;
this.logSource = logSource;
@ -75,6 +66,7 @@ public class PlayLoggerContext extends AutoSafeParcelable {
this.qosTier = qosTier;
this.appMobileSpecId = null;
this.scrubMccMnc = scrubMccMnc;
this.piiLevelset = piiLevelset;
}
@Override
@ -89,9 +81,12 @@ public class PlayLoggerContext extends AutoSafeParcelable {
sb.append(", logSourceName=").append(logSourceName);
sb.append(", isAnonymous=").append(isAnonymous);
sb.append(", qosTier=").append(qosTier);
sb.append(", appMobileSpecId=").append(appMobileSpecId);
sb.append(", scrubMccMnc=").append(scrubMccMnc);
sb.append(", piiLevelset=").append(piiLevelset);
sb.append(']');
return sb.toString();
}
public static Creator<PlayLoggerContext> CREATOR = new AutoCreator<PlayLoggerContext>(PlayLoggerContext.class);
}
}

View File

@ -71,5 +71,5 @@ public class GoogleCertificatesQuery extends AutoSafeParcelable {
return certData;
}
public static final Creator<GoogleCertificatesQuery> CREATOR = new AutoCreator<>(GoogleCertificatesQuery.class);
public static final Creator<GoogleCertificatesQuery> CREATOR = new AutoCreator<GoogleCertificatesQuery>(GoogleCertificatesQuery.class);
}

View File

@ -20,5 +20,5 @@ import org.microg.safeparcel.AutoSafeParcelable;
public class FavaDiagnosticsEntity extends AutoSafeParcelable {
public static final Creator<FavaDiagnosticsEntity> CREATOR = new AutoCreator<>(FavaDiagnosticsEntity.class);
public static final Creator<FavaDiagnosticsEntity> CREATOR = new AutoCreator<FavaDiagnosticsEntity>(FavaDiagnosticsEntity.class);
}

View File

@ -0,0 +1,45 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.measurement.api.internal;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
public class InitializationParams extends AutoSafeParcelable {
@Field(1)
public long field1;
@Field(2)
public long field2;
@Field(3)
public boolean field3;
@Field(4)
public String field4;
@Field(5)
public String field5;
@Field(6)
public String field6;
@Field(7)
public Bundle field7;
@Field(8)
public String field8;
@Override
public String toString() {
return "InitializationParams{" +
"field1=" + field1 +
", field2=" + field2 +
", field3=" + field3 +
", field4='" + field4 + '\'' +
", field5='" + field5 + '\'' +
", field6='" + field6 + '\'' +
", field7=" + field7 +
", field8='" + field8 + '\'' +
'}';
}
public static final Creator<InitializationParams> CREATOR = new AutoCreator<>(InitializationParams.class);
}

View File

@ -25,7 +25,7 @@ public class AppMetadata extends AutoSafeParcelable {
@Field(8)
private String field8;
@Field(9)
private boolean field9 = true;
private final boolean field9 = true;
@Field(10)
private boolean field10;
@Field(11)
@ -57,5 +57,9 @@ public class AppMetadata extends AutoSafeParcelable {
@Field(25)
private String field25;
public String toString() {
return "AppMetadata[" + packageName + "]";
}
public static final Creator<AppMetadata> CREATOR = new AutoCreator<>(AppMetadata.class);
}

View File

@ -0,0 +1,17 @@
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.measurement.internal;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
public class EventParams extends AutoSafeParcelable {
@Field(2)
public Bundle data;
public static final Creator<EventParams> CREATOR = new AutoCreator<>(EventParams.class);
}

View File

@ -8,5 +8,14 @@ package com.google.android.gms.measurement.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class EventParcel extends AutoSafeParcelable {
@Field(2)
public String name;
@Field(3)
public EventParams params;
@Field(4)
public String origin;
@Field(5)
public long timestamp;
public static final Creator<EventParcel> CREATOR = new AutoCreator<>(EventParcel.class);
}

View File

@ -8,5 +8,20 @@ package com.google.android.gms.measurement.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class UserAttributeParcel extends AutoSafeParcelable {
@Field(1)
public int field1;
@Field(2)
public String name;
@Field(3)
public long timestamp;
@Field(4)
public Long field4;
@Field(6)
public String field6;
@Field(7)
public String field7;
@Field(8)
public Double field8;
public static final Creator<UserAttributeParcel> CREATOR = new AutoCreator<>(UserAttributeParcel.class);
}

View File

@ -21,7 +21,7 @@ import org.microg.safeparcel.SafeParceled;
public class ParcelableLoadImageOptions extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public int imageSize;
@ -32,5 +32,5 @@ public class ParcelableLoadImageOptions extends AutoSafeParcelable {
@SafeParceled(3)
public boolean useLargePictureForCp2Images;
public static final Creator<ParcelableLoadImageOptions> CREATOR = new AutoCreator<>(ParcelableLoadImageOptions.class);
public static final Creator<ParcelableLoadImageOptions> CREATOR = new AutoCreator<ParcelableLoadImageOptions>(ParcelableLoadImageOptions.class);
}

View File

@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled;
public class AccountMetadata extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 2;
private final int versionCode = 2;
@SafeParceled(2)
public boolean hasGooglePlus = true;
@ -36,5 +36,5 @@ public class AccountMetadata extends AutoSafeParcelable {
@SafeParceled(5)
public boolean hasFeature4 = true;
public static Creator<AccountMetadata> CREATOR = new AutoCreator<>(AccountMetadata.class);
public static Creator<AccountMetadata> CREATOR = new AutoCreator<AccountMetadata>(AccountMetadata.class);
}

View File

@ -30,5 +30,5 @@ public class AvatarReference extends AutoSafeParcelable {
@SafeParceled(2)
public String location;
public static final Creator<AvatarReference> CREATOR = new AutoCreator<>(AvatarReference.class);
public static final Creator<AvatarReference> CREATOR = new AutoCreator<AvatarReference>(AvatarReference.class);
}

View File

@ -21,10 +21,11 @@ import org.microg.safeparcel.SafeParceled;
import java.util.Date;
@Deprecated
public class LogEvent extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
public final long eventTime;
@ -50,5 +51,5 @@ public class LogEvent extends AutoSafeParcelable {
'}';
}
public static Creator<LogEvent> CREATOR = new AutoCreator<>(LogEvent.class);
public static Creator<LogEvent> CREATOR = new AutoCreator<LogEvent>(LogEvent.class);
}

View File

@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled;
public class GetCorpusStatusRequest extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final String packageName;

View File

@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled;
public class RequestIndexingRequest extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final String packageName;

View File

@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled;
public class GetCurrentExperimentIdsRequest extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
public static final Creator<GetCurrentExperimentIdsRequest> CREATOR = new AutoCreator<GetCurrentExperimentIdsRequest>(GetCurrentExperimentIdsRequest.class);
}

View File

@ -26,7 +26,7 @@ import java.util.Arrays;
public class GetCurrentExperimentIdsResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final Status status;

View File

@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled;
public class GetGlobalSearchSourcesRequest extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public boolean bool;

View File

@ -28,7 +28,7 @@ import java.util.Arrays;
public class GetGlobalSearchSourcesResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final Status status;

View File

@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled;
public class GetPendingExperimentIdsRequest extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
public static final Creator<GetPendingExperimentIdsRequest> CREATOR = new AutoCreator<GetPendingExperimentIdsRequest>(GetPendingExperimentIdsRequest.class);
}

View File

@ -26,7 +26,7 @@ import java.util.Arrays;
public class GetPendingExperimentIdsResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final Status status;

View File

@ -24,7 +24,7 @@ import java.util.Arrays;
public class SetExperimentIdsRequest extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public byte[] experimentIds;

View File

@ -24,7 +24,7 @@ import org.microg.safeparcel.SafeParceled;
public class SetExperimentIdsResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final Status status;

View File

@ -22,7 +22,7 @@ import org.microg.safeparcel.SafeParceled;
public class SetIncludeInGlobalSearchRequest extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public String packageName;

View File

@ -24,7 +24,7 @@ import org.microg.safeparcel.SafeParceled;
public class SetIncludeInGlobalSearchResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final Status status;

View File

@ -25,7 +25,7 @@ import org.microg.safeparcel.SafeParceled;
public class QueryResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
public final Status status;

View File

@ -0,0 +1,15 @@
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.usagereporting;
import org.microg.safeparcel.AutoSafeParcelable;
public class UsageReportingOptInOptions extends AutoSafeParcelable {
@Field(2)
public int optInUsageReporting;
public static final Creator<UsageReportingOptInOptions> CREATOR = new AutoCreator<>(UsageReportingOptInOptions.class);
}

View File

@ -3,10 +3,10 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.phenotype;
package com.mgoogle.android.gms.phenotype;
import org.microg.safeparcel.AutoSafeParcelable;
public class ExperimentToken extends AutoSafeParcelable {
public static final Creator<ExperimentToken> CREATOR = new AutoCreator<>(ExperimentToken.class);
}
}

View File

@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.phenotype;
package com.mgoogle.android.gms.phenotype;
import org.microg.safeparcel.AutoSafeParcelable;
@ -14,4 +14,4 @@ public class GenericDimension extends AutoSafeParcelable {
public int b;
public static final Creator<GenericDimension> CREATOR = new AutoCreator<>(GenericDimension.class);
}
}

View File

@ -22,10 +22,11 @@ dependencies {
android {
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildToolsVersion "30.0.3"
aidlPackageWhiteList "com/google/android/gms/common/data/DataHolder.aidl"
aidlPackageWhiteList "com/google/android/gms/common/images/WebImage.aidl"
aidlPackageWhiteList "com/google/android/gms/common/api/internal/IStatusCallback.aidl"
defaultConfig {
minSdkVersion androidMinSdk

View File

@ -46,7 +46,7 @@ import java.util.Map;
@PublicApi(until = "1")
public class DataHolder extends AutoSafeParcelable implements Closeable {
@SafeParceled(1000)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(1)
private final String[] columns;

View File

@ -16,13 +16,13 @@
package com.google.android.gms.common.images;
import java.util.Locale;
import android.net.Uri;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
import java.util.Locale;
public class WebImage extends AutoSafeParcelable {
public static final Creator<WebImage> CREATOR = new AutoCreator<>(WebImage.class);
@ -35,7 +35,7 @@ public class WebImage extends AutoSafeParcelable {
}
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
private final Uri uri;

View File

@ -18,7 +18,7 @@ apply plugin: 'com.android.library'
android {
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion androidMinSdk
@ -32,12 +32,12 @@ android {
}
dependencies {
implementation 'com.google.android.gms:play-services-base:17.6.0'
implementation 'com.google.android.gms:play-services-base:18.0.1'
api project(':play-services-basement')
api project(':play-services-tasks')
api project(':play-services-base-api')
implementation 'androidx.fragment:fragment:1.3.6'
implementation 'com.google.android.gms:play-services-base:17.6.0'
implementation 'androidx.fragment:fragment:1.4.1'
implementation 'com.google.android.gms:play-services-base:18.0.1'
}

View File

@ -16,22 +16,6 @@
package com.google.android.gms.common;
import android.app.Activity;
import android.app.Dialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import androidx.fragment.app.FragmentActivity;
import android.util.Log;
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.Tasks;
import org.microg.gms.common.Constants;
import org.microg.gms.common.PublicApi;
import static com.google.android.gms.common.ConnectionResult.INTERNAL_ERROR;
import static com.google.android.gms.common.ConnectionResult.INVALID_ACCOUNT;
import static com.google.android.gms.common.ConnectionResult.NETWORK_ERROR;
@ -43,6 +27,23 @@ import static com.google.android.gms.common.ConnectionResult.SERVICE_VERSION_UPD
import static com.google.android.gms.common.ConnectionResult.SIGN_IN_REQUIRED;
import static com.google.android.gms.common.ConnectionResult.SUCCESS;
import android.app.Activity;
import android.app.Dialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import androidx.fragment.app.FragmentActivity;
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.Tasks;
import org.microg.gms.common.Constants;
import org.microg.gms.common.PublicApi;
@PublicApi
public class GoogleApiAvailability {
private static final String TAG = "GmsApiAvailability";

View File

@ -18,7 +18,7 @@ import org.microg.gms.common.api.PendingGoogleApiCall;
@PublicApi
public abstract class GoogleApi<O extends Api.ApiOptions> implements HasApiKey<O> {
private GoogleApiManager manager;
private final GoogleApiManager manager;
@PublicApi(exclude = true)
public Api<O> api;

View File

@ -28,7 +28,7 @@ import java.util.Iterator;
@PublicApi
public abstract class DataBuffer<T> implements Releasable, Iterable<T> {
private DataHolder dataHolder;
private final DataHolder dataHolder;
@PublicApi(exclude = true)
public DataBuffer(DataHolder dataHolder) {

View File

@ -44,7 +44,7 @@ public abstract class GmsClient<I extends IInterface> implements ApiClient {
protected ConnectionState state = ConnectionState.NOT_CONNECTED;
private ServiceConnection serviceConnection;
private I serviceInterface;
private String actionString;
private final String actionString;
protected int serviceId = -1;
protected Account account = null;
@ -110,7 +110,7 @@ public abstract class GmsClient<I extends IInterface> implements ApiClient {
@Override
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

View File

@ -16,6 +16,10 @@
package org.microg.gms.common;
import static android.os.Build.VERSION.SDK_INT;
import static android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH;
import static org.microg.gms.common.Constants.GMS_PACKAGE_NAME;
import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Context;
@ -29,10 +33,6 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import static android.os.Build.VERSION.SDK_INT;
import static android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH;
import static org.microg.gms.common.Constants.GMS_PACKAGE_NAME;
public class MultiConnectionKeeper {
private static final String TAG = "GmsMultiConKeeper";
@ -88,7 +88,7 @@ public class MultiConnectionKeeper {
private boolean connected = false;
private IBinder binder;
private ComponentName component;
private ServiceConnection serviceConnection = new ServiceConnection() {
private final ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
Log.d(TAG, "Connection(" + actionString + ") : ServiceConnection : " +

View File

@ -21,9 +21,9 @@ import java.util.Objects;
public class GoogleApiManager {
private static GoogleApiManager instance;
private Context context;
private Map<ApiInstance, ApiClient> clientMap = new HashMap<>();
private Map<ApiInstance, List<WaitingApiCall<?>>> waitingApiCallMap = new HashMap<>();
private final Context context;
private final Map<ApiInstance, ApiClient> clientMap = new HashMap<>();
private final Map<ApiInstance, List<WaitingApiCall<?>>> waitingApiCallMap = new HashMap<>();
private GoogleApiManager(Context context) {
this.context = context;
@ -81,7 +81,7 @@ public class GoogleApiManager {
}
private class ConnectionCallback implements ConnectionCallbacks {
private ApiInstance apiInstance;
private final ApiInstance apiInstance;
public ConnectionCallback(ApiInstance apiInstance) {
this.apiInstance = apiInstance;
@ -99,7 +99,7 @@ public class GoogleApiManager {
}
private class ConnectionFailedListener implements OnConnectionFailedListener {
private ApiInstance apiInstance;
private final ApiInstance apiInstance;
public ConnectionFailedListener(ApiInstance apiInstance) {
this.apiInstance = apiInstance;
@ -112,8 +112,8 @@ public class GoogleApiManager {
}
private static class WaitingApiCall<R> {
private PendingGoogleApiCall<R, ApiClient> apiCall;
private TaskCompletionSource<R> completionSource;
private final PendingGoogleApiCall<R, ApiClient> apiCall;
private final TaskCompletionSource<R> completionSource;
public WaitingApiCall(PendingGoogleApiCall<R, ApiClient> apiCall, TaskCompletionSource<R> completionSource) {
this.apiCall = apiCall;
@ -148,8 +148,8 @@ public class GoogleApiManager {
}
private static class ApiInstance {
private Class<?> apiClass;
private Api.ApiOptions apiOptions;
private final Class<?> apiClass;
private final Api.ApiOptions apiOptions;
public ApiInstance(Class<?> apiClass, Api.ApiOptions apiOptions) {
this.apiClass = apiClass;

View File

@ -20,13 +20,13 @@ apply plugin: 'kotlin-android'
dependencies {
api "org.microg:safe-parcel:1.7.0"
implementation "androidx.annotation:annotation:1.2.0"
implementation 'androidx.annotation:annotation:1.3.0'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32'
}
android {
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildToolsVersion "30.0.3"
aidlPackageWhiteList "com/google/android/gms/common/api/Status.aidl"
aidlPackageWhiteList "com/google/android/gms/common/internal/ICancelToken.aidl"

View File

@ -0,0 +1,36 @@
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.common;
import org.microg.safeparcel.AutoSafeParcelable;
public class Feature extends AutoSafeParcelable {
@Field(1)
private String name;
@Field(2)
private int oldVersion;
@Field(3)
private long version = -1;
private Feature() {
}
public Feature(String name, long version) {
this.name = name;
this.version = version;
}
public String getName() {
return name;
}
public long getVersion() {
if (version == -1) return oldVersion;
return version;
}
public static final Creator<Feature> CREATOR = new AutoSafeParcelable.AutoCreator<>(Feature.class);
}

View File

@ -27,7 +27,7 @@ import org.microg.safeparcel.SafeParceled;
@PublicApi
public class Scope extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
private final int versionCode = 1;
@SafeParceled(2)
private final String scopeUri;

Some files were not shown because too many files have changed in this diff Show More