Can I upload software to my SIM card? No.
Most phones accept some type of SIM card, while not all phones have a means of user-controlled offline external storage (microSD, etc.).
Why can't the user access a SIM card? Why can't she look at the software stored on a SIM card?
The SIM card slot is pretty much off-limits to the user. Yet the user owns the phone.
This is like buying a computer that has a special card slot owned by a single company or a consortium of companies that produce special cards only for their own use. The user is effectively denied access to the slot.
FYI: the main Javacard applet on a SIM card is the GSM applet, the one you use to authenticate against your network. Other applets are useful for network operators: IMEI tracking sends them your phone ID to help them configure it correctly -- it is also used to track stolen phones. Another useful one updates your preferred foreign network list when you change countries, connecting you automatically to a cheaper network when available.
Uploading your own software will not do you much good. As mentioned above, CPU and memory are very limited on SIM cards, and Javacard is basically a glorified assembler you do not want to touch. SIM cards are mostly there to perform some simple crypto operations for network authentication and that's it.
Yes, the telecom owns the card they give you. Indeed, that is their property. But they don't need to own the smart card standard and use it to exclude users from using the slot.
Imagine if the motherboard you bought would had certain slots that were off-limits to you and open to use only by certain companies.
As for "glorified assemler", have you considered something more succinct, like FORTH. There's nothing glorious about Java.
Javacard is not Java. No OO, no classes, no GC, no floats, no strings, the only data type you can use is int16. Have fun.
I don't want no stinking Java, whether it's a small subset of the language or the full blown monster. For the task at hand, I'd have more fun with assembly language than anything prefixed with "Java".
The blank smart card possibilities are enticing. If we can use our own crypto.
Doesn't OpenMoko's WikiReader run FORTH?
As for running a known-secure firmware: in the end a SIM card only authenticate you against a Mobile Operator with a pre-shared key. If you believe your SIM is running a non-secure firmware, how can you trust your Mobile Network Operator not to do fancy stuff on their network behind your back?
"Crapware" is just my opinion. Although I've heard others note the same thing.
The ChromeOS developers are currently porting coreboot to ARM, too.
http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Int...
Hence firmware to replace BIOS, with the same purpose as BIOS.
So do you re-program your UEFI firmware?
And since when is x86-64 an ARM system, since that was my remark?