Hello,
Sorry, for the late reply. (replying again as prev mails failed)
> Which is "your test sim". Can you share
the make and model?
It's a sysmoUSIM-SJS1, I believe.
I'm receiving 9000 for INSTALL for load, and for consequent LOAD
commands 9000 as well. Only for the last INSTALL for install, I'm
getting 6A88 (reference data not found). I think, the issue is in
AIDs. I'm trying to figure out if I should use arbitrary bytes for AID
or construct AID (which includes RID + RIX) the same way as
existing Load Files, Applets' AID are on the SIM card?
I'm using d07002CA44 from this
https://github.com/mrlnc/HelloSTK2,
I believe that should be reason for the 6A88 error code.
Could you please assist?
Here is my Install for Install Python3 code:
--
def install_install_make_selectable(self, exe_rid="d07002CA44",
module_aid="d07002CA44900101",
app_aid="d07002CA44900101"):
apdu = "".join([
"80", # CLS
"e6", # INSTR
"0c", # p1 ; for install (b3=1) ; for make selectable (b4=1)
"00", # p2
"%02x", # p3 ; Lc
])
# 11.5.2.3.2, page 170
data = "".join([
"%02x" % int(len(exe_rid)/2),
exe_rid, # V, executable Load file AID / load file AID
"%02x" % int(len(module_aid)/2),
module_aid, # V, executable Module AID / class file AID
"%02x" % int(len(app_aid)/2),
app_aid, # V, Application AID / instance AID
"0100", # L privileges ; V=00, 11.1.2 Privileges
Coding, page 146
"%02x", # L Install Parameters field
])
system_params_v = "".join([
"c802", # TL - non-volatile memory quota
"00ff", # V
"c702", # TL - volatile memory quota
"00ff",
])
install_params_tl = "".join([
"EF", # T - System Specific Parameters
"%02x"
])
install_params_v = ""
install_params_v += system_params_v
install_params_v += "".join([
# ETSI 102 226, page 23
# 8.2.1.3.2.1 Coding of the SIM File Access and Toolkit
Application Specific Parameters
"ca",
"%02x", # TL
])
toolkit_app_params = "".join([
"01", # L of access domain
##
## Access Domain
## 00 - full access
## 01 - APDU access (reserved for 2G; see 3GPP TS 31 116)
## 02 - UICC access (reserved for 3G)
## ff - no access
##
"ff", # V access domain
"01", # V priority
"00", # V max timers
"0f", # V max menu text
"02", # V max menu entries
"0000" * int("02"),
"00", # max number of channels for this application instance
"00", # length of MSL
])
install_params_v = install_params_v %
int(len(toolkit_app_params)/2) + toolkit_app_params
### C9 - Application Specific Parameters (none?)
applet_specific_params_v = "".join([
""
])
applet_specific_params_tlv = "".join([
"c9",
"%02x" % int(len(applet_specific_params_v)/2),
applet_specific_params_v
])
install_params_v += applet_specific_params_tlv
install_params = install_params_tl %
int(len(install_params_v)/2) + install_params_v
data = data % int(len(install_params)/2) + install_params
data += "00" # load token
apdu = apdu % int(len(data)/2) + data
apdu += "00c0000000" # C-MAC
return apdu
On Tue, Jan 4, 2022, 6:30 PM Harald Welte <laforge(a)osmocom.org> wrote:
Hi Sabr,
On Mon, Jan 03, 2022 at 03:51:54PM +0600, Sabyrzhan Tasbolatov wrote:
Following up
I didn't see your original mail, sorry.
> I need help with installing the
HelloWorld.cap applet in my test SIM.
Which is "your test sim". Can you share the make and model?
> I know how to construct APDUs and
osmocom's shadysim.py
> <https://git.osmocom.org/sim/sim-tools/tree/shadysim/shadysim.py>,
> does not work properly for me.
please note that different cards have different expectations (and bugs) on
the exact
parameters to load applets. Also, shadysim is a "early proof of concept"
and not something that intended to be a full implementation and/or
support a wide variety of cards with related workarounds, etc.
--
- Harald Welte <laforge(a)osmocom.org>
http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch.
A6)