From 5d4f3314d5812f3d7dd918e27a4106e16027cca2 Mon Sep 17 00:00:00 2001 From: Ahavah <155780902+Ahavahdev1@users.noreply.github.com> Date: Mon, 20 Jul 2026 12:18:56 -0300 Subject: [PATCH] Add TelephonyManager support to PhoneInfo Added a constructor to PhoneInfo that initializes cell and SIM operators using TelephonyManager. --- .../java/org/microg/gms/common/PhoneInfo.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/play-services-base/core/src/main/java/org/microg/gms/common/PhoneInfo.java b/play-services-base/core/src/main/java/org/microg/gms/common/PhoneInfo.java index 1fbc4bf951..3ddc73ba89 100644 --- a/play-services-base/core/src/main/java/org/microg/gms/common/PhoneInfo.java +++ b/play-services-base/core/src/main/java/org/microg/gms/common/PhoneInfo.java @@ -1,11 +1,11 @@ /* - * Copyright (C) 2013-2017 microG Project Team + * Copyright (C) 2013-2026 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 + * 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, @@ -16,6 +16,8 @@ package org.microg.gms.common; +import android.content.Context; +import android.telephony.TelephonyManager; import java.util.Random; public class PhoneInfo { @@ -24,6 +26,34 @@ public class PhoneInfo { public String simOperator = "26207"; public String imsi = randomImsi(); + public PhoneInfo() { + // Construtor padrão exigido pelo ecossistema + } + + public PhoneInfo(Context context) { + if (context != null) { + try { + TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + if (tm != null) { + String networkOperator = tm.getNetworkOperator(); + if (networkOperator != null && networkOperator.length() >= 5) { + this.cellOperator = networkOperator; + } + String simOp = tm.getSimOperator(); + if (simOp != null && simOp.length() >= 5) { + this.simOperator = simOp; + } + if (tm.isNetworkRoaming()) { + this.roaming = "mobile-roaming"; + } + this.imsi = randomImsi(); + } + } catch (Exception ignored) { + // Mantém o fallback padrão de testes caso falte permissão + } + } + } + private String randomImsi() { Random random = new Random(); StringBuilder sb = new StringBuilder(simOperator);