I saw a response to most of my questions in a previous history https://www.mifare.net/support/forum/topic/set-keys-and-do-authentication-to-desfire-using-mifare-advanced-sdk/
I think the example in the link above was very helpful. I have a follow-up questions though
1> Please explain why its not a good practice to change the whole card default key, Am assuming the master key for default app(0) is the main master key that can be used to reformat the whole card right?
2> in the change key function
objDESFireEV1.changeKey( 1 , 2, (byte)0x00, 5, (byte)0, DESFire.KeyType.TWOK3DES,
IKeyConstants.DIV_OPTION_NODIVERSIFICATION, null );
showMessage( "Card key 1 changed from default to new value", 'd' );
What determines number of keys I have? where was the number of keys defined first before knowing which number to change.
+ 0 | - 0