- Modificato
Allora do per scontato che tu sappia come avere accesso alla carrier policy (avendo fatto la modifica per il 5G).
Prendendo come riferimento quella di Oneplus 8, puoi vedere che all'inizio della carrier policy sono definite varie liste. Queste liste si dividono in due tipo:
- mcc_list
Lista di MCC, dove MCC sta per Mobile Country Code, è un codice assegnato ad ogni paese per l'identificazione delle reti mobili. Nel caso dell'italia è 222.
Ecco un esempio:<!-- 1 europe_mccs --> <mcc_list name="europe_mccs"> 202 204 206 208 212 212 213 214 216 218 219 220 222 226 228 230 231 232 234 235 238 240 242 244 246 247 248 255 257 259 260 262 266 268 270 272 274 276 278 280 284 286 288 292 293 294 295 297 </mcc_list>
- plmn_list
Lista di PLMN, dove PLMN sta per Public Land Mobile Network, il codice PLMN che identifica univocamente una rete mobile è la combinazione del sopracitato MCC e dell'MNC, l'MNC (Mobile Network Code) è il codice assegnato dalle autorità nazionali a ciascuna rete mobile. Nel caso di iliad l'MNC è 50, il PLMN quindi è 222-50.
Ecco un esempio:<plmn_list name = "EU_IT_plmns"> 222-01 222-10 222-99 </plmn_list>
Generalmente le liste di PLMN hanno la priorità su quelle MCC, quindi in linea di massima se non troviamo il PLMN in alcuna lista ci concentreremo sulla lista MCC. Però, come nel caso di oneplus, le cose possono essere un po' più complesse e serve un minimo di conoscenze di programmazione di base (IF, switch, not, and, or) per capire cosa toccare e bisogna anche combattere contro gli errori di chi le ha scritte che confonde ancor di più le cose.
Nel caso della carrier policy di oneplus, quella che si applica su rete iliad è l'ultima che fa riferimento a europe_mccs (il nome della lista MCC):
Premi per mostrare Premi per nascondere
<!--1 europe_bands-->
<case>
<all_of>
<location_mcc_in list="europe_mccs" />
<not><imsi_mcc_in list="test_sim_mccs" /></not>
<not><imsi_plmn_in list="test_sim_plmns" /></not>
</all_of>
<actions>
<rat_capability base="none">
<include> G W L </include>
</rat_capability>
<rf_bands list="europe_bands" />
<ue_mode> CSFB </ue_mode>
<rat_order> L W G </rat_order>
<!-- add NoUL CA Combos of UL CA by liuweibin 2018-8-30 -->
<ca_band_combos string="3A4A-1A4-m3;3A4-1A4A-m3;7A4A-1A4-m3;7A4-1A4A-m3;20A2A-1A4-m1;20A2-1A4A-m1;32A2-1A4A-m1;7A4A-3A4-m3;7A4-3A4A-m3;20A2A-3A4-m3;20A2-3A4A-m3;32A2-3A4A-m1;38A4A-3A4-m1;38A4-3A4A-m1;20A2A-7A4-m7;20A2-7A4A-m7;32A2-7A4A-m1;32A2-20A2A-m3;38A4A-20A2-m1;38A4-20A2A-m1;3C44A-m1;7C44A-m7;38C44A-m1;46A2A-1A4-m3;46A2-1A4A-m3;46A2A-3A4-m3;46A2-3A4A-m3;46A2A-7A4-m3;46A2-7A4A-m3;3C44A-1A4-m1;3C44-1A4A-m1;7C44A-1A4-m3;7C44-1A4A-m3;7A2A-3A4-1A4-m3;7A2-3A4A-1A4-m3;7A2-3A4-1A4A-m3;7A4A-3A4-1A2-m3;7A4-3A4A-1A2-m3;7A4-3A4-1A2A-m3;7A4A-3A4-1A4-m3;7A4-3A4A-1A4-m3;7A4-3A4-1A4A-m3;20A2A-3A4-1A4-m1;20A2-3A4A-1A4-m1;20A2-3A4-1A4A-m1;20A2A-7A4-1A4-m7;20A2-7A4A-1A4-m7;20A2-7A4-1A4A-m7;7C44A-3A4-m3;7C44-3A4A-m3;7A4A-3C44-m1;7A4-3C44A-m1;7A4A-3A4-3A2-m3;7A4-3A4A-3A2-m3;7A2A-3A4-3A4-m3;7A2-3A4A-3A4-m3;8A2A-3A4-3A4-m3;8A2-3A4A-3A4-m3;8A2A-7A4-3A4-m7;8A2-7A4A-3A4-m7;8A2-7A4-3A4A-m7;20A2A-7A4-3A4-m3;20A2-7A4A-3A4-m3;20A2-7A4-3A4A-m3;38A2A-7A2-3A4-m1;38A2-7A2A-3A4-m1;38A2-7A2-3A4A-m1;38A2-7A4-3A4A-m1;38A2-7A4A-3A4-m1;38A2A-7A4-3A4-m1;38A4A-20A2-7A4-m1;38A4-20A2A-7A4-m1;38A4-20A2-7A4A-m1;20A2A-3A4A-m3;20A2A-7A4A-m7;3C44C-m1;7C44C-m7;38C44C-m1;3C44C-1A4-m1;7C44C-1A4-m3;20A2A-3A4A-1A4-m1;20A2A-7A4A-1A4-m7;7C44C-3A4-m3;7A4-3C44C-m1;20A2A-7A4-3A4A-m3;20A2A-7A4A-3A4-m3;38A4-20A2A-7A2A-m1;" />
</actions>
</case>
La riga dove vedi ca_band_combos string=
è quella che dice al dispositivo quale lista di combinazioni considerare.
Ogni singola combinazione è così composta:
LTE Band c'è poco da dire, è una delle bande lte.
Downlink Bandwidth Class e Uplink Bandwidth Class fanno riferimento rispettivamente alle CA Bandwidth Class in uplink o downlink, in parole povere quanto spettro di quel carrier può essere utilizzato in uplink o downlink. Quando la BW Class in uplink è omessa, quel carrier non è utilizzato in uplink. Quando sono presenti entrambe quel carrier viene usato in entrambe le direzioni. In Italia nessun operatore ha in uso più di 20MHz per una specifica banda 4G, quindi possiamo tranquillamente ignorare le bandwidth class diverse da A.
Number of RX Antennas letteralmente il numero di antenne riceventi, i valori più comuni sono 2 e 4. Se questo campo è omesso non viene applicata alcuna limitazione al numero di antenne riceventi. Se la bandwidth class prevede più sotto-componenti (ad esempio C ne richiede 2) viene specificato il numero di antenne RX per ogni sotto componente (es. 42 = 4RX prima sotto-componente, 2RX seconda sotto-componente)
Bandwidth Combination set è praticamente quello che nella lista di CA vedi indicato come BCS, specifica (indirettamente) quali ampiezze di spettro sono supportate per ciascuna componente.
Esistono tre modi per indicare i BCS nelle carrier policy:
- 0...N
Indica che la BCS identificata con quel numero è supportata - m0...mN
I bit a 1 della rappresentazione binaria del valore che segue M indicano le BCS supportate (quelli a 0 le non supportate) - mAll
Non viene applicata alcuna limitazioni al numero di BCS supportate.
Visto che sono troppo pigro per controllarmi ogni singola combinazione a mano ho realizzato un parser per automatizzare il processo. Una volta compilati correttamente tutti campi, ci tocca analizzare il risultato.
Sostanzialmente nella riga a sinistra ci sono le bande aggregate in download, al centro i vari 4x4 supportati e a sinistra cosa è supportato in upload (sulla wiki di lteitaly trovi qualche dettaglio in più).
Ora noi sappiamo (te lo dico io) che iliad su rete windtre aggrega 20-7-3-1¹ con qualsiasi combinazione di 2 bande in upload² e sulla loro rete aggregano 7-7-3-1³ con qualsiasi banda in upload. Aiutandoci con cacombos e smartphonecombo possiamo facilmente capire cosa manca.
Per 20-7-3-1 mancano queste combinazioni:
Premi per mostrare Premi per nascondere
20A2-7A4-3A4-1A4A-mAll;
20A2-7A4-3A4A-1A4-mAll;
20A2-7A4A-3A4-1A4-mAll;
20A2A-7A4-3A4-1A4-mAll;
20A2A-7A4-3A4A-1A4-mAll;
20A2A-7A4A-3A4-1A4-mAll;
⠀
Per 7-7-3-1 queste:
Premi per mostrare Premi per nascondere
7A2-7A4-3A4-1A4A-mAll;
7A2-7A4-3A4A-1A4-mAll;
7A2-7A4A-3A4-1A4-mAll;
7A2A-7A4-3A4-1A4-mAll;
7A4-7A4-3A4-1A2A-mAll;
7A4-7A4-3A4A-1A2-mAll;
7A4-7A4A-3A4-1A2-mAll;
7A4-7A4A-3A4-mAll;
7A4-7A4-3A4A-mAll;
7A4-7A4A-1A4-mAll;
7A4-7A4-1A4A-mAll;
7A4-7A4A-mAll;
⠀
Per semplicità usiamo mAll come BCS, così da non complicarci la vita (grazie Qualcomm!)
Aggiungiamo questo elenco di combinazioni alla fine della lista individuata poco sopra, salviamo, carichiamo la nuova configurazione sul dispositivo e lo riavviamo.
Qualche precisazione importante:
- esistono due carrier policy, carrier_policy.xml per la SIM nello slot 1 e carrier_policy.xml_Subscription01 per la SIM nello slot 2
- Questa non è una guida universale, alcuni telefoni Qualcomm gestiscono le carrier policy anche molto differentemente.
- Cambiare SIM, modificare la configurazione delle stesse o effettuare un hard-reset può annullare le modifiche applicate alla carrier policy.
- Le carrier policy vengono usate per limitare ciò che i dispositivi supportano, è consuetudine trovare cose non supportate dal terminale (o addirittura assurde) nelle carrier policy, semplicemente quelle regole vengono ignorate. Modificare le carrier policy serve solo ad eliminare le limitazioni applicate mediante essa, non può eliminare limitazioni applicate a livello firmware o hardware.
- Esiste una scorciatoia, è possibile sostituire la lista di combinazioni con "", ma tale pratica può comportare malfunzionamenti (anche gravi) su dispositivi che supportano tante combinazioni, quindi meglio evitare.
- Le info qui sopra non sono ufficiali pertanto possono essere parzialmente o completamente errate, sono frutto di mie ricerche personali in collaborazione con alcuni utenti di Cellmapper, NSG, Wndworld e 4pda.
¹ Non ha accesso alla 38
² La famosa UL CA (carrier aggregation upload), presente solo nelle aree dove WindTre usa Ericsson
³ La seconda B7 è stata assegnata temporaneamente a iliad per aiutarla a fronteggiare l'aumento del traffico causa pandemia di corona virus.