Project

General

Profile

Actions

Bug #6288

closed

eUICC support: get_profiles_info only lists one of two profiles

Added by laforge 5 months ago. Updated 5 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
pySim-shell
Target version:
-
Start date:
12/06/2023
Due date:
% Done:

100%

Spec Reference:

Description

pySIM-shell (00:MF/ADF.ISD-R)> get_profiles_info 
-> 80E2910003 bf2d00
<- 6100: 
-> 80c0000000 
<- 6100: bf2d82032ba0820327e38202e35a0a980010325476981032144f10a0000005591010ffffffff89000010009f70010191095350204e616d652031921a4f7065726174696f6e616c2050726f66696c65204e616d6520319301019482029089504e470d0a1a0a0000000d49484452000000400000004008040000000060b9550000000774494d4507e00b091007364c956f97000000097048597300000b1200000b1201d2dd7efc0000000467414d410000b18f0bfc61050000021f4944415478daed99cd1583200c803d32000b3004abb00ecbb0822338578af559223f49b0a8175f2ec023e1238410db09a667e5e1e55f80bf00f686060b1e66b80420c02a3255
-> 80c0000000 
<- 6100: 0d0e966e8cc6f0128d193460635fa66a3b7d511db48dd94788b655d7815071ba26e61b9000acc711841085eb398d84c0cd94f921ebe2ddab18db6b5005b055c3bc752b4038745c5339449cd4950248100e1d4528fac207b228e3101a4bd4ae52ba96a603808b05d44c27adab2af8807a00a6184b228014807566eca13538e5008ac890bf06be809e4dbebe0b808a842a009ffd7b010436af06b04f034c8d47ea46004703e034e4d95b90a98a447300dc353c9f07a843404d9b2d904bca84f62480a7013c39351431225b722de9f6ad591a0047c194e5ae19bd865afc1a26976f088603c0a7ac9117fce131f64200bcdfed8e290ee058906c46f2fad09dac885a
-> 80c0000000 
<- 6130: b1550c68d2a8b426dcf69b8e71f76d195b15cd368207463513fd2dea6648476b2500eb999b6250fa5dc0499e0b88b921f2bbaf782e877588930370724e4d3f0dd01d49dbe7e92cb940423172008f3ed3c6011c03b1396bce6ec24800c703b862682480a20142250b8c05c081385186cd65009607d059dd772b80ae3cb963010205b054436414808abb0ff237752480a996fb3702d8334fda0bf002bc002fc0488053b5f5380005dc0a1703f03ffdfdc433a6fa010cf1ef4165c831e602b40134844c66e67fa4c1000618e5ab8f6008c03faab7028c9117e0036baf44917035af0e0000000049454e44ae426082950100e33e5a0a985822548200107813094f10
-> 80c0000030 
<- 9000: a0000005591010ffffffff89000011009f700100910d526564746561204d6f62696c659208526564746561474f950102
{
    "profile_info_seq": {
        "profile_info": {
            "iccid": "98582254820010781309",
            "isdp_aid": "a0000005591010ffffffff8900001100",
            "profile_state": "disabled",
            "service_provider_name": "Redtea Mobile",
            "profile_name": "RedteaGO",
            "profile_class": "operational" 
        }
    }
}

but:

