मेरे अनुभव में, उसी एंड्रॉइड एप्लिकेशन के लिए स्रोत कोड को पुन: संकलित करने से हर बार एक ही बाइनरी नहीं बनती है। एक पुनरुत्पादन निर्माण डेवलपर्स के लिए बहुत useful है, लेकिन मुझे लगता है कि पुनरुत्पादित निर्माण प्रक्रिया से सबसे महत्वपूर्ण लाभ सुरक्षा है। ओपन सोर्स एंड्रॉइड ऐप में, हम उत्पादित बाइनरी (.apk
) को कैसे सत्यापित कर सकते हैं वास्तव में समीक्षा स्रोत कोड से संकलित किया गया है? एंड्रॉइड एसडीके या जावा से पुनरुत्पादित निर्माण उत्पन्न करने का कोई तरीका है?पुनरुत्पादन के निर्माण के साथ एंड्रॉइड एप्लिकेशन कैसे बनाएं?
उत्तर
"पुनरुत्पादित"/"निर्धारिती" निर्माण प्रक्रियाओं को बनाने के लिए संदर्भित करता है जहां संकलक एक समान बाइनरी आउटपुट करता है जो हमेशा समान होता है, समान इनपुट फाइल/बिल्ड सिस्टम/क्रोट दिया जाता है। (जिस लेख से आपने लिंक किया है वह वास्तव में एक ऐप के उसी संस्करण को बनाने/चलाने में सक्षम होने के बारे में बात कर रहा है, जिसके खिलाफ एक बग दायर किया गया है, जो कुछ अलग है। this description देखें कि टोर कैसे निर्धारित करता है।)
जावा पैकेज ऐसा लगता है कि काम करने में बहुत मुश्किल लगती है, क्योंकि कई जगहों पर टाइमस्टैम्प मौजूद हैं। एक चीज जिसे आप कोशिश कर सकते हैं, सटीक द्विआधारी संगतता के बदले, दो। एपीके को कम करने के लिए है, और देखें कि वह विकृत उत्पादन समान है या नहीं।
एफ-डोडेड प्रोजेक्ट कुछ वर्षों से एंड्रॉइड के लिए पुन: उत्पादित निर्माण पर काम कर रहा है। एंड्रॉइड-विशिष्ट मुद्दों को https://f-droid.org/docs/Reproducible_Builds पर ट्रैक किया जाता है यह अभी भी एक मुश्किल प्रक्रिया है, खासकर अगर ऐप में एनडीके कोड शामिल है। यदि ऐप केवल जावा है, तो कुछ अपेक्षाकृत आसान कदम हैं जो आपको वहां ले जाएंगे, जैसे प्री-क्रंचिंग पीएनजी और उन्हें गिट करने के लिए।
गूगल, क्योंकि वे यादृच्छिक थोड़ा परिवर्तन का एक बहुत कुछ कर यह लंबी अवधि में APK पुन: पेश करने के लिए आसान नहीं है, जैसे:
- adding a non-reproducible version to AndroidManifest.xml
- different binary releases with the same version number
निश्चित रूप से जाँच दो बिल्डों के बीच अंतर देखने के लिए diffoscope बाहर। आप https://verification.f-droid.org
पर बहुत से उदाहरण आउटपुट देख सकते हैं- 1. टाइपस्क्रिप्ट के साथ एप्लिकेशन कैसे बनाएं?
- 2. विकल्पों के साथ एंड्रॉइड विजेट कैसे बनाएं?
- 3. सभी संकल्पों के लिए एंड्रॉइड एप्लिकेशन कैसे बनाएं?
- 4. डॉकर बिल्ड के दौरान निर्माण निर्माण अनिवार्य कैसे बनाएं?
- 5. एंड्रॉइड में एफएम रेडियो एप्लिकेशन कैसे बनाएं
- 6. एंड्रॉइड एप्लिकेशन में कस्टम कैलेंडर कैसे बनाएं?
- 7. एंड्रॉइड पर एप्लिकेशन बैज कैसे बनाएं?
- 8. कस्टम थीम कैसे बनाएं और एंड्रॉइड एप्लिकेशन
- 9. बुनियादी एंड्रॉइड यूएसबी होस्ट एप्लिकेशन कैसे बनाएं?
- 10. पायथन (डीजेंगो) के साथ अंग्रेजी भाषा शब्दकोश एप्लिकेशन कैसे बनाएं?
- 11. एपीसीएमडी के साथ एक एप्लिकेशन पूल कैसे बनाएं?
- 12. पेजर के साथ रूबी कमांड लाइन एप्लिकेशन कैसे बनाएं?
- 13. मेवेन एंड्रॉइड एप्लिकेशन का निर्माण - BuildConfig
- 14. कम आकार के एंड्रॉइड ऐप्स कैसे बनाएं?
- 15. स्वयं पुनरुत्पादन कार्यक्रम
- 16. एंड्रॉइड ढाल के साथ पाई डाउंट बनाएं
- 17. सास एप्लिकेशन कैसे बनाएं?
- 18. एंड्रॉइड के लिए सेंसर सिम्युलेटर कैसे बनाएं?
- 19. ऑनलाइन सिंकिंग के साथ ऑफ़लाइन एंड्रॉइड एप्लिकेशन
- 20. ग्रेड निर्माण में विभिन्न निर्भरताओं के साथ?
- 21. विकल्पों के साथ कमांड लाइन में एंड्रॉइड एमुलेटर कैसे बनाएं?
- 22. एकाधिक कॉलम के साथ एंड्रॉइड में एक टेबल कैसे बनाएं?
- 23. एंड्रॉइड: स्थिर आईडी के साथ एडाप्टर कैसे बनाएं?
- 24. उदाहरण के साथ एंड्रॉइड में कस्टम व्यूग्रुप कैसे बनाएं
- 25. जेएनआई के साथ ऑब्जेक्ट कैसे बनाएं?
- 26. चेकबॉक्स के साथ सूची संदर्भ कैसे बनाएं
- 27. एंड्रॉइड प्रोजेक्ट के लिए build.xml कैसे बनाएं?
- 28. ndk एप्लिकेशन कैसे बनाएं/संकलित करें?
- 29. एक एंड्रॉइड जीपीएस ट्रैकिंग एप्लिकेशन बनाएं
- 30. स्थिर लिंकिंग के साथ गिट कैसे बनाएं?