{"id":3135,"date":"2026-07-02T15:39:29","date_gmt":"2026-07-02T12:39:29","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=3135"},"modified":"2026-07-02T15:45:18","modified_gmt":"2026-07-02T12:45:18","slug":"nfc-li-android-telefonlarinizi-nasil-ntag-etiketine-donusturebilirsiniz","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2026\/07\/02\/nfc-li-android-telefonlarinizi-nasil-ntag-etiketine-donusturebilirsiniz\/","title":{"rendered":"NFC li ANDROID telefonlar\u0131n\u0131z\u0131, nas\u0131l NTAG etiketine d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz"},"content":{"rendered":"<h2 style=\"text-align: center;\"><strong>NFC li ANDROID telefonlar\u0131n\u0131z\u0131, nas\u0131l NTAG etiketine d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/strong><\/h2>\n<p>NFC deste\u011fi olan Android telefonlar\u0131n\u0131z\u0131 MIFARE veya NTAG etiketleri gibi NFC kart olarak \u00e7al\u0131\u015ft\u0131rabilece\u011finizi s\u00f6yledim.<br \/>\nElbette bunu yapabilirsiniz. Bu verece\u011fim program ile Android telefonunuzu PN532 NFC okuyucu kart ile nas\u0131l kullanabilece\u011finizi g\u00f6receksiniz.<br \/>\nBurada <span style=\"color: #ff0000;\">NEDEN RC522 ile yapam\u0131yorum sorusunu sorabilirsiniz.<\/span> PN532, banka kartlar\u0131 gibi kartlar\u0131n haberle\u015fmesinde baz\u0131 \u015feyleri kendi \u00fczerine al\u0131r. PN532 ye git kart haberle\u015fmesini yap, kart\u0131 oku, dedi\u011finizde bunu yapar. \u00c7\u00fcnk\u00fc nas\u0131l yapaca\u011f\u0131n\u0131 bilir.<br \/>\nRC522 de ise b\u00fct\u00fcn bu prosed\u00fcrleri sizin yazman\u0131z gerekir. Bundan dolay\u0131 bu i\u015fe yeni ba\u015fl\u0131yorsan\u0131z RC522 yi hi\u00e7 almay\u0131n.<br \/>\nPN532 den ba\u015flay\u0131n. Hatta RC522, anteninin zay\u0131f olmas\u0131ndan dolay\u0131 baz\u0131 klon kartlar\u0131 ve NTAG etiketlerini okumakta g\u00fc\u00e7l\u00fck \u00e7eker. PN532 Anten sisteminin g\u00fcc\u00fc ile hi\u00e7 bir kart\u0131 ka\u00e7\u0131rmaz. Telefonlar\u0131 bile.<\/p>\n<p><span style=\"color: #0000ff;\">FAKAT \u015eUNU YAPMANIZ LAZIM.<\/span><br \/>\n<strong><span style=\"color: #ff6600;\">\u00d6nce NFC konusundaki ilk yaz\u0131m\u0131 okuman\u0131z laz\u0131m.<\/span><\/strong> \u00c7\u00fcnk\u00fc orada verdi\u011fim de\u011ferli bilgileri buraya tekrar yazmad\u0131m.<br \/>\n\u00d6nce,<\/p>\n<ul>\n<li>NFC nedir?<\/li>\n<li>NFC kart ve etiketler nas\u0131l \u00e7al\u0131\u015f\u0131r?<\/li>\n<li>NDEF format\u0131 nedir?<\/li>\n<li>Bunlar\u0131 \u00f6\u011frenmeniz laz\u0131m.NFC hakk\u0131nda ilk yaz\u0131m <strong><a href=\"https:\/\/www.mikrobotik.com\/wp2\/2026\/05\/30\/rfid-ve-nfc-kartlara-giris-ve-kutuphanesiz-rc522-pn532-ve-android-6-0-kart-okuyucu-projeleri\/\" target=\"_blank\" rel=\"noopener\">bu adrestedir.<\/a>\u00a0<\/strong><\/li>\n<\/ul>\n<p>Yaz\u0131y\u0131 okuduktan sonra bu konuyu anlaman\u0131z, PN532 NFC okuyucuyu anlaman\u0131z \u00e7ok kolay olacakt\u0131r.<\/p>\n<p>\u015eimdi de ilk yap\u0131lacaklara bakal\u0131m.<\/p>\n<p>\u0130lk yap\u0131lacak \u015fey,<\/p>\n<ul>\n<li>Telefonumuzun NFC \u00f6zelli\u011fini a\u00e7mak.<\/li>\n<li>Bu uygulamay\u0131 telefonunuza y\u00fckleyip NFC telefonunuzun HCE moduna haz\u0131r olup olmad\u0131\u011f\u0131n\u0131 inceleyebilirsiniz.<br \/>\n<strong><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.techtool.nfcrfidreadwrite&amp;hl=tr\">Adresi budur.<\/a><\/strong> <span style=\"color: #ff6600;\">Dikkat edin paral\u0131 PRO s\u00fcr\u00fcm\u00fc de\u011fil reklam i\u00e7eren s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckleyin.\u00a0<\/span><\/li>\n<li>Bu uygulamay\u0131 a\u00e7t\u0131\u011f\u0131n\u0131zda en alttaki <span style=\"color: #ff6600;\">NFC \u00c7\u0130P B\u0130LG\u0130S\u0130 butonuna basarak <\/span>HCE modunda \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ve durumunu g\u00f6rebilirsiniz.A\u015fa\u011f\u0131daki resimler benim telefonumun \u00c7\u0130P bilgisidir.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/ANDROID_HCE_CHIP_1.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"alignleft lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/ANDROID_HCE_CHIP_1.jpg?raw=true\" alt=\"\" width=\"250\" height=\"150\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 250px; --smush-placeholder-aspect-ratio: 250\/150;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/ANDROID_HCE_CHIP_2.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"alignleft lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/ANDROID_HCE_CHIP_2.jpg?raw=true\" alt=\"\" width=\"250\" height=\"150\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 250px; --smush-placeholder-aspect-ratio: 250\/150;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/ANDROID_HCE_CHIP_3.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/ANDROID_HCE_CHIP_3.jpg?raw=true\" alt=\"\" width=\"250\" height=\"150\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 250px; --smush-placeholder-aspect-ratio: 250\/150;\" \/><\/a><\/p>\n<p>Siz de bu bilgilere g\u00f6re kendi telefonunuzu kontrol edebilirsiniz. <span style=\"color: #ff6600;\">\u00d6zellikle 2. sayfada HCE bilgisi ve \u00e7al\u0131\u015fabildi\u011fi NFC kart standartlar\u0131n\u0131 g\u00f6rebilirsiniz.<\/span><\/p>\n<p>Buraya kadar telefonunuzun NFC \u00e7ipinden de emin olduysan\u0131z, NFC ayarlar\u0131nda <span style=\"color: #ff6600;\">BEAM kapal\u0131<\/span> konuma getirin.<br \/>\nBunu da yapt\u0131ktan sonra ANDROID STUDIO program\u0131n\u0131 USB \u00fczerinden <span style=\"color: #ff6600;\">telefonunuza ba\u011flayabilirsiniz.<\/span> \u015eayet ben Android studio kurmayaca\u011f\u0131m bana <span style=\"color: #ff6600;\">APK ver diyorsan\u0131z<\/span> da indirebilece\u011finiz dosyalar aras\u0131nda <span style=\"color: #ff6600;\">APK dosyas\u0131n\u0131 da bulabilirsiniz.<\/span> Bunu telefonunuza y\u00fckleyebilirsiniz.<\/p>\n<p><span style=\"color: #ff0000;\">NOT:<\/span> Android Studio da telefonunuzu USB den ba\u011flayacaksan\u0131z. Telefonunuzda <strong>DOSYA AKTARIMI<\/strong> se\u00e7meniz gerek. Ayn\u0131 zamanda <strong>USB HATA AYIKLAMA a\u00e7\u0131k<\/strong> durumda olmal\u0131<\/p>\n<p>Bu HCE modundaki kart\u0131 <span style=\"color: #ff6600;\">nerede okutaca\u011f\u0131z.<\/span> Tabii ki ARDUINO destekli <span style=\"color: #ff6600;\">PN532 NFC kart okuyucuda<\/span> okutaca\u011f\u0131z.<br \/>\nDaha \u00f6nceki yaz\u0131mda MIFARE kartlar\u0131 ve NTAG kartlar\u0131n\u0131 okumak i\u00e7in nas\u0131l ki <span style=\"color: #ff6600;\">K\u00dcT\u00dcPHANES\u0130Z arduino programlar\u0131<\/span> varsa, burada da <span style=\"color: #ff6600;\">K\u00dcT\u00dcPHANES\u0130Z Arduino programlar\u0131 var.<\/span><br \/>\n<span style=\"color: #ff0000;\">Ba\u011flant\u0131lar 1. NFC YAZIM daki ba\u011flant\u0131larla ayn\u0131<\/span> \u015fekildedir Bir de\u011fi\u015fiklik yap\u0131lmad\u0131.<\/p>\n<p>Arduino programlar\u0131 2 adettir.<\/p>\n<ul>\n<li>android_PN532_8_kredili_OK<\/li>\n<li>android_PN532_8_yetkili_OK<\/li>\n<\/ul>\n<p><span style=\"color: #ff6600;\">Kredili program<\/span> \u0130ZM\u0130R deki 90 dk l\u0131k toplu ta\u015f\u0131ma kart\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 sim\u00fcle ediyor. Detayl\u0131 anlat\u0131m\u0131 1. NFC YAZIM da mevcuttur.<br \/>\n<span style=\"color: #ff6600;\">Yetkili program<\/span> ise \u015eirket ismi do\u011fru ise <span style=\"color: #ff6600;\">Bitmask Kap\u0131 numaras\u0131<\/span> <span style=\"color: #ff6600;\">okuyucunun kap\u0131 numaras\u0131 ile e\u015fle\u015fmi\u015fse<\/span> Telefonunuzu g\u00f6sterdi\u011finizde sizi <span style=\"color: #ff6600;\">YETK\u0130L\u0130<\/span> olarak g\u00f6r\u00fcp kap\u0131 a\u00e7acakt\u0131r.<br \/>\n<strong>Not:<\/strong> Ben arduinoya <span style=\"color: #ff6600;\">r\u00f6le eklemedim<\/span>. Bundan dolay\u0131 <span style=\"color: #ff6600;\">Ne B\u0130P sesi<\/span> Ne de <span style=\"color: #ff6600;\">kap\u0131 a\u00e7ma komutu verildi.<\/span> Sadece seri monit\u00f6rde YETK\u0130L\u0130 yazan sat\u0131r var. Bu sat\u0131rdan sonra <span style=\"color: #0000ff;\">BIP ve R\u00d6LE devresini siz programa eklersiniz.<\/span> BIP sesi olmad\u0131\u011f\u0131 i\u00e7in <span style=\"color: #0000ff;\">bazen telefonu erken kald\u0131rabiliyor olabilirsiniz<\/span>. Seri monit\u00f6rde <span style=\"color: #ff6600;\">\u0130\u015eLEM BA\u015eARILI kelimesini g\u00f6resiye kadar telefonu kald\u0131rmay\u0131n.<\/span> \u00d6zellikle Kredili programda kredi hesaplamadan sonra telefona yazma i\u015flemi yap\u0131l\u0131yor. Bu durumda <span style=\"color: #ff6600;\">i\u015flem yar\u0131m kalabilir<\/span>. <strong>EN \u0130Y\u0130 \u00c7\u00d6Z\u00dcM ARDU\u0130NOYA TRANS\u0130ST\u00d6RL\u00dc B\u0130R BUZZER KOYUP \u0130\u015eLEM BA\u015eARILI \u0130SE BIP DE\u011e\u0130L \u0130SE BIP BIP VERECEK SESL\u0130 D\u00dcZENE\u011e\u0130 HAZIRLAMAK.<\/strong> \u00c7o\u011fu profesyonel okuyucudaki gibi sesli g\u00f6r\u00fcnt\u00fcl\u00fc bildirim, erken telefonu kald\u0131rma problemini ortadan kald\u0131racakt\u0131r.<br \/>\nAyr\u0131ca benim videomu seyrederken g\u00f6receksiniz. <span style=\"color: #ff6600;\">Kablolardan dolay\u0131<\/span> bazen kenardan okutay\u0131m dedi\u011fimde i\u015flem hem telefonu yakal\u0131yor ama okurken problem yaratabiliyor. Bunu da yapmas\u0131n\u0131n sebebi telefon NFC anteninin tam senkron olamamas\u0131ndand\u0131r. Direkt olarak \u00fcstten a\u015fa\u011f\u0131 do\u011fru indirdi\u011finizde okuma sorunu ortadan kalkacakt\u0131r ya da yeriniz dar de\u011fil ise ba\u011flant\u0131 kablolar\u0131n\u0131 pn532 yi ge\u00e7meyecek \u015fekilde bulundu\u011fu yere bant ile bantlamak iyi bir \u00e7\u00f6z\u00fcm olabilir.<\/p>\n<p>Program\u0131 y\u00fckleyip ba\u011flant\u0131lar\u0131 do\u011fru yapt\u0131\u011f\u0131n\u0131zda kar\u015f\u0131n\u0131za a\u015fa\u011f\u0131daki gibi bir seri monit\u00f6r ekran\u0131 \u00e7\u0131kacak.<br \/>\n<span style=\"color: #0000ff;\">01:40:21.822 -&gt; Looking for PN532&#8230;<\/span><br \/>\n<span style=\"color: #0000ff;\">01:40:21.822 -&gt; PN532 bulundu &#8211; Firmware: 1.6<\/span><br \/>\n<span style=\"color: #0000ff;\">01:40:21.822 -&gt; Waiting for an ISO14443A Card or Phone (HCE) &#8230;<\/span><br \/>\nBurada <span style=\"color: #ff6600;\">PN532 BULUNDU yaz\u0131yor.<\/span> Demek ki devreniz do\u011fru \u00e7al\u0131\u015f\u0131yor. B\u00fct\u00fcn SPI ba\u011flant\u0131lar\u0131n\u0131z do\u011fru. Fakat <span style=\"color: #ff6600;\">PN532 ba\u011flant\u0131 yaparken 1.NFC YAZIM a bakarak<\/span> \u015femas\u0131na g\u00f6re ba\u011flant\u0131 yap\u0131n. \u00c7\u00fcnk\u00fc PN532 3V3 ile \u00e7al\u0131\u015f\u0131yor. Haberle\u015fme pinleride 3V3 ile \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan araya <span style=\"color: #ff6600;\">transist\u00f6rl\u00fc LEVEL SHIFTER seviye d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc<\/span> kullanman\u0131z gerekiyor.<br \/>\n<span style=\"color: #0000ff;\">Ayr\u0131ca PN532 yi sipari\u015f vermeden \u00f6nce 1. NFC YAZIM&#8217;a bakman\u0131z menfaatiniz icab\u0131d\u0131r.<\/span> Ben 1. kart\u0131 sipari\u015f etti\u011fimde gelen kart\u0131 <strong>D\u00dcNYA \u00fczerinde \u00e7al\u0131\u015ft\u0131ran\u0131 bulamad\u0131m.<\/strong> <span style=\"color: #ff6600;\">Yeni kart sat\u0131n ald\u0131m<\/span>. Sat\u0131n alma konusunda da <span style=\"color: #ff6600;\">1. NFC YAZIM size yol g\u00f6sterecektir.\u00a0<\/span><\/p>\n<p>\u015eayet telefonunuzu yakla\u015ft\u0131r\u0131rsan\u0131z aradaki haberle\u015fme de a\u015fa\u011f\u0131daki resimdeki gibi oluyor. Bu haberle\u015fme MIFARE ve NTAG haberle\u015fmesinden farkl\u0131 oluyor. \u00c7\u00fcnk\u00fc Telefonunuzdaki NFC HCE kart, SAK:0x20 denilen g\u00fcvenli kartlar\u0131n yap\u0131s\u0131nda oldu\u011fundand\u0131r. Yani Banka kartlar\u0131 kadar g\u00fcvenli bir yap\u0131dad\u0131r. Ya da Toplu ta\u015f\u0131m kartlar\u0131 kadar g\u00fcvenli yap\u0131dad\u0131r. Sadece sizin PN532 okuyucunuzla okunabilir.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/serimonitor_kredi.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/serimonitor_kredi.PNG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p><span style=\"color: #ff6600;\">Yukar\u0131daki resim<\/span> Kredili program\u0131n seri monit\u00f6r \u00e7\u0131kt\u0131s\u0131d\u0131r. <span style=\"color: #ff6600;\">A\u015fa\u011f\u0131daki resim<\/span> ise YETK\u0130L\u0130 kap\u0131 program\u0131na aittir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/serimonitor_yetki.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/NFC_ANDROID_HCE_EMULATE\/picture\/serimonitor_yetki.PNG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><br \/>\nBu ANDROID program\u0131nda <span style=\"color: #ff6600;\">bilgileri fiziksel bloklara de\u011fil NDEF format\u0131nda kaydettik<\/span>. Bu \u015fekilde de okumam\u0131z gerekti\u011fi i\u00e7in PN532 programlar\u0131 NDEF format\u0131nda okuma yap\u0131yor.<br \/>\n<span style=\"color: #ff6600;\"><strong>NDEF format\u0131 nedir diyorsan\u0131z, 1. NFC YAZIMA bir g\u00f6z atman\u0131z laz\u0131m.<\/strong><\/span><\/p>\n<p>Android studio program\u0131n\u0131 kurdu\u011funuzda<span style=\"color: #0000ff;\"> GEM\u0130N\u0130 den destek alarak kurun.<\/span> Telefonunuzu USB \u00fczerinden Android Studio ya ba\u011flayabilirsiniz. Yapt\u0131\u011f\u0131n\u0131z anl\u0131k de\u011fi\u015fiklikleri Telefonunuzdan takip edebilirsiniz.<\/p>\n<h3 data-path-to-node=\"5\">NFC-HCE Protokol\u00fc ve Ak\u0131ll\u0131 Telefon Haberle\u015fmesi Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h3>\n<p data-path-to-node=\"6\">Sistemin donan\u0131m ve telefon aras\u0131nda y\u00fcr\u00fctt\u00fc\u011f\u00fc haberle\u015fme zincirini ad\u0131m ad\u0131m inceleyelim:<\/p>\n<h4 data-path-to-node=\"7\">1. Telefonu Tan\u0131ma ve Uygulama Se\u00e7imi (AID Handshake)<\/h4>\n<p data-path-to-node=\"8\">Sistemde tarama yap\u0131ld\u0131\u011f\u0131nda <code data-path-to-node=\"8\" data-index-in-node=\"29\">SAK:0x20<\/code> \u015feklinde alg\u0131lanan cihazlar; bankamatik kartlar\u0131, geli\u015fmi\u015f toplu ta\u015f\u0131ma kartlar\u0131 veya HCE (Host Card Emulation) modundaki ak\u0131ll\u0131 telefonlard\u0131r. Bu geli\u015fmi\u015f mimaride geleneksel kartlardaki gibi basit sekt\u00f6r \u015fifreleri (Password) kullan\u0131lmaz. Bunun yerine telefon, kendisine has bir <b data-path-to-node=\"8\" data-index-in-node=\"318\">AID (Application Identifier &#8211; Uygulama Kimli\u011fi)<\/b> bilgisi yollar.<\/p>\n<p data-path-to-node=\"9\">Arduino program\u0131nda, telefonun i\u00e7indeki bizim uygulamam\u0131z\u0131 uyand\u0131rmak i\u00e7in g\u00f6nderilen APDU paketinin son sat\u0131r\u0131 bu AID numaras\u0131d\u0131r:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">bool HCE_selectAID(uint8_t tgNumber) {\r\n  uint8_t selectApdu[] = {\r\n    0xD4, 0x40, tgNumber,          \/\/ PN532 Protokol ba\u015fl\u0131\u011f\u0131\r\n    0x00, 0xA4, 0x04, 0x00, 0x07,  \/\/ ISO-7816 \"Uygulama Se\u00e7\" komutu (AID 7 byte uzunlu\u011fundad\u0131r)\r\n    0xD2, 0x76, 0x00, 0x00, 0x85, 0x01, 0x01  \/\/ \ud83c\udf1f Hedef Uygulama AID Numaras\u0131\r\n  };<\/pre>\n<p data-path-to-node=\"11\">Telefon bu AID numaras\u0131n\u0131 ald\u0131\u011f\u0131nda, kendi i\u00e7inde bu kimli\u011fe kay\u0131tl\u0131 bir HCE uygulamas\u0131 olup olmad\u0131\u011f\u0131na bakar. E\u011fer uygulamalar e\u015fle\u015firse, ba\u011flant\u0131n\u0131n ba\u015far\u0131yla kuruldu\u011funu bildirmek i\u00e7in okuyucuya standart <b data-path-to-node=\"11\" data-index-in-node=\"207\"><code data-path-to-node=\"11\" data-index-in-node=\"207\">90 00<\/code><\/b> (\u0130\u015flem Ba\u015far\u0131l\u0131) byte yan\u0131t\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. Art\u0131k telefon donan\u0131ma ba\u011flanm\u0131\u015ft\u0131r.<\/p>\n<h4 data-path-to-node=\"12\">2. Sanal Dosya Se\u00e7imi (NDEF File Selection)<\/h4>\n<p data-path-to-node=\"13\">Telefon ba\u011fland\u0131ktan sonra, okuyucunun telefon haf\u0131zas\u0131ndaki veri dosyas\u0131na eri\u015fmesi gerekir. Bu ama\u00e7la telefondan NDEF veri dosyas\u0131n\u0131 a\u00e7mas\u0131 talep edilir:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">bool HCE_selectNdefFile(uint8_t tgNumber) {\r\n  uint8_t apduSelectNdefFile[] = {\r\n    0xD4, 0x40, tgNumber, \r\n    0x00, 0xA4, 0x00, 0x01, 0x02, \/\/ ISO-7816 \"Dosya Se\u00e7\" komutu\r\n    0xE1, 0x04                    \/\/ \ud83d\udcc2 Hedef Dosya Kimli\u011fi (File ID: E104)\r\n  };<\/pre>\n<p data-path-to-node=\"15\">Yukar\u0131daki fonksiyon ile telefona yeni bir APDU komutu g\u00f6nderilir. En alt sat\u0131rdaki <code data-path-to-node=\"15\" data-index-in-node=\"84\">0xE1, 0x04<\/code> verisi telefonun anlayaca\u011f\u0131 dilde <i data-path-to-node=\"15\" data-index-in-node=\"129\">&#8220;Bana NDEF veri dosyas\u0131n\u0131 aktif et&#8221;<\/i> demektir. Telefon dosyay\u0131 haz\u0131rlar ve okuyucuya tekrar onay anlam\u0131nda <b data-path-to-node=\"15\" data-index-in-node=\"235\"><code data-path-to-node=\"15\" data-index-in-node=\"235\">90 00<\/code><\/b> g\u00f6nderir.<\/p>\n<h4 data-path-to-node=\"16\">3. Veri Okuma A\u015famas\u0131 (Read Binary)<\/h4>\n<p data-path-to-node=\"17\">Dosya da a\u00e7\u0131ld\u0131\u011f\u0131na g\u00f6re art\u0131k kart\u0131n i\u00e7indeki isim, \u015firket ve kredi gibi bilgileri okuma a\u015famas\u0131na ge\u00e7ilir:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">bool HCE_readBinary(uint8_t tgNumber, uint8_t *dataBuffer, uint8_t readLen) {\r\n  uint8_t apduReadBinary[] = {\r\n    0xD4, 0x40, tgNumber, \r\n    0x00, 0xB0,           \/\/ ISO-7816 \"Veri Oku (READ BINARY)\" komutu\r\n    0x00, 0x00,           \/\/ Okumaya ba\u015flanacak Ofset (Ba\u015flang\u0131\u00e7 noktas\u0131)\r\n    readLen               \/\/ Okunacak veri uzunlu\u011fu bilgisi (96 Byte)\r\n  };<\/pre>\n<p data-path-to-node=\"19\"><code data-path-to-node=\"19\" data-index-in-node=\"0\">HCE_readBinary<\/code> fonksiyonu ile g\u00f6nderilen bu APDU iste\u011fi sayesinde telefon, haf\u0131zas\u0131ndaki kullan\u0131c\u0131 bilgilerini okuyucuya ak\u0131tmaya ba\u015flar. Komuttaki <code data-path-to-node=\"19\" data-index-in-node=\"148\">0x00, 0x00<\/code> baytlar\u0131 dosyan\u0131n en ba\u015f\u0131ndan (s\u0131f\u0131r\u0131nc\u0131 indeksten) itibaren okunaca\u011f\u0131n\u0131; en alttaki <code data-path-to-node=\"19\" data-index-in-node=\"244\">readLen<\/code> (bizim sistemimizde daima 96 yani <code data-path-to-node=\"19\" data-index-in-node=\"286\">0x60<\/code>) ise telefondan toplam ka\u00e7 byte veri \u00e7ekilece\u011fini belirler. Gelen bu veriler <code data-path-to-node=\"19\" data-index-in-node=\"368\">dataBuffer<\/code> isimli diziye kaydedilir.<\/p>\n<h4 data-path-to-node=\"20\">4. Kredi G\u00fcncelleme ve Telefona Yazma A\u015famas\u0131 (Update Binary)<\/h4>\n<p data-path-to-node=\"21\">Okuyucu, telefondan ald\u0131\u011f\u0131 96 byte&#8217;l\u0131k veriyi inceleyip gerekli yetki kontrollerini ve bakiye hesaplamalar\u0131n\u0131 yapt\u0131ktan sonra, yeni bakiye ve zaman bilgilerini telefon haf\u0131zas\u0131na geri yazmak isteyebilir. \u0130\u015fte bu yazma i\u015flemi de yine bir APDU komut zinciriyle tetiklenir:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">bool HCE_writeBinary(uint8_t tgNumber, uint8_t* dataToWrite, uint8_t dataLen) {\r\n  \/\/ 8 Byte Birle\u015fik APDU Ba\u015fl\u0131\u011f\u0131:\r\n  \/\/ [PN532 Komut Yap\u0131s\u0131: 3 Byte] + [ISO-7816 Standart Ba\u015fl\u0131\u011f\u0131: 5 Byte]\r\n  uint8_t writeHeader[8] = {\r\n    0xD4,      \/\/ PN532 Komutu\r\n    0x40,      \/\/ InDataExchange modu\r\n    tgNumber,  \/\/ Telefon Hedef Numaras\u0131\r\n    0x00,      \/\/ CLA (S\u0131n\u0131f)\r\n    0xD6,      \/\/ INS (UPDATE BINARY - Yazma Komut Kodu)\r\n    0x00,      \/\/ P1 (Yaz\u0131lacak Ofset Y\u00fcksek)\r\n    0x00,      \/\/ P2 (Yaz\u0131lacak Ofset D\u00fc\u015f\u00fck)\r\n    dataLen    \/\/ Lc (Ard\u0131ndan gelecek veri uzunlu\u011fu - 96 Byte i\u00e7in daima 0x60)\r\n  }; \r\n\r\n  \/\/ Toplam Paket Boyutu: 8 byte birle\u015fik ba\u015fl\u0131k + 96 byte g\u00fcncel kullan\u0131c\u0131 verisi = 104 byte\r\n  uint8_t fullPacket[8 + dataLen];\r\n\r\n  memcpy(fullPacket, writeHeader, 8);           \/\/ \u00d6n haz\u0131rl\u0131k etiketini\/ba\u015fl\u0131\u011f\u0131n\u0131 kopyala\r\n  memcpy(&amp;fullPacket[8], dataToWrite, dataLen); \/\/ Ger\u00e7ek 96 byte'l\u0131k veriyi tam 8. indisten itibaren pe\u015fine ekle\r\n\r\n  pn532_writeFrame(fullPacket, 8 + dataLen);\r\n  if (!pn532_waitReady(150)) return false;\r\n  pn532_readAck();\r\n  return true;\r\n}<\/pre>\n<p data-path-to-node=\"23\"><b data-path-to-node=\"23\" data-index-in-node=\"0\">\u26a0\ufe0f Kritik Kurallar ve Yazma Mant\u0131\u011f\u0131:<\/b><\/p>\n<ul data-path-to-node=\"24\">\n<li>\n<p data-path-to-node=\"24,0,0\">Okunan veri \u00fczerinde de\u011fi\u015fiklik yaparken (\u00d6rn: Kredi d\u00fc\u015ferken), toplam paket uzunlu\u011funun <b data-path-to-node=\"24,0,0\" data-index-in-node=\"89\">kesinlikle de\u011fi\u015fmemesi (sabit 96 byte kalmas\u0131)<\/b> ve veri katar\u0131 i\u00e7inde <b data-path-to-node=\"24,0,0\" data-index-in-node=\"158\">T\u00fcrk\u00e7e karakter bar\u0131nd\u0131r\u0131lmamas\u0131<\/b> zorunludur.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"24,1,0\"><code data-path-to-node=\"24,1,0\" data-index-in-node=\"0\">memcpy<\/code> komutu, haf\u0131zada tek par\u00e7a halinde 104 byte&#8217;l\u0131k kesintisiz bir veri treni olu\u015fturur. Telefon, bu paketin ilk saniyelerinde gelen <code data-path-to-node=\"24,1,0\" data-index-in-node=\"135\">0xD6<\/code> (Yazma) komutunu ve pe\u015findeki uzunluk etiketini (<code data-path-to-node=\"24,1,0\" data-index-in-node=\"189\">dataLen = 0x60<\/code>) okur; b\u00f6ylece okuyucunun ne kadar veri yazaca\u011f\u0131n\u0131 \u00f6nceden bilir. Ba\u015fl\u0131\u011f\u0131n hemen bitimi olan 8. bayttan itibaren ba\u015flayan 96 byte&#8217;l\u0131k as\u0131l veriyi alarak telefondaki ilgili bellek alanlar\u0131na kusursuzca kaydeder.<\/p>\n<\/li>\n<\/ul>\n<p>Telefon ekran\u0131nda LOG k\u0131sm\u0131 var. Gelen giden AID ve APDU bilgilerinin se\u00e7ilip se\u00e7ilmedi\u011fini, el s\u0131k\u0131\u015fmay\u0131, ndef se\u00e7ildi\u011fini, buradan da g\u00f6rebilirsiniz. Zaten arduino <span style=\"color: #ff6600;\">seri monit\u00f6r de<\/span> telefondan gelen do\u011frulama cevaplar\u0131n\u0131 size g\u00f6steriyor.<\/p>\n<p>Art\u0131k g\u00fcvenli bir HCE telefon etiketiniz var. Sadece sizin okuyucunuz okuyabilir. Ba\u015fka okuyucular\u0131n g\u00f6nderdi\u011fi AID kodunu tan\u0131mad\u0131\u011f\u0131 i\u00e7in Telefon TEPK\u0130 VERMEZ<br \/>\nTabii ki herhangi bir telefonda, bizim program\u0131m\u0131z haricinde programland\u0131\u011f\u0131nda, NDEF yeri do\u011fru bile olsa ayn\u0131 \u015fekilde okunamaz. \u00c7\u00fcnk\u00fc AID kodunu okuyucu PN532 belirliyor olacak. Telefon da da bu AID kodu kay\u0131tl\u0131 olacak. Ba\u015fkas\u0131 bu AID kodunu ve NDEF mimarisini kopyalayabilirse o zaman okuyucudan ge\u00e7er. <span style=\"color: #ff6600;\">Bu da \u00e7ok zor bir ihtimal.<\/span> Telefonun kaynak kodunu okumad\u0131ktan sonra bunu bilemez. Bu da zaten \u00e7ok zor. AID g\u00fcvenli\u011fi, \u015fayet kolay k\u0131r\u0131lsayd\u0131 BANKA kartlar\u0131 da g\u00fcvenli say\u0131lmazd\u0131.<\/p>\n<p>Tabii ki HIRSIZLAR i\u00e7in her zaman bir ad\u0131m \u00f6nde olmak profesyonel projelerde \u00f6nemlidir. \u015eunu bilmenizi isterim ki HCE telefon etiketlerinde bu arada gelen giden AID ve APDU bilgiler havada yakalan\u0131p de\u011ferlendirilebilir. Bu da g\u00fcvenlik a\u00e7\u0131\u011f\u0131 gibi g\u00f6r\u00fcnse de AID kodundan sonra telefonunuza g\u00f6nderece\u011finiz bir kriptografik bilgi do\u011fru okuyucu ve do\u011fru telefon oldu\u011funu do\u011frulayabilir. Hatta ba\u015fka geli\u015fmi\u015f g\u00fcvenlik seviyeleri de uygulanabilir. Yani g\u00fcvenlik amat\u00f6r projelerde k\u0131s\u0131tl\u0131 tutulsa da daha profesyonel d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fczde B ve C planlar\u0131n\u0131z\u0131n da oldu\u011funu bilmelisiniz.<\/p>\n<p>Bizler burada temelini ara\u015ft\u0131r\u0131p, direkt olarak kopyalanamayacak bir program yap\u0131yoruz. Amat\u00f6rce olan bir projede bu yeterli garaj kap\u0131lar\u0131nda ya da ev kap\u0131lar\u0131nda bu yeterli.<br \/>\n\u00c7ok b\u00fcy\u00fck \u00f6nemli bir tesis de\u011fil ise bu g\u00fcvenlik k\u0131r\u0131lamayan bir g\u00fcvenliktir. Bu da bizler i\u00e7in \u015fimdilik yeterli.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>T\u00dcM PROGRAMLARI <a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/NFC_ANDROID_HCE_EMULATE\" target=\"_blank\" rel=\"noopener\">BURADAN \u0130ND\u0130REB\u0130L\u0130RS\u0130N\u0130Z.\u00a0<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff0000;\">Not:<\/span> <\/strong>Android studio ile \u00e7al\u0131\u015facaksan\u0131z Dizin ismini (AND_STU_HCE -son_orj_admin_panel_etkin) (AND_STU_HCE) \u015feklinde k\u0131salt\u0131n ve ana dizinde SRC diye bir dizin a\u00e7\u0131p i\u00e7ine kopyalay\u0131n. Bunun sebebi hem dizin ismi b\u00fcy\u00fck hem de bulundu\u011fu yer ana dizinden uzak ise i\u00e7erisinde bulunan uzun dosya isimleri hata vermesine yol a\u00e7abilir. Bundan dolay\u0131 Ana dizinde SRC gibi bir k\u0131sa dizinin i\u00e7ine koymak size avantaj sa\u011flayacakt\u0131r.<\/p>\n<p>&nbsp;<\/p>\n<p><iframe title=\"ANDROID HCE NFC ile android telefonunuzu NFC etiket olarak kullanma.\" data-src=\"https:\/\/www.youtube.com\/embed\/tISQd_RIgfM\" width=\"1012\" height=\"535\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><br \/>\n&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NFC li ANDROID telefonlar\u0131n\u0131z\u0131, nas\u0131l NTAG etiketine d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz. NFC deste\u011fi olan Android telefonlar\u0131n\u0131z\u0131 MIFARE veya NTAG etiketleri gibi NFC kart olarak \u00e7al\u0131\u015ft\u0131rabilece\u011finizi s\u00f6yledim. Elbette bunu yapabilirsiniz. Bu verece\u011fim program ile Android telefonunuzu PN532 NFC okuyucu kart ile nas\u0131l kullanabilece\u011finizi g\u00f6receksiniz. Burada NEDEN RC522 ile yapam\u0131yorum sorusunu sorabilirsiniz. PN532, banka kartlar\u0131 gibi kartlar\u0131n haberle\u015fmesinde baz\u0131 \u015feyleri [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3139,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[123,33,122],"tags":[],"class_list":["post-3135","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android-studio","category-arduino_pic_digerleri","category-nfc"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/3135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=3135"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/3135\/revisions"}],"predecessor-version":[{"id":3152,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/3135\/revisions\/3152"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/3139"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=3135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=3135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=3135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}