2013-03-26 6 views
7

में एक स्मार्टकार्ड रीडर विकसित करना हमने एक माइक्रोकंट्रोलर के साथ एक प्रोटोटाइप बोर्ड विकसित किया है, जो स्मार्टकार्ड के साथ संवाद कर सकता है (यह एटीआर पढ़ सकता है, अंक और एपीडीयू कमांड आदि को प्रतिक्रिया पढ़ सकता है)। अब मैं इस हार्डवेयर का उपयोग करना चाहता हूं एक एंड्रॉइड फोन या टैबलेट। हमारे बोर्ड में एक यूएसबी कनेक्शन है, जिसके माध्यम से हम एंड्रॉइड के माध्यम से एमसीयू को पढ़ और लिख सकते हैं।एंड्रॉइड

अंतिम लक्ष्य एंड्रॉइड प्लेटफॉर्म पर पीकेसीएस # 11 समर्थन के साथ एक फ़ंक्शनिंग स्मार्टकार्ड रीडर रखना है और स्मार्टकार्ड रीडर के अंतिम उपयोगकर्ताओं को लाइब्रेरी प्रदान करना है ताकि वे अपने कार्ड के साथ संवाद कर सकें।

मैंने इस विषय पर कई चर्चाएं पढ़ी हैं, जिनमें से कुछ ने कहा है कि मुझे ऐसा करने के लिए एक कस्टम एंड्रॉइड बनाना होगा। मैं समझने के लिए एंड्रॉइड आर्किटेक्चर से बहुत परिचित नहीं हूं कि जब मैं यूएसबी के माध्यम से अपने परिधीय (कार्ड रीडर) के साथ संवाद कर सकता हूं तो मुझे एंड्रॉइड को फिर से बनाना होगा। ऐसा लगता है कि अगर मैं एक पुस्तकालय प्रदान करता हूं जो सीसीआईडी-जैसे इंटरफ़ेस लागू करता है, तो उपयोगकर्ता अपने लाइब्रेरी को अपने लक्ष्य .apk फ़ाइल में एकीकृत करने के माध्यम से एंड्रॉइड यूएसबी स्टैक का उपयोग करके मेरे पाठक के साथ संवाद कर सकते हैं।

क्या उपरोक्त योजना के साथ कोई समस्या है जो हमें पता नहीं है? मुझे चिंतित है कि हम सामान्य रूप से एंड्रॉइड या स्मार्टकार्ड पाठकों के बारे में कुछ मौलिक याद कर रहे हैं (उदाहरण के लिए: सुरक्षा) जो हमारे लिए समस्याएं पैदा करेगा क्योंकि हम ऊपर वर्णित पुस्तकालयों को लागू करना शुरू करते हैं।

+0

क्या [एंड्रॉइड पर यूएसबी कनेक्टिविटी के बारे में यह जानकारी] [http://developer.android.com/guide/topics/connectivity/usb/index.html) आपके प्रश्न का उत्तर देने में सहायक हो सकती है? – Joe

+0

सुरक्षा मुख्य रूप से स्मार्ट कार्ड द्वारा प्रदान की जाती है। मुख्य भेद्यता यह है कि फोन में गुप्त डेटा (उदा। पिन) किसी अन्य मैलवेयर एप्लिकेशन द्वारा पकड़ा जाता है; इसलिए पिन-पैड पाठक, जहां पिन पाठक को छोड़ नहीं देता है इसका लाभ होता है। कुछ सिफारिशें: ट्रांसमिशन पथ की सुरक्षा के लिए सुरक्षित संदेश का उपयोग करें, फोन पर कुछ भी स्टोर न करें और पिन को कैश न करें। – guidot

+0

यदि आप कस्टम एंड्रॉइड रोम की आवश्यकता के बारे में पढ़े गए उन मूल चर्चाओं से जुड़े हैं तो यह सहायक होगा। वह हिस्सा मुझे या तो समझ में नहीं आता है। उनकी परियोजनाओं में एक छिपी आवश्यकता हो सकती है जिसे आपने शायद नहीं उठाया था, या सिर्फ नहीं देखा (और जो संभवतः आपकी परियोजना के लिए प्रासंगिक नहीं है)। यह भी हो सकता है कि उनकी चर्चा काफी पुरानी है और एंड्रॉइड यूएसबी होस्ट की पूर्व-तिथियां है जो एंड्रॉइड 3.0 और उससे ऊपर के साथ पेश की गई थी। –

उत्तर

1

मैंने अपने कस्टम प्लेटफार्म के लिए एक अनुकूलित जिंजरब्रेड वितरण में यूएसबी परिधीय एकीकृत किया है। एंड्रॉइड प्लेटफॉर्म को कस्टमाइज़ करने का एकमात्र कारण कुछ ड्राइवरों को जोड़ना या संशोधित करना होगा जो आपको अपने यूएसबी डिवाइस तक पहुंच प्रदान करेंगे। यदि आपका यूएसबी डिवाइस पहले से ही प्रोटोकॉल का उपयोग करता है जो मानक एंड्रॉइड डिवाइस द्वारा समर्थित है, तो बस अपनी किस्मत का आनंद लें! आपका बहुत सुंदर सेट है। लेकिन अपनी जीत का जश्न मनाने से पहले, मैं इसे विभिन्न उपकरणों पर आज़माउंगा। एंड्रॉइड और कर्नेल स्तर पर, Google बहुत सारे ड्राइवर स्रोत कोड के साथ एक बहुत ही barebone वितरण प्रदान करता है। यह तय करने के लिए फोन/टैबलेट निर्माता पर निर्भर करता है कि उनके डिवाइस का उपयोग करने वाले हार्डवेयर के अनुसार निम्न स्तर के ड्राइवर और प्रोटोकॉल में वे शामिल होंगे। चूंकि स्मृति/फोन टैबलेट पर स्मृति की मात्रा सीमित है, इसलिए सामान्य नियम केवल जरूरी है कि इसमें क्या शामिल है। पीसी-लिनक्स आर्किटेक्चर पर, आपको समस्या नहीं है क्योंकि हार्डडिस्क स्पेस इतनी बड़ी है कि आप मौजूद सभी ड्राइवरों को शामिल करते हैं और आप सिस्टम को चुनने और चुनने के अनुसार इसकी आवश्यकता के अनुसार चुनते हैं।

आशा है कि यह सरल उत्तर सहायक होगा।