diff --git a/docs/OpenMobileNetworkToolkit.md b/docs/OpenMobileNetworkToolkit.md index 929ba881..c9036893 100644 --- a/docs/OpenMobileNetworkToolkit.md +++ b/docs/OpenMobileNetworkToolkit.md @@ -15,6 +15,8 @@ * [Slicing](./slicing.md) * [InfluxDB](./influxdb.md) * [Workprofile](./workprofile.md) + * IMS + * [How-to Enable IMS on 999xx PLMNs](./howto_ims.md) * [Settings](settings/settings.md) * [Logging](settings/logging.md) * [Mobile Network](settings/mobile_network.md) diff --git a/docs/carrier-permissions.md b/docs/carrier-permissions.md index 0e149f9c..ac782822 100644 --- a/docs/carrier-permissions.md +++ b/docs/carrier-permissions.md @@ -32,4 +32,30 @@ aram_store_ref_ar_do --aid ffffffffffff --device-app-id E849B63A7B96E571F788FC58 ``` This assumes the credentials to access the card are stored in the pySim format. +--- + +#### Alternative Solution + +The `aram_store_ref_ar_do` command may return the following error: +``` +EXCEPTION of type 'ValueError' occurred with message: Dict [{'ref_ar_do': [{'ref_do': [{'aid_ref_do': 'FFFFFFFFFFFF'}, {'dev_app_id_ref_do': 'E46872F28B350B7E1F140DE535C2A8D5804F0BE3'}]}, {'ar_do': [{'apdu_ar_do': {'generic_access_rule': 'always'}}, {'perm_ar_do': {'permissions': '0000000000000001'}}]}]}] doesn't contain expected key command_store_ref_ar_do +``` + +In this case, the GP provided by the [CoIMS_Wiki](https://github.com/herlesupreeth/CoIMS_Wiki) project can be used as an alternative solution by following the steps below. To implement this solution, the KIC1, KID1 and KIK1 keys of the SIM card are required. +```bash +git clone https://github.com/herlesupreeth/CoIMS_Wiki +cd CoIMS_Wiki +alias gp="java -jar $PWD/gp.jar" +gp --key-enc --key-mac --key-dek -lvi +# Unlock the SIM card for easier installation of applet +gp --key-enc --key-mac --key-dek --unlock +# Install ARA-M Java Card applets on USIM/ISIM +gp --install applet.cap +# Push the SHA-1 certificate of the OMNT app onto ARA-M in USIM/ISIM +gp -a 00A4040009A00000015141434C0000 -a 80E2900033F031E22FE11E4F06FFFFFFFFFFFFC114E849B63A7B96E571F788FC5845C4AA3C520D18E8E30DD00101DB080000000000000001 +# Check the list of installed certificates +gp --acr-list-aram +``` + + [Home](OpenMobileNetworkToolkit.md) \ No newline at end of file diff --git a/docs/howto_ims.md b/docs/howto_ims.md new file mode 100644 index 00000000..5732d14e --- /dev/null +++ b/docs/howto_ims.md @@ -0,0 +1,26 @@ +# How-to Enable IMS on 999xx PLMNs + +It is possible to activate IMS on PLMN IDs such as 999xx using OMNT. To achieve this, the following steps should be followed: + +1. In addition to the **internet** APN, create another APN value for IMS on the smartphone. + +* Go to `Settings/Network and Internet/SIMs/` +* Add the APN in `Access point names`. (Name: *ims*, APN: *ims*, APN type: *ims*, APN protocol: *IPv4*, APN roaming protocol: *IPv4*). After that, save it and leave the **internet** APN selected. + +2. Disable SQN checking on SIM cards. (See the *Disabling / Enabling SQN validation* section of the sysmoISIM user manuals) +```bash +# Add '--pcsc-shared' flag if the card status includes 'Shared Mode' +# p: Card reader number in the 'pcsc_scan' output +./pySim-shell.py --pcsc-shared -p 1 +pySIM-shell > verify_adm +pySIM-shell > select ADF.USIM/EF.USIM_SQN +pySIM-shell > read_binary_decoded # Check the "sqn_check" value +pySIM-shell > update_binary_decoded --json-path $.flag1.sqn_check false +pySIM-shell > read_binary_decoded # Check again if the "sqn_check" value is false +``` + +3. IMS activation by overriding the IMS settings may be required if the PLMN ID of the SIM card is not in the [carrier list](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/refs/heads/main/assets/sdk34_carrier_id/carrier_list.textpb). SysmoISIM cards can connect to IMS without needing extra SIM card configuration if the PLMN ID is **00101**, but for some PLMN IDs such as **999xx**, the following steps should be applied: + +* The carrier permissions should be activated. (See [SIM Card Setup for Carrier Permissions](./carrier-permissions.md)) + +* Open the OMNT app and enable `CARRIER_VOLTE_AVAILABLE_BOOL` and `CARRIER_VOLTE_PROVISIONED_BOOL` in `Settings/Mobile Network/Android 10 API 29 (Q)`. Then, press `Apply carrier settings now`. \ No newline at end of file