PixelIMS: build corregido (APIs ocultas con android.jar completo), docs y diagnostico VoLTE Pixel 6 + NeWWW, APK en dist/
Build PixelIMS APK / build (push) Canceled after 0s
Build PixelIMS APK / build (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# Diagnóstico VoLTE — Pixel 6 (oriole) + NeWWW (Altán Redes, MCC/MNC 334-140)
|
||||
|
||||
Fecha: 2026-09-22 · Dispositivo: Google Pixel 6 · Android 16 (CP1A.260405.005), parche de seguridad 2026-04-05 · SIM: NeWWW (334140)
|
||||
|
||||
## Síntoma inicial
|
||||
|
||||
VoLTE no disponible para la SIM de NeWWW (Red Altán) en un Pixel 6: la app PixelIMS parecía cerrarse al aplicar y las llamadas por voz no funcionaban por la red.
|
||||
|
||||
## Cadena de evidencia (logcat + dumpsys, vía adb)
|
||||
|
||||
### 1. La configuración de operador SÍ se aplica
|
||||
|
||||
```
|
||||
I PixelIMS: Applying to all 1 SIM(s)
|
||||
I PixelIMS: ✓ Config applied for subId=4 persistent=true
|
||||
```
|
||||
|
||||
El bypass (Instrumentation + delegación de shell vía Shizuku) funciona en Android 16 con parche 2026-04: la config se aplica con `persistent=true` y queda firmada con la versión de la app (`Config is current, no override needed` en arranques posteriores).
|
||||
|
||||
### 2. Aprovisionamiento IMS activo
|
||||
|
||||
```
|
||||
I PixelIMS: IMS Voice Opt-In already enabled.
|
||||
```
|
||||
|
||||
La flag `KEY_VOIMS_OPT_IN_STATUS` está en `PROVISIONING_VALUE_ENABLED` (la capa de aprovisionamiento no bloquea).
|
||||
|
||||
### 3. APN IMS presente en la SIM
|
||||
|
||||
```
|
||||
Row: 11 name=NeWWW, apn=internet.newww.com, type=default, sub_id=4
|
||||
Row: 12 name=NeWWW, apn=ims, type=ims, sub_id=4
|
||||
```
|
||||
|
||||
El APN `ims` ya viene provisionado — no hubo que agregarlo manualmente.
|
||||
|
||||
### 4. La red concede voz sobre LTE
|
||||
|
||||
```
|
||||
notifyServiceStateForSubscriber: subId=4 ...
|
||||
mVoiceRegState=0(IN_SERVICE)
|
||||
domain=CS transportType=WWAN registrationState=HOME accessNetworkTechnology=LTE
|
||||
availableServices=[VOICE,SMS,VIDEO] rRplmn=334140
|
||||
```
|
||||
|
||||
La red de Altán da servicio de voz por LTE a este equipo — el bloqueo no era de red ni de lista blanca del operador.
|
||||
|
||||
### 5. El toggle de usuario estaba apagado
|
||||
|
||||
El módem Shannon reportaba el toggle de usuario apagado pese a la config aplicada:
|
||||
|
||||
```
|
||||
ShannonQNS-0-HC: ... USER0. VoLTE supported: true enabled: false ...
|
||||
ImsManager [0]: updateVoiceCellFeatureValue: available = true, enabled = false,
|
||||
provisioned = true, voLteFeatureOn = false
|
||||
```
|
||||
|
||||
La override hace el toggle **visible y editable**, pero no lo enciende. Solución: Ajustes → Red e internet → SIMs → NeWWW → **"Llamadas 4G (VoLTE)"** → ON (una sola vez). Confirmado en el dump de UI:
|
||||
|
||||
```xml
|
||||
<node text="VoLTE" ... summary="Usar servicios de LTE para mejorar las llamadas de voz (recomendado)"/>
|
||||
<node resource-id="com.android.settings:id/switchWidget" class="android.widget.Switch" checked="true"/>
|
||||
```
|
||||
|
||||
Nota: el estado del toggle NO vive en `Settings.Global` (`volte_vt_enabled*` no existía y escribir esas claves no cambió el estado del módem). El cambio efectivo se hace desde la UI de Ajustes, que lo empuja al módem vía el proceso de telefonía.
|
||||
|
||||
### 6. El ImsService del módem corre con normalidad
|
||||
|
||||
```
|
||||
cmd phone ims get-ims-service -d → com.shannon.imsservice
|
||||
ps -A: com.shannon.imsservice (2528), .ShannonImsService (3344)
|
||||
ServiceRecord com.shannon.imsservice/.ShannonImsService (bound por com.android.phone)
|
||||
```
|
||||
|
||||
El stack IMS del módem Exynos 5123 está vivo y enlazado — no requería intervención.
|
||||
|
||||
## Sobre el "la app se cierra"
|
||||
|
||||
PixelIMS no crashea (no hay FATAL en `logcat -b crash` de `io.github.pixelims`). Lo que se observa:
|
||||
|
||||
1. Al pulsar Apply, la Instrumentation lanza `PrivilegedProcess`; en Android 14+ corre en un **proceso de SDK sandbox** (`io.github.pixelims_sdk_sandbox_instr`) que aplica la config por callback de binder y el sistema lo mata al terminar ("finished instr") — comportamiento normal.
|
||||
2. La UI principal se va a segundo plano durante ~3 s y el fork la relanza sola (START MainActivity con `LAUNCH_MULTIPLE` en logcat). La percepción de "cierre" es ese parpadeo.
|
||||
3. Dentro del sandbox, `createPackageContext(...)` no puede leer `/data/user/0/io.github.pixelims/shared_prefs` (warnings en logcat) y el código cae al fallback con los toggles por defecto — por eso conviene aplicar con "All SIMs" y valores por defecto.
|
||||
|
||||
### Crash real detectado (otro componente): VozApp en Android 16
|
||||
|
||||
```
|
||||
FATAL EXCEPTION: main Process: com.altanredes.altanvoip
|
||||
ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to
|
||||
mAllowStartForeground false: com.unikie.vm.application.engine.services.AppStatusService
|
||||
```
|
||||
|
||||
La app VoIP oficial de Altán crashea al arrancar un servicio en foreground desde segundo plano (restricción de Android 14+). Bug del proveedor (Unikie), no del dispositivo. Con VoLTE nativo funcionando, VozApp no es necesaria.
|
||||
|
||||
## Conclusiones
|
||||
|
||||
| Componente | Estado |
|
||||
|---|---|
|
||||
| Bypass de config (Instrumentation + Shizuku) | ✅ Funciona en Android 16 (2026-04) |
|
||||
| Aprovisionamiento IMS | ✅ Habilitado |
|
||||
| APN ims | ✅ Presente en la SIM |
|
||||
| Voz sobre LTE en la red (Altán 334-140) | ✅ Concedida `[VOICE,SMS,VIDEO]` |
|
||||
| Toggle "Llamadas 4G" | ⚠️ Manual: visible tras aplicar, hay que encenderlo |
|
||||
| ImsService Shannon | ✅ Corriendo |
|
||||
| **VoLTE** | ✅ **Funcionando** |
|
||||
|
||||
Lección principal: con el bypass aplicado, el eslabón que faltaba era **el toggle de usuario en Ajustes del SIM**, no la config del operador ni la red.
|
||||
Reference in New Issue
Block a user