LIBEUICC_DEBUG_APDU=1 ./lpac profile list | json_pp                                                                                                    74/0/0
[DEBUG] [REQ] CLA: 81, INS: E2, P1: 91, P2: 00, Lc: 03, Data: BF 2D 00 
[DEBUG] [RES] SW1: 61, SW2: 00, Data: 
[DEBUG] [REQ] CLA: 81, INS: C0, P1: 00, P2: 00, Lc: 00, Data: 
[DEBUG] [RES] SW1: 61, SW2: 00, Data: BF 2D 82 03 2B A0 82 03 27 E3 82 02 E3 5A 0A 98 00 10 32 54 76 98 10 32 14 4F 10 A0 00 00 05 59 10 10 FF FF FF FF 89 00 00 10 00 9F 70 01 01 91 09 53 50 20 4E 61 6D 65 20 31 92 1A 4F 70 65 72 61 74 69 6F 6E 61 6C 20 50 72 6F 66 69 6C 65 20 4E 61 6D 65 20 31 93 01 01 94 82 02 90 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 40 00 00 00 40 08 04 00 00 00 00 60 B9 55 00 00 00 07 74 49 4D 45 07 E0 0B 09 10 07 36 4C 95 6F 97 00 00 00 09 70 48 59 73 00 00 0B 12 00 00 0B 12 01 D2 DD 7E FC 00 00 00 04 67 41 4D 41 00 00 B1 8F 0B FC 61 05 00 00 02 1F 49 44 41 54 78 DA ED 99 CD 15 83 20 0C 80 3D 32 00 0B 30 04 AB B0 0E CB B0 82 23 38 57 8A F5 59 22 3F 49 B0 A8 17 5F 2E C0 23 E1 23 84 10 DB 09 A6 67 E5 E1 E5 5F 80 BF 00 F6 86 06 0B 1E 66 B8 04 20 C0 2A 32 55 
[DEBUG] [REQ] CLA: 81, INS: C0, P1: 00, P2: 00, Lc: 00, Data: 
[DEBUG] [RES] SW1: 61, SW2: 00, Data: 0D 0E 96 6E 8C C6 F0 12 8D 19 34 60 63 5F A6 6A 3B 7D 51 1D B4 8D D9 47 88 B6 55 D7 81 50 71 BA 26 E6 1B 90 00 AC C7 11 84 10 85 EB 39 8D 84 C0 CD 94 F9 21 EB E2 DD AB 18 DB 6B 50 05 B0 55 C3 BC 75 2B 40 38 74 5C 53 39 44 9C D4 95 02 48 10 0E 1D 45 28 FA C2 07 B2 28 E3 10 1A 4B D4 AE 52 BA 96 A6 03 80 8B 05 D4 4C 27 AD AB 2A F8 80 7A 00 A6 18 4B 22 80 14 80 75 66 EC A1 35 38 E5 00 8A C8 90 BF 06 BE 80 9E 4D BE BE 0B 80 8A 84 2A 00 9F FD 7B 01 04 36 AF 06 B0 4F 03 4C 8D 47 EA 46 00 47 03 E0 34 E4 D9 5B 90 A9 8A 44 73 00 DC 35 3C 9F 07 A8 43 40 4D 9B 2D 90 4B CA 84 F6 24 80 A7 01 3C 39 35 14 31 22 5B 72 2D E9 F6 AD 59 1A 00 47 C1 94 E5 AE 19 BD 86 5A FC 1A 26 97 6F 08 86 03 C0 A7 AC 91 17 FC E1 31 F6 42 00 BC DF ED 8E 29 0E E0 58 90 6C 46 F2 FA D0 9D AC 88 5A 
[DEBUG] [REQ] CLA: 81, INS: C0, P1: 00, P2: 00, Lc: 00, Data: 
[DEBUG] [RES] SW1: 61, SW2: 30, Data: B1 55 0C 68 D2 A8 B4 26 DC F6 9B 8E 71 F7 6D 19 5B 15 CD 36 82 07 46 35 13 FD 2D EA 66 48 47 6B 25 00 EB 99 9B 62 50 FA 5D C0 49 9E 0B 88 B9 21 F2 BB AF 78 2E 87 75 88 93 03 70 72 4E 4D 3F 0D D0 1D 49 DB E7 E9 2C B9 40 42 31 72 00 8F 3E D3 C6 01 1C 03 B1 39 6B CE 6E C2 48 00 C7 03 B8 62 68 24 80 A2 01 42 25 0B 8C 05 C0 81 38 51 86 CD 65 00 96 07 D0 59 DD 77 2B 80 AE 3C B9 63 01 02 05 B0 54 43 64 14 80 8A BB 0F F2 37 75 24 80 A9 96 FB 37 02 D8 33 4F DA 0B F0 02 BC 00 2F C0 48 80 53 B5 F5 38 00 05 DC 0A 17 03 F0 3F FD FD C4 33 A6 FA 01 0C F1 EF 41 65 C8 31 E6 02 B4 01 34 84 4C 66 E6 7F A4 C1 00 06 18 E5 AB 8F 60 08 C0 3F AA B7 02 8C 91 17 E0 03 6B AF 44 91 70 35 AF 0E 00 00 00 00 49 45 4E 44 AE 42 60 82 95 01 00 E3 3E 5A 0A 98 58 22 54 82 00 10 78 13 09 4F 10 
[DEBUG] [REQ] CLA: 81, INS: C0, P1: 00, P2: 00, Lc: 30, Data: 
[DEBUG] [RES] SW1: 90, SW2: 00, Data: A0 00 00 05 59 10 10 FF FF FF FF 89 00 00 11 00 9F 70 01 00 91 0D 52 65 64 74 65 61 20 4D 6F 62 69 6C 65 92 08 52 65 64 74 65 61 47 4F 95 01 02 
{
   "payload" : {
      "code" : 0,
      "data" : [
         {
            "iccid" : "89000123456789012341",
            "icon" : "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAAB3RJTUUH4AsJEAc2TJVvlwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAAIfSURBVHja7ZnNFYMgDIA9MgALMASrsA7LsIIjOFeK9VkiP0mwqBdfLsAj4SOEENsJpmfl4eVfgL8A9oYGCx5muAQgwCoyVQ0Olm6MxvASjRk0YGNfpmo7fVEdtI3ZR4i2VdeBUHG6JuYbkACsxxGEEIXrOY2EwM2U+SHr4t2rGNtrUAWwVcO8dStAOHRcUzlEnNSVAkgQDh1FKPrCB7Io4xAaS9SuUrqWpgOAiwXUTCetqyr4gHoAphhLIoAUgHVm7KE1OOUAisiQvwa+gJ5Nvr4LgIqEKgCf/XsBBDavBrBPA0yNR+pGAEcD4DTk2VuQqYpEcwDcNTyfB6hDQE2bLZBLyoT2JICnATw5NRQxIltyLen2rVkaAEfBlOWuGb2GWvwaJpdvCIYDwKeskRf84TH2QgC83+2OKQ7gWJBsRvL60J2siFqxVQxo0qi0Jtz2m45x920ZWxXNNoIHRjUT/S3qZkhHayUA65mbYlD6XcBJnguIuSHyu694Lod1iJMDcHJOTT8N0B1J2+fpLLlAQjFyAI8+08YBHAOxOWvObsJIAMcDuGJoJICiAUIlC4wFwIE4UYbNZQCWB9BZ3XcrgK48uWMBAgWwVENkFICKuw/yN3UkgKmW+zcC2DNP2gvwArwAL8BIgFO19TgABdwKFwPwP/39xDOm+gEM8e9BZcgx5gK0ATSETGbmf6TBAAYY5auPYAjAP6q3AoyRF+ADa69EkXA1rw4AAAAASUVORK5CYII=",
            "iconType" : 1,
            "isdpAid" : "A0000005591010FFFFFFFF8900001000",
            "profileClass" : 0,
            "profileName" : "Operational Profile Name 1",
            "profileState" : 1,
            "serviceProviderName" : "SP Name 1" 
         },
         {
            "iccid" : "89852245280001873190",
            "isdpAid" : "A0000005591010FFFFFFFF8900001100",
            "profileClass" : 2,
            "profileName" : "RedteaGO",
            "profileState" : 0,
            "serviceProviderName" : "Redtea Mobile" 
         }
      ],
      "message" : "success" 
   },
   "type" : "lpa" 
}

