Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Verified Commit af28a78b authored by Marvin W.'s avatar Marvin W. 🐿️
Browse files

Update chimera service provider

parent 3c2119ce
Loading
Loading
Loading
Loading
+0 −67
Original line number Diff line number Diff line
/*
 * Copyright (C) 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.
 */

package org.microg.gms;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

public class ChimeraSpoofProvider extends ContentProvider {
    private static final String TAG = "GmsChimeraSpoof";
    private static final String[] COLUMNS = new String[]{"version", "apkPath", "loaderPath", "apkDescStr"};

    @Override
    public boolean onCreate() {
        return true;
    }

    @Nullable
    @Override
    public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        MatrixCursor cursor = new MatrixCursor(COLUMNS);
        Log.d(TAG, "query: " + uri);
        return cursor;
    }

    @Nullable
    @Override
    public String getType(@NonNull Uri uri) {
        return "vnd.android.cursor.item/com.google.android.gms.chimera";
    }

    @Nullable
    @Override
    public Uri insert(@NonNull Uri uri, ContentValues values) {
        return null;
    }

    @Override
    public int delete(@NonNull Uri uri, String selection, String[] selectionArgs) {
        return 0;
    }

    @Override
    public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs) {
        return 0;
    }
}
+11 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.os.RemoteException;
import android.util.Log;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.internal.ConnectionInfo;
import com.google.android.gms.common.internal.GetServiceRequest;
import com.google.android.gms.common.internal.IGmsCallbacks;
import com.google.android.gms.common.internal.IGmsServiceBroker;
@@ -177,6 +178,16 @@ public abstract class GmsClient<I extends IInterface> implements ApiClient {
            Log.d(TAG, "GmsCallbacks : onPostInitComplete(" + serviceInterface + ")");
            callbacks.onConnected(params);
        }

        @Override
        public void onAccountValidationComplete(int statusCode, Bundle params) throws RemoteException {
            Log.d(TAG, "GmsCallbacks : onAccountValidationComplete");
        }

        @Override
        public void onPostInitCompleteWithConnectionInfo(int statusCode, IBinder binder, ConnectionInfo info) throws RemoteException {
            onPostInitComplete(statusCode, binder, info == null ? null : info.params);
        }
    }

}
+7 −0
Original line number Diff line number Diff line
/*
 * SPDX-FileCopyrightText: 2020, microG Project Team
 * SPDX-License-Identifier: Apache-2.0
 */

package com.google.android.gms.common.internal;
parcelable ConnectionInfo;
+8 −0
Original line number Diff line number Diff line
/*
 * SPDX-FileCopyrightText: 2020, microG Project Team
 * SPDX-License-Identifier: Apache-2.0
 */

package com.google.android.gms.common.internal;

import android.os.Bundle;
import com.google.android.gms.common.internal.ConnectionInfo;

interface IGmsCallbacks {
    void onPostInitComplete(int statusCode, IBinder binder, in Bundle params);
    void onAccountValidationComplete(int statusCode, in Bundle params);
    void onPostInitCompleteWithConnectionInfo(int statusCode, IBinder binder, in ConnectionInfo info);
}
+36 −0
Original line number Diff line number Diff line
/*
 * 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);
}
Loading