सहयोगी डेवलपर्स!सिंक एडाप्टर सेवा निर्यात की गई लेकिन असुरक्षित
मेरे पास मेरे ऐप और एक सिंक सेवा में एक सिंक एडाप्टर है। Google example code के अनुसार, मैंने सिंक सेवा समेत सबकुछ घोषित कर दिया है।
<service
android:name="com.myapp.SyncService"
android:exported="true"
android:process=":sync">
<intent-filter>
<action
android:name="android.content.SyncAdapter"/>
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
</service>
हालांकि यह (यह तक पहुँचने के लिए एंड्रॉयड प्रणाली में सक्षम है) सेवा पर true
को android:exported
विशेषता निर्धारित करने में समझ में आता है, मैं थोड़ा कि यह कैसे टाई पर हैरान हूँ: अधिक से अधिक चित्र कुछ इस तरह दिखता पहुंच अधिकारों के मामले में नीचे। मैं किसी और को नहीं चाहता लेकिन मेरा ऐप और एंड्रॉइड सिस्टम सेवा तक पहुंच सके।
हो सकता है कि एक सा भोलेपन से मैं अपने ही अनुमति इस के लिए बनाया है:
<permission
android:name="com.myapp.permission.SYNC_ADAPTER"
android:protectionLevel="signatureOrSystem" />
लेकिन protectionLevel
पर थोड़ा पढ़ने मुझे और भी अधिक आश्चर्य बनाता है। Google says:
कृपया इस विकल्प का उपयोग करने से बचें [...] "signatureOrSystem" अनुमति जहां कई विक्रेताओं एक सिस्टम छवि में बनाया गया अनुप्रयोगों और क्योंकि वे निर्माण किया जा रहा स्पष्ट रूप से विशिष्ट सुविधाओं को साझा करने की जरूरत है कुछ विशेष परिस्थितियों के लिए प्रयोग किया जाता है साथ में।
वर्णित परिदृश्य मेरे उपयोग के मामले से बहुत दूर है। प्रश्न तब बनी हुई है:
मैं अपनी सिंक सेवा कैसे सुरक्षित करूं ताकि एंड्रॉइड सिस्टम, लेकिन कोई तृतीय पक्ष ऐप्स इसे एक्सेस न कर सके?
कोई स्पष्टीकरण की सराहना की जाएगी!
क्या आपने अभी "हस्ताक्षर" सुरक्षा का उपयोग करने की कोशिश की है? मुझे संदेह है कि सिस्टम अभी भी आपके सिंक एडाप्टर तक पहुंच पाएगा। –
हाँ, मेरे पास है। और जैसा कि आप उल्लेख करते हैं, एंड्रॉइड सिस्टम * लगता है * पहुंच है। लेकिन क्या यह एक दस्तावेजी व्यवहार है? क्या मैं अपने डिवाइस पर भाग्यशाली हूं? क्या मेरे ऐप के सभी उपयोगकर्ता अपने डिवाइस पर भाग्यशाली होंगे? – dbm