Most importantly, there is no ACK SMS anymore, because the next LU is
the implicit ACK. While at it, I've filled in the first TS we probably
need to update.
Related: OS#440
Instead of a sub-menu for changing the IMSI, just offer a dialog with the
current IMSI pre-filled in an edit field.
"Show IMSI" becomes just "Change IMSI" without changing anything.
Change mi2str() so that it simply returns a byte[] of the right size.
Test new mi2str()
Use fixed applet-project.mk to put Mobile Identity implementations in a
separate class MobileIdentity.java.
That allows trivially testing the MobileIdentity implementation outside of an
actual SIM card environment: add a 'test' target to the Makefile and a
Test.java class that runs some tests.
Since it is counting nibbles, we need to take the length, which is in
bytes, two times. Also increase the size of the whole string, because
there are additional numbers infront of the imsi, it seems.
There are still two numbers missing at the end, and there is a
mysterious ) character. But other than that, it's working.
It takes time to figure out where exactly a certain class/object/... is
located. Just import all of them. It does not seem to impact the size of
the applet, as there's a blog post writing about performance that does
it the same way [1]. Besides, except for the HelloSTK hello world, I've
seen it in all other code done that way, including 3GPP 03.19 Annex C.
[1]: https://gelvaos.blogspot.com/2011/04/
Add a menu with the following actions:
IMSI Pseudonymization
1 Show LU counter
2 Show IMSI
3 Change IMSI
Selecting "Change IMSI" opens a submenu:
Change IMSI
1 Set 1 as last digit
2 Set 2 as last digit
Except for "Show LU counter", the actions are not implemented yet.