NFC parçalarını AOSP'den indirdim ve Android tarafından kullanılan ve kart emülasyonu tarafından kullanılan rastgele UID'yi oluşturmak için kullanılan yöntemi arıyorum. Amacım, hedefle bir iletişim olduğunda her zaman başka bir tanesine sahip olmak yerine UID'yi düzeltmektir.Android NFC Kart öykünmesi sabit UID
void nfa_ce_t3t_generate_rand_nfcid (UINT8 nfcid2[NCI_RF_F_UID_LEN])
{
UINT32 rand_seed = GKI_get_tick_count();
/* For Type-3 tag, nfcid2 starts witn 02:fe */
nfcid2[0] = 0x02;
nfcid2[1] = 0xFE;
/* The remaining 6 bytes are random */
nfcid2[2] = (UINT8) (rand_seed & 0xFF);
nfcid2[3] = (UINT8) (rand_seed>>8 & 0xFF);
rand_seed>>=(rand_seed&3);
nfcid2[4] = (UINT8) (rand_seed & 0xFF);
nfcid2[5] = (UINT8) (rand_seed>>8 & 0xFF);
rand_seed>>=(rand_seed&3);
nfcid2[6] = (UINT8) (rand_seed & 0xFF);
nfcid2[7] = (UINT8) (rand_seed>>8 & 0xFF);
}
Bu yöntem FeliCa etiketleri için bir UID oluşturmak: Bu içeren dosya "nfa_ce_act.c" modülü "-nci libnfc" içeride buldum. Varsayılan olarak 0x08 ile başlayan bir UID oluşturan ISO14443 kartları (MIFARE) için bulamıyorum. Martijn Coenen'e göre, G + Postasında açıklandığı gibi, bu bir şey olabilir.
Üzgünüm, birçok kişi bu istediğini fark, ancak resmi sürümünde mümkün değildir. (Tabii ki bazı AOSP korsanlığı ile yapabilirsiniz). Bunun nedeni, HCE'nin arka plan çalışması etrafında tasarlanmasıdır. Uygulamaların UID'yi ayarlamasına izin verirsek, her uygulama muhtemelen kendi UID'lerini ayarlamak ister ve çakışmayı çözmenin bir yolu yoktur. Umuyoruz ki, HCE ile NFC altyapısı, UID'ye güvenmek yerine (ki bu zaten kolayca klonlanmış) yerine, kimlik doğrulaması yapmak için protokol yığınının daha yüksek seviyelerine geçecektir. https://plus.google.com/+MartijnCoenen/posts/iX6LLoQmZLZ
herkes bunu başarmak için nasıl biliyor mu?
Teşekkür
Şimdiye kadar herhangi bir çözüm buldunuz mu? –