Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import org.microg.gms.auth.phone.SmsRetrieverRequestType.RETRIEVER
import org.microg.gms.auth.phone.SmsRetrieverRequestType.USER_CONSENT
import org.microg.gms.common.Constants
import org.microg.gms.utils.getSignatures
import java.nio.charset.StandardCharsets
import java.security.MessageDigest
Expand Down Expand Up @@ -140,7 +139,7 @@ class SmsRetrieverCore(private val context: Context, override val lifecycle: Lif

private fun sendUserConsentBroadcast(request: SmsRetrieverRequest, messageBody: String) {
val userConsentIntent = Intent(context, UserConsentPromptActivity::class.java)
userConsentIntent.setPackage(Constants.GMS_PACKAGE_NAME)
userConsentIntent.setPackage(context.packageName)
userConsentIntent.putExtra(EXTRA_MESSENGER, Messenger(object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
if (Binder.getCallingUid() == Process.myUid()) {
Expand Down Expand Up @@ -356,4 +355,4 @@ class SmsRetrieverCore(private val context: Context, override val lifecycle: Lif
}
return deferred.await()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,12 @@ public static boolean isMainProcess(Context context) {
return processName.equals(context.getPackageName());
}

@NonNull
public static String getSelfPackageName(@NonNull Context context) {
Context appContext = context.getApplicationContext();
return appContext != null ? appContext.getPackageName() : context.getPackageName();
}

public static void warnIfNotPersistentProcess(Class<?> clazz) {
if (!isPersistentProcess()) {
Log.w("GmsPackageUtils", clazz.getSimpleName() + " initialized outside persistent process", new RuntimeException());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,11 @@
import android.os.Process;
import android.util.Log;

import com.google.android.gms.BuildConfig;
import com.google.android.gms.chimera.container.DynamiteContext;
import com.google.android.gms.chimera.container.DynamiteModuleInfo;
import com.google.android.gms.chimera.container.FilteredClassLoader;

import org.microg.gms.common.Constants;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
Expand All @@ -34,6 +33,10 @@ public class DynamiteContextFactory {
// WeakHashMap cannot be used, and there is a high probability that it will be recycled, causing ClassLoader to be rebuilt
private static final Map<String, ClassLoader> sClassLoaderCache = new HashMap<>();

private static Context createGmsPackageContext(Context context) throws PackageManager.NameNotFoundException {
return context.createPackageContext(BuildConfig.APPLICATION_ID, 0);
}

public static DynamiteContext createDynamiteContext(String moduleId, Context originalContext) {
if (originalContext == null) {
Log.w(TAG, "create <DynamiteContext> Original context is null");
Expand All @@ -49,7 +52,7 @@ public static DynamiteContext createDynamiteContext(String moduleId, Context ori
}
try {
DynamiteModuleInfo moduleInfo = new DynamiteModuleInfo(moduleId);
Context gmsContext = originalContext.createPackageContext(Constants.GMS_PACKAGE_NAME, 0);
Context gmsContext = createGmsPackageContext(originalContext);
Context originalAppContext = originalContext.getApplicationContext();

DynamiteContext dynamiteContext;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (uriPath != null && uriPath.contains("/signup")) {
String biz = uri.getQueryParameter("biz");
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.setPackage(GMS_PACKAGE_NAME);
intent.setPackage(getPackageName());
intent.putExtra(EXTRA_URL, biz != null ? GOOGLE_SIGNUP_URL + "?biz=" + biz : GOOGLE_SIGNUP_URL);
startActivityForResult(intent, REQUEST_CODE_SIGNUP);
return true;
Expand Down Expand Up @@ -461,7 +461,7 @@ public void onException(Exception exception) {

private void notifyGcmGroupUpdate(String accountName) {
Intent intent = new Intent(ACTION_GCM_REGISTER_ACCOUNT);
intent.setPackage(Constants.GMS_PACKAGE_NAME);
intent.setPackage(getPackageName());
intent.putExtra(KEY_GCM_REGISTER_ACCOUNT_NAME, accountName);
sendBroadcast(intent);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public void handleServiceRequest(IGmsCallbacks callback, GetServiceRequest reque
}
if (packageName == null) packageName = GMS_PACKAGE_NAME;
Intent intent = new Intent(ACTION_PLAY_GAMES_UPGRADE);
intent.setPackage(GMS_PACKAGE_NAME);
intent.setPackage(getPackageName());
intent.putExtra(EXTRA_GAME_PACACKE_NAME, packageName);
Bundle bundle = new Bundle();
bundle.putParcelable("pendingIntent", PendingIntentCompat.getActivity(this, packageName.hashCode(), intent, FLAG_UPDATE_CURRENT, false));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@ private void handleLoginResponse(LoginResponse loginResponse) {

private void notifyGcmConnected() {
Intent intent = new Intent(ACTION_GCM_CONNECTED);
intent.setPackage(Constants.GMS_PACKAGE_NAME);
intent.setPackage(getPackageName());
sendBroadcast(intent);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -332,8 +332,8 @@ class MainActivity : AppCompatActivity() {
Log.d(TAG, "updateVerifyNotification: notificationId: $notificationId")
if (notificationId == -1) return
Intent(ACTION_GCM_NOTIFY_COMPLETE).apply {
setPackage(GMS_PACKAGE_NAME)
setPackage(packageName)
putExtra(EXTRA_NOTIFICATION_ACCOUNT, accountName)
}.let { sendBroadcast(it) }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ import org.microg.gms.auth.signin.getServerAuthTokenManager
import org.microg.gms.auth.signin.performSignIn
import org.microg.gms.auth.signin.scopeUris
import org.microg.gms.common.AccountUtils
import org.microg.gms.common.Constants
import org.microg.gms.common.GmsService
import org.microg.gms.common.PackageUtils
import java.util.concurrent.atomic.AtomicInteger
Expand Down Expand Up @@ -107,7 +106,7 @@ class AuthorizationServiceImpl(val context: Context, val packageName: String, ov
defaultAccount?.name?.let { setAccountName(it) }
}.build()
val intent = Intent(context, AuthSignInActivity::class.java).apply {
`package` = Constants.GMS_PACKAGE_NAME
`package` = PackageUtils.getSelfPackageName(context)
putExtra("config", SignInConfiguration(packageName, options))
}
AuthorizationResult(
Expand Down Expand Up @@ -179,4 +178,4 @@ class AuthorizationServiceImpl(val context: Context, val packageName: String, ov
runCatching { callback?.onResult(Status.SUCCESS) }
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ import com.google.android.gms.common.internal.GetServiceRequest
import com.google.android.gms.common.internal.IGmsCallbacks
import org.microg.gms.BaseService
import org.microg.gms.auth.folsom.ui.GenericActivity
import org.microg.gms.common.Constants.GMS_PACKAGE_NAME
import org.microg.gms.common.GmsService
import org.microg.gms.common.PackageUtils
import org.microg.gms.utils.warnOnTransactionIssues

private const val TAG = "KeyRetrievalService"
Expand Down Expand Up @@ -149,7 +149,7 @@ class KeyRetrievalServiceImpl(val context: Context) : IKeyRetrievalService.Stub(
callback: IKeyRetrievalCallback?, accountName: String?, type: Int, metadata: ApiMetadata?
) {
Log.d(TAG, "Not implemented startUxFlow accountName:$accountName type:$type metadata:$metadata")
val intent = Intent().apply { setClassName(GMS_PACKAGE_NAME, GenericActivity::class.java.name) }
val intent = Intent().apply { setClassName(PackageUtils.getSelfPackageName(context), GenericActivity::class.java.name) }
val pendingIntent = PendingIntentCompat.getActivity(context, 0, intent, FLAG_UPDATE_CURRENT, false)
val states = Status(CommonStatusCodes.SUCCESS, "UX flow PendingIntent retrieved.", pendingIntent)
callback?.onResult(states)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import com.google.android.gms.common.api.CommonStatusCodes
import com.google.android.gms.common.api.Status
import com.google.android.gms.common.internal.safeparcel.SafeParcelableSerializer
import org.microg.gms.auth.AuthConstants
import org.microg.gms.common.Constants

const val ACTION_ASSISTED_SIGN_IN = "com.google.android.gms.auth.api.credentials.ASSISTED_SIGNIN"
const val GET_SIGN_IN_INTENT_REQUEST = "get_sign_in_intent_request"
Expand Down Expand Up @@ -98,7 +97,7 @@ class AssistedSignInActivity : AppCompatActivity() {
Log.d(TAG, "prepareSignIn options:$googleSignInOptions")
val signInConfiguration = SignInConfiguration(clientPackageName!!, googleSignInOptions!!)
val intent = Intent(this, AuthSignInActivity::class.java).apply {
`package` = Constants.GMS_PACKAGE_NAME
`package` = this@AssistedSignInActivity.packageName
putExtra("config", signInConfiguration)
putExtra("nonce", signInIntentRequest?.nonce)
}
Expand Down Expand Up @@ -166,4 +165,4 @@ class AssistedSignInActivity : AppCompatActivity() {
assistedSignInFragment.initView()
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import com.google.android.gms.credential.manager.common.ISettingsCallback
import com.google.android.gms.credential.manager.firstparty.internal.ICredentialManagerService
import com.google.android.gms.credential.manager.invocationparams.CredentialManagerInvocationParams
import org.microg.gms.BaseService
import org.microg.gms.common.Constants
import org.microg.gms.common.GmsService
import org.microg.gms.common.GooglePackagePermission
import org.microg.gms.common.PackageUtils
Expand Down Expand Up @@ -63,7 +62,7 @@ private class CredentialManagerServiceImpl(private val context: Context, overrid
lifecycleScope.launchWhenStarted {
runCatching {
val intent = Intent().apply {
setClassName(Constants.GMS_PACKAGE_NAME, PASSWORD_MANAGER_CLASS_NAME)
setClassName(PackageUtils.getSelfPackageName(context), PASSWORD_MANAGER_CLASS_NAME)
putExtra(EXTRA_KEY_ACCOUNT_NAME, params.account.name)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}
Expand Down Expand Up @@ -99,4 +98,4 @@ private class CredentialManagerServiceImpl(private val context: Context, overrid
}

override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ import org.microg.gms.auth.AuthConstants
import org.microg.gms.auth.AuthManager
import org.microg.gms.auth.AuthPrefs
import org.microg.gms.auth.signin.checkAccountAuthStatus
import org.microg.gms.common.Constants
import org.microg.gms.common.GmsService
import org.microg.gms.common.PackageUtils
import org.microg.gms.games.achievements.AchievementsApiClient
Expand Down Expand Up @@ -580,7 +579,7 @@ class GamesServiceImpl(val context: Context, override val lifecycle: Lifecycle,

private fun getGamesIntent(action: String, block: Intent.() -> Unit = {}) = Intent(action).apply {
// Jump to internal page implementation
setPackage(Constants.GMS_PACKAGE_NAME)
setPackage(PackageUtils.getSelfPackageName(context))
putExtra(EXTRA_ACCOUNT_KEY, Integer.toHexString(account.name.hashCode()))
putExtra(EXTRA_GAME_PACKAGE_NAME, packageName)
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
Expand Down Expand Up @@ -793,4 +792,4 @@ class GamesServiceImpl(val context: Context, override val lifecycle: Lifecycle,

override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import kotlinx.coroutines.withContext
import org.microg.gms.auth.AuthConstants
import org.microg.gms.auth.AuthManager
import org.microg.gms.auth.signin.SignInConfigurationService
import org.microg.gms.common.Constants
import org.microg.gms.games.ACTION_VIEW_ACHIEVEMENTS
import org.microg.gms.games.ACTION_VIEW_LEADERBOARDS
import org.microg.gms.games.ACTION_VIEW_LEADERBOARDS_SCORES
Expand Down Expand Up @@ -348,7 +347,7 @@ class GamesUiFragment : BottomSheetDialogFragment() {
}
}?.adapter = LeaderboardsAdapter(context, loadLeaderboards) { leaderboard ->
val intent = Intent(ACTION_VIEW_LEADERBOARDS_SCORES)
intent.setPackage(Constants.GMS_PACKAGE_NAME)
intent.setPackage(context.packageName)
intent.putExtra(EXTRA_GAME_PACKAGE_NAME, clientPackageName)
intent.putExtra(EXTRA_ACCOUNT_KEY, Integer.toHexString(currentAccount?.name.hashCode()))
intent.putExtra(EXTRA_LEADERBOARD_ID, leaderboard.id)
Expand Down Expand Up @@ -461,4 +460,4 @@ class GamesUiFragment : BottomSheetDialogFragment() {
}?.adapter = AchievementsAdapter(context, targetList)
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ class GcmInGmsService : LifecycleService() {
handleIntent(intent)
} else {
val intent = Intent(ACTION_GCM_RECONNECT).apply {
setPackage(Constants.GMS_PACKAGE_NAME)
setPackage(this@GcmInGmsService.packageName)
}
sendBroadcast(intent)
}
Expand Down Expand Up @@ -270,7 +270,7 @@ class GcmInGmsService : LifecycleService() {
val content = notificationData.content ?: return
val intentExtras = notificationData.intentActions?.primaryPayload?.extras ?: return
val intent = Intent(this, MainActivity::class.java).apply {
`package` = Constants.GMS_PACKAGE_NAME
`package` = this@GcmInGmsService.packageName
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_MULTIPLE_TASK
intentExtras.forEach { putExtra(it.key, it.value_) }
putExtra(KEY_NOTIFICATION_ID, notificationId)
Expand Down Expand Up @@ -309,9 +309,9 @@ class GcmInGmsService : LifecycleService() {
}
Log.d(TAG, "updateGroupsWithAccount extras: $extras")
val intent = Intent(GcmConstants.ACTION_GCM_SEND).apply {
setPackage(Constants.GMS_PACKAGE_NAME)
setPackage(this@GcmInGmsService.packageName)
putExtras(extras)
putExtra(GcmConstants.EXTRA_APP, Intent().apply { setPackage(Constants.GMS_PACKAGE_NAME) }.let { PendingIntentCompat.getBroadcast(this@GcmInGmsService, 0, it, 0, false) })
putExtra(GcmConstants.EXTRA_APP, Intent().apply { setPackage(this@GcmInGmsService.packageName) }.let { PendingIntentCompat.getBroadcast(this@GcmInGmsService, 0, it, 0, false) })
}.also {
it.putExtra(GcmConstants.EXTRA_MESSENGER, Messenger(object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
Expand Down Expand Up @@ -387,7 +387,7 @@ class GcmInGmsService : LifecycleService() {
} else {
Log.d(TAG, "registerGcmInGms: sendBroadcast: ${intent.action}")
Intent(intent.action).apply {
setPackage(Constants.GMS_PACKAGE_NAME)
setPackage(this@GcmInGmsService.packageName)
putExtras(intent)
}.let { sendBroadcast(it) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import kotlinx.coroutines.withContext
import org.microg.gms.auth.AuthConstants
import org.microg.gms.checkin.LastCheckinInfo
import org.microg.gms.common.Constants
import org.microg.gms.common.PackageUtils
import org.microg.gms.common.Utils
import org.microg.gms.gcm.GMS_NOTS_BASE_URL
import org.microg.gms.gcm.GMS_NOTS_OAUTH_SERVICE
Expand Down Expand Up @@ -128,7 +129,7 @@ class ChimeGmsRegistrationHelper(val context: Context) {
private fun buildDeviceContext() = GmsDeviceContext.build {
languageTag = if (SDK_INT >= 24) LocaleList.getDefault().get(0).toLanguageTag() else Locale.getDefault().language
gmsDeviceProfile = GmsDeviceProfile.build {
val packageInfo = context.packageManager.getPackageInfo(Constants.GMS_PACKAGE_NAME, 0)
val packageInfo = context.packageManager.getPackageInfo(PackageUtils.getSelfPackageName(context), 0)
density = context.resources.displayMetrics.density
versionName = packageInfo.versionName
release = Build.VERSION.RELEASE
Expand Down Expand Up @@ -175,4 +176,4 @@ class ChimeGmsRegistrationHelper(val context: Context) {
fun resetAllData() {
chimeAccountsStore.edit { clear() }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import com.google.android.gms.R
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.microg.gms.auth.AuthConstants
import org.microg.gms.common.Constants
import org.microg.gms.gcm.ACTION_GCM_CONNECTED
import org.microg.gms.gcm.ACTION_GCM_REGISTER_ALL_ACCOUNTS
import org.microg.gms.people.DatabaseHelper
Expand Down Expand Up @@ -67,7 +66,7 @@ class AccountsFragment : PreferenceFragmentCompat() {

private fun registerGcmInGms() {
Intent(ACTION_GCM_REGISTER_ALL_ACCOUNTS).apply {
`package` = Constants.GMS_PACKAGE_NAME
`package` = requireContext().packageName
}.let { requireContext().sendBroadcast(it) }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ import androidx.annotation.RequiresApi
import com.huawei.hms.maps.MapClientIdentify
import com.huawei.hms.maps.utils.MapClientUtil
import org.microg.gms.common.Constants
import org.microg.gms.maps.MapsRemoteContextHolder
import java.io.File

class MapContext(private val context: Context) : ContextWrapper(context.createPackageContext(Constants.GMS_PACKAGE_NAME, Context.CONTEXT_INCLUDE_CODE or Context.CONTEXT_IGNORE_SECURITY)) {
class MapContext(private val context: Context) : ContextWrapper(MapsRemoteContextHolder.require()) {
private var layoutInflater: LayoutInflater? = null
private val appContext: Context
get() = context.applicationContext ?: context
Expand Down Expand Up @@ -77,4 +78,4 @@ class MapContext(private val context: Context) : ContextWrapper(context.createPa
companion object {
val TAG = "GmsMapContext"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ import android.content.ContextWrapper
import android.content.Intent
import android.content.SharedPreferences
import android.view.LayoutInflater
import org.microg.gms.common.Constants
import org.microg.gms.maps.MapsRemoteContextHolder
import java.io.File

class MapContext(private val context: Context) : ContextWrapper(context.createPackageContext(Constants.GMS_PACKAGE_NAME, Context.CONTEXT_INCLUDE_CODE or Context.CONTEXT_IGNORE_SECURITY)) {
class MapContext(private val context: Context) : ContextWrapper(MapsRemoteContextHolder.require()) {
private var layoutInflater: LayoutInflater? = null
private val appContext: Context
get() = context.applicationContext ?: context
Expand Down
Loading