सुरक्षा
पेज droid.devpier.dev से सर्व होता है, लेकिन एमुलेटर और गेटवे आपके Mac पर चलते हैं। आप जो भी वेब पेज खोलते हैं, वह आपके Mac पर किसी प्रोग्राम से कनेक्ट होने की कोशिश कर सकता है, इसलिए गेटवे हर कनेक्शन की जाँच करता है।
सिर्फ़ loopback
Section titled “सिर्फ़ loopback”गेटवे सिर्फ़ 127.0.0.1 पर सुनता है। यह आपके लोकल नेटवर्क या इंटरनेट से कनेक्शन स्वीकार नहीं करता। दूसरे कंप्यूटर उस तक नहीं पहुँच सकते।
Origin allow-list
Section titled “Origin allow-list”जब कोई पेज WebSocket खोलता है, तो ब्राउज़र एक Origin header भेजते हैं। गेटवे सिर्फ़ इन origins को स्वीकार करता है:
https://droid.devpier.devhttp://127.0.0.1:<port>http://localhost:<port>
किसी दूसरे origin वाला, या बिना origin वाला कनेक्शन कोड 4003 के साथ बंद कर दिया जाता है। किसी दूसरी साइट का पेज आपके एमुलेटर को नियंत्रित नहीं कर सकता, भले ही वह पोर्ट का अंदाज़ा लगा ले।
लॉन्च टोकन
Section titled “लॉन्च टोकन”- हर बार शुरू होने पर गेटवे एक नया रैंडम टोकन बनाता है: 32 रैंडम बाइट, जो 43 अक्षरों की base64url स्ट्रिंग के रूप में एन्कोड होते हैं।
- गेटवे पेज को
#के बाद पोर्ट और टोकन के साथ खोलता है:https://droid.devpier.dev/app/#port=<port>&token=<token>। ब्राउज़र#के बाद वाला हिस्सा वेब सर्वर को नहीं भेजते, इसलिए टोकन कभीdroid.devpier.devतक नहीं पहुँचता। - पेज पोर्ट और टोकन को ब्राउज़र के local storage में सेव करता है, ताकि आप पेज रीलोड कर सकें, और उन्हें एड्रेस बार से हटा देता है।
- हर कनेक्शन के पहले मैसेज में टोकन होना ज़रूरी है। अगर वह ग़लत है, तो गेटवे
bad-tokenएरर के साथ जवाब देता है और कनेक्शन को कोड4001के साथ बंद कर देता है। - जब गेटवे रीस्टार्ट होता है, तो पुराना टोकन काम करना बंद कर देता है। वह जो नया लिंक प्रिंट करता है उसे खोलें।
वेबसाइट आपके Mac से कनेक्ट नहीं होती
Section titled “वेबसाइट आपके Mac से कनेक्ट नहीं होती”Chrome की लोकल नेटवर्क अनुमति और गेटवे की Origin जाँच, दोनों साइट के हिसाब से काम करती हैं, पाथ के हिसाब से नहीं। इसलिए डॉक्यूमेंटेशन पेज /app/ वाले एमुलेटर पेज के साथ यह अनुमति साझा करते हैं। इसके असर को सीमित करने के लिए:
- सिर्फ़
/app/वाला एमुलेटर पेज गेटवे से कनेक्ट होता है। होम पेज और ये docs कभी कनेक्ट नहीं होते, इसलिए इन्हें पढ़ने से अनुमति प्रॉम्प्ट नहीं आता। - साइट कोई थर्ड-पार्टी स्क्रिप्ट, स्टाइल, फ़ॉन्ट या मीडिया लोड नहीं करती। सब कुछ
droid.devpier.devसे सर्व होता है। - टोकन एक दूसरी जाँच है:
droid.devpier.devका कोई पेज बिना टोकन के गेटवे का इस्तेमाल नहीं कर सकता।
सॉफ़्टवेयर इंस्टॉल करना
Section titled “सॉफ़्टवेयर इंस्टॉल करना”गेटवे बिना पूछे कभी भी Android SDK पैकेज इंस्टॉल नहीं करता या डिवाइस नहीं बनाता। यह Terminal में [y/N] पूछता है, और डिफ़ॉल्ट जवाब “नहीं” होता है। Android SDK के लाइसेंस आप ख़ुद स्वीकार करते हैं।
कनेक्शन बंद होने के कोड
Section titled “कनेक्शन बंद होने के कोड”| कोड | मतलब |
|---|---|
4000 |
पहला मैसेज hello नहीं था। |
4001 |
ग़लत टोकन। |
4002 |
पेज और गेटवे अलग-अलग प्रोटोकॉल वर्शन इस्तेमाल करते हैं। |
4003 |
Origin की अनुमति नहीं है। |
समस्या की रिपोर्ट करना
Section titled “समस्या की रिपोर्ट करना”github.com/twosugar/android-emu-web पर एक issue खोलें।