Actions #1

Updated by laforge 5 months ago

As we can see from the hexdumps, the raw data returned by the card is actually the same. It's just the decoder that doesn't provide multiple results. In fact, even the JSON stucture doesn't inclue a list of objects in the profile_info_seq, but just a single named object. And if multiple objects have the same name, they overwrite each other and only the last one survives. This may be a more general problem with our TLV parser.

Actions #2

Updated by laforge 5 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10

ok, it's the flatten_dict_lists function which converts the correctly decoded (but verbose/complex)

[
    {
        "profile_info_seq": [
            {
                "profile_info": [
                    {
                        "iccid": "98001032547698103214" 
                    },
                    {
                        "isdp_aid": "a0000005591010ffffffff8900001000" 
                    },
                    {
                        "profile_state": "enabled" 
                    },
                    {
                        "service_provider_name": "SP Name 1" 
                    },
                    {
                        "profile_name": "Operational Profile Name 1" 
                    },
                    {
                        "icon_type": "png" 
                    },
                    {
                        "icon": "89504e470d0a1a0a0000000d49484452000000400000004008040000000060b9550000000774494d4507e00b091007364c956f97000000097048597300000b1200000b1201d2dd7efc0000000467414d410000b18f0bfc61050000021f4944415478daed99cd1583200c803d32000b3004abb00ecbb0822338578af559223f49b0a8175f2ec023e1238410db09a667e5e1e55f80bf00f686060b1e66b80420c02a32550d0e966e8cc6f0128d193460635fa66a3b7d511db48dd94788b655d7815071ba26e61b9000acc711841085eb398d84c0cd94f921ebe2ddab18db6b5005b055c3bc752b4038745c5339449cd4950248100e1d4528fac207b228e3101a4bd4ae52ba96a603808b05d44c27adab2af8807a00a6184b228014807566eca13538e5008ac890bf06be809e4dbebe0b808a842a009ffd7b010436af06b04f034c8d47ea46004703e034e4d95b90a98a447300dc353c9f07a843404d9b2d904bca84f62480a7013c39351431225b722de9f6ad591a0047c194e5ae19bd865afc1a26976f088603c0a7ac9117fce131f64200bcdfed8e290ee058906c46f2fad09dac885ab1550c68d2a8b426dcf69b8e71f76d195b15cd368207463513fd2dea6648476b2500eb999b6250fa5dc0499e0b88b921f2bbaf782e877588930370724e4d3f0dd01d49dbe7e92cb940423172008f3ed3c6011c03b1396bce6ec24800c703b862682480a20142250b8c05c081385186cd65009607d059dd772b80ae3cb963010205b054436414808abb0ff237752480a996fb3702d8334fda0bf002bc002fc0488053b5f5380005dc0a1703f03ffdfdc433a6fa010cf1ef4165c831e602b40134844c66e67fa4c1000618e5ab8f6008c03faab7028c9117e0036baf44917035af0e0000000049454e44ae426082" 
                    },
                    {
                        "profile_class": "test" 
                    }
                ]
            },
            {
                "profile_info": [
                    {
                        "iccid": "98582254820010781309" 
                    },
                    {
                        "isdp_aid": "a0000005591010ffffffff8900001100" 
                    },
                    {
                        "profile_state": "disabled" 
                    },
                    {
                        "service_provider_name": "Redtea Mobile" 
                    },
                    {
                        "profile_name": "RedteaGO" 
                    },
                    {
                        "profile_class": "operational" 
                    }
                ]
            }
        ]
    }
]

