इस प्रोजेक्ट के बारे में

यह रिपॉजिटरी किसी चलाने योग्य एप्लिकेशन के बजाय एक दस्तावेज़ीकरण सेट है। यह डीकंपाइल किए गए Spotify Android APK और spotify-muter नामक साथी प्रोजेक्ट के लिए रिवर्स-इंजीनियरिंग निष्कर्षों को रिकॉर्ड करता है। दायरा और विधि विश्लेषण किया गया बिल्ड Spotify 9.1.84.2205 (रिलीज r1) है, जिसे JADX 1.5.6 के साथ डीऑबफस्केशन और खराब-कोड पुनर्प्राप्ति का उपयोग करके डीकंपाइल किया गया है। जनरेट किया गया सोर्स ट्री decompiled/sources/ के अंतर्गत रखा गया है। जहां JADX किसी महत्वपूर्ण मेथड का पुनर्निर्माण नहीं कर सकता है, वहां लक्षित APKTool/smali निष्कर्षण का उपयोग किया जाता है, जिसमें बाइटकोड लक्ष्य analysis/smali-targets/ के अंतर्गत संग्रहीत होते हैं। नोट्स में कहा गया है कि MediaSession एक्शन बिल्डर और एड-स्किप UI मैपिंग के कुछ हिस्सों को पुनर्प्राप्त करने के लिए इसकी आवश्यकता थी। दस्तावेज़ीकरण संरचना README क्रमांकित नोट्स के लिए एक सूचकांक के रूप में कार्य करता है: रिवर्स-इंजीनियरिंग दायरा और सीमाएं; एप्लिकेशन आर्किटेक्चर; प्लेबैक और प्लेयर स्टेट; Android MediaSession इंटीग्रेशन; विज्ञापन पाइपलाइन; विज्ञापन रिपोर्टिंग और ट्रैकिंग; स्किप करना और प्लेबैक प्रतिबंध; नेटवर्किंग (Esperanto और Cosmos); एक सबसिस्टम/पैकेज मैप; Spotify Ad Muter आर्किटेक्चर; खुले प्रश्नों के साथ एक शोध सूचकांक; एक Android घटक सूची; रनटाइम और फ्रेमवर्क स्टैक; एक शीर्ष-स्तरीय पैकेज सूचकांक; और विज्ञापन मील के पत्थर, स्किप विलंब और Android स्किप-नेक्स्ट व्यवहार का गहरा ट्रेस। मानसिक मॉडल नोट्स SpotifyApplication से SpotifyMainActivity और फीचर UI के माध्यम से एक उच्च-स्तरीय प्रवाह प्रस्तुत करते हैं, जो प्लेयर स्टेट और नेविगेशन/UI में विभाजित होता है। प्लेयर स्टेट ContextTrack प्लस Restrictions की ओर ले जाता है, जो MediaSession निर्यात (Android सिस्टम UI और बाहरी इंटीग्रेशन के लिए) और Spotify प्लेयर कोर में प्लेयर कमांड दोनों को फीड करता है। विज्ञापनों को सामान्य ट्रैक के समान प्लेबैक मॉडल में डाला गया बताया गया है, लेकिन इनमें is_advertisement, ad_id, ad_playback_id, ad.is_skippable और ad.skippable_ad_delay जैसे विज्ञापन-विशिष्ट मेटाडेटा होते हैं। एक बार-बार आने वाला अवलोकन यह है कि Spotify PlayerState, ContextTrack और protobuf अनुरोध/प्रतिक्रिया प्रकार जैसे स्थिर डोमेन मॉडल प्रदान करता है, जबकि आसपास का अधिकांश वायरिंग p204p पैकेज में भारी रूप से ऑबफस्केटेड है। विश्वास स्तर का लेबलिंग दस्तावेज़ीकरण तीन स्तरों में अंतर करता है: पुष्टि किया गया (डीकंपाइल कोड, smali, संसाधनों या मैनिफेस्ट में सीधे दिखाई देता है), मजबूत अनुमान (कई स्वतंत्र कोड पथ समान व्याख्या का समर्थन करते हैं), और अनिश्चित (पुनर्निर्माण/ऑबफस्केशन या नेटिव/बैकएंड सीमा निश्चित निष्कर्ष को रोकती है)। नोट्स स्पष्ट रूप से JADX द्वारा जनरेट किए गए नामों को मूल स्रोत नामों के रूप में मानने से बचते हैं। यह किस लिए उपयोगी है यह सामग्री उन पाठकों के लिए है जो बड़े ऑबफस्केटेड एप्लिकेशन में Android ऐप के आंतरिक भाग, मीडिया प्लेबैक स्टेट हैंडलिंग, MediaSession इंटीग्रेशन और विज्ञापन/स्किप लॉजिक का अध्ययन करते हैं। यह एक शोध और संदर्भ संसाधन है, अंतिम उपयोगकर्ताओं के लिए कोई टूल नहीं है, और यह किसी कार्यशील संशोधित क्लाइंट को प्रदान करने का दावा नहीं करता है।