to the brief:

{
    "profile_info_seq": {
        "profile_info": {
            "iccid": "98582254820010781309",
            "isdp_aid": "a0000005591010ffffffff8900001100",
            "profile_state": "disabled",
            "service_provider_name": "Redtea Mobile",
            "profile_name": "RedteaGO",
            "profile_class": "operational" 
        }
    }
}
Actions #3

Updated by laforge 5 months ago

  • % Done changed from 10 to 90

with https://gerrit.osmocom.org/c/pysim/+/35238 applied:

{
    "profile_info_seq": [
        {
            "profile_info": {
                "iccid": "98001032547698103214",
                "isdp_aid": "a0000005591010ffffffff8900001000",
                "profile_state": "enabled",
                "service_provider_name": "SP Name 1",
                "profile_name": "Operational Profile Name 1",
                "icon_type": "png",
                "icon": "89504e470d0a1a0a0000000d49484452000000400000004008040000000060b9550000000774494d4507e00b091007364c956f97000000097048597300000b1200000b1201d2dd7efc0000000467414d410000b18f0bfc61050000021f4944415478daed99cd1583200c803d32000b3004abb00ecbb0822338578af559223f49b0a8175f2ec023e1238410db09a667e5e1e55f80bf00f686060b1e66b80420c02a32550d0e966e8cc6f0128d193460635fa66a3b7d511db48dd94788b655d7815071ba26e61b9000acc711841085eb398d84c0cd94f921ebe2ddab18db6b5005b055c3bc752b4038745c5339449cd4950248100e1d4528fac207b228e3101a4bd4ae52ba96a603808b05d44c27adab2af8807a00a6184b228014807566eca13538e5008ac890bf06be809e4dbebe0b808a842a009ffd7b010436af06b04f034c8d47ea46004703e034e4d95b90a98a447300dc353c9f07a843404d9b2d904bca84f62480a7013c39351431225b722de9f6ad591a0047c194e5ae19bd865afc1a26976f088603c0a7ac9117fce131f64200bcdfed8e290ee058906c46f2fad09dac885ab1550c68d2a8b426dcf69b8e71f76d195b15cd368207463513fd2dea6648476b2500eb999b6250fa5dc0499e0b88b921f2bbaf782e877588930370724e4d3f0dd01d49dbe7e92cb940423172008f3ed3c6011c03b1396bce6ec24800c703b862682480a20142250b8c05c081385186cd65009607d059dd772b80ae3cb963010205b054436414808abb0ff237752480a996fb3702d8334fda0bf002bc002fc0488053b5f5380005dc0a1703f03ffdfdc433a6fa010cf1ef4165c831e602b40134844c66e67fa4c1000618e5ab8f6008c03faab7028c9117e0036baf44917035af0e0000000049454e44ae426082",
                "profile_class": "test" 
            }
        },
        {
            "profile_info": {
                "iccid": "98582254820010781309",
                "isdp_aid": "a0000005591010ffffffff8900001100",
                "profile_state": "disabled",
                "service_provider_name": "Redtea Mobile",
                "profile_name": "RedteaGO",
                "profile_class": "operational" 
            }
        }
    ]
}
Actions #4

Updated by laforge 5 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)