डायरेक्ट्री, नियम, और नीति

यह पेज Android 8.0 और उच्च, VNDK नियम, और उससे जुड़ी नीति.

डायरेक्ट्री का लेआउट

डीजनरेट किए गए डायरेक्ट्री लेआउट में ये चीज़ें शामिल हैं डायरेक्ट्री:

  • /system/lib[64] में सभी फ़्रेमवर्क शेयर की गई लाइब्रेरी शामिल हैं, इसमें LL-NDK, VNDK, और सिर्फ़ फ़्रेमवर्क वाली लाइब्रेरी शामिल हैं LL-NDK-निजी और कुछ लाइब्रेरी जिनके नाम (VNDK-SP) में शामिल हों.
  • /system/lib[64]/vndk-sp में इसके लिए VNDK-SP लाइब्रेरी मौजूद है एक ही प्रोसेस वाले HAL.
  • /vendor/lib[64] में वेंडर की ओर से बढ़ाई गई VNDK लाइब्रेरी मौजूद हैं (इनमें से या तो DXUA या DXUX VNDK लाइब्रेरी), एक जैसी प्रोसेस वाला HAL लागू करना, और अन्य वेंडर शेयर की गई लाइब्रेरी पर टैप करें.
  • /vendor/lib[64]/vndk-sp में VNDK-SP लाइब्रेरी शामिल हो सकती हैं. इसके लिए, वेंडर.

वेंडर मॉड्यूल, /system/lib[64] से VNDK लाइब्रेरी लोड करते हैं.

VNDK के नियम

इस सेक्शन में, VNDK के नियमों की पूरी सूची दी गई है:

  • फ़्रेमवर्क की प्रोसेस में, वेंडर से नॉन-SP-HAL शेयर की गई लाइब्रेरी लोड नहीं होनी चाहिए पार्टिशन (Android 8.1 और बाद के वर्शन को सख्ती से लागू किया गया).
  • वेंडर की प्रोसेस में, गैर-LL-NDK, non-VNDK-SP, और सिस्टम पार्टीशन से गैर-VNDK लाइब्रेरी. (Android में सख्ती से लागू नहीं किया जाता O, लेकिन आने वाले समय में रिलीज़ किया जाएगा.
  • इंस्टॉल की गई VNDK लाइब्रेरी, Google की तय की गई ज़रूरी शर्तें पूरी करने वाले VNDK का सबसेट होनी चाहिए लाइब्रेरी.
  • SP-HAL और SP-HAL-Dep की बाहरी डिपेंडेंसी LL-NDK या Google की बनाई हुई VNDK-SP लाइब्रेरी.
    • SP-HAL शेयर की गई लाइब्रेरी की डिपेंडेंसी LL-NDK तक सीमित होनी चाहिए लाइब्रेरी, Google की बनाई हुई VNDK-SP लाइब्रेरी, अन्य SP-HAL लाइब्रेरी, और/या अन्य वेंडर की शेयर की गई लाइब्रेरी, जिन्हें SP-HAL-Dep के तौर पर लेबल किया जा सकता है लाइब्रेरी.
    • वेंडर की शेयर की गई लाइब्रेरी को SP-HAL-Dep लाइब्रेरी के तौर पर सिर्फ़ तब लेबल किया जा सकता है, जब वह एक एओएसपी लाइब्रेरी नहीं है और इसकी डिपेंडेंसी, एलएल-एनडीके लाइब्रेरी तक सीमित है, Google की बनाई हुई VNDK-SP लाइब्रेरी, SP-HAL लाइब्रेरी, और/या अन्य SP-HAL-Dep लाइब्रेरी.
  • VNDK-SP अपने-आप में पूरा होने वाला होना चाहिए. libRS_internal.so के लिए खास हो गया Android 8.0 में ट्रीटमेंट का इस्तेमाल किया जा सकेगा.
  • नॉन-एचआईडीएल इंटरफ़ेस के ज़रिए कोई फ़्रेमवर्क-वेंडर कम्यूनिकेशन नहीं. इसमें ये शामिल हैं बाइंडर, सॉकेट, शेयर की गई यादें, फ़ाइलें वगैरह. इसमें इनके अलावा, और भी चीज़ें शामिल हो सकती हैं.
  • सिस्टम विभाजन का आकार इतना बड़ा होना चाहिए कि उसमें दो कॉपी हो सकें ज़रूरी शर्तें पूरी करने वाली सभी VNDK लाइब्रेरी की कॉपी और ज़रूरी शर्तें पूरी न करने वाले फ़्रेमवर्क की एक कॉपी शेयर की गई लाइब्रेरी.

सेपॉलिसी

इस सेक्शन में फ़्रेमवर्क की प्रोसेस इस तरह की हैं सेटिंग में coredomain, जबकि वेंडर की प्रोसेस non-coredomain. उदाहरण के लिए, /dev/binder केवल coredomain और /dev/vndbinder में ऐक्सेस किए जा सकते हैं coredomain से बाहर के वर्शन में ही ऐक्सेस किया गया.

समान नीतियां सिस्टम पर शेयर की गई लाइब्रेरी के ऐक्सेस को प्रतिबंधित करती हैं और वेंडर विभाजन. नीचे दी गई टेबल में, शेयर किए गए कॉन्टेंट को ऐक्सेस करने के अधिकार दिखाए गए हैं अलग-अलग कैटगरी की लाइब्रेरी:

कैटगरी सेगमेंट कोरडोमेन
से ऐक्सेस किया जा सकता है
नॉन-कोर डोमेन से
ऐक्सेस किया जा सकता है
एलएल-एनडीके सिस्टम Y Y
एलएल-एनडीके-प्राइवेट सिस्टम Y Y
वीएनडीके-एसपी/वीएनडीके-एसपी-प्राइवेट सिस्टम Y Y
वीएनडीके-एसपी-एक्स्ट वेंडर Y Y
वियतनामीज़ डोंग सिस्टम Y Y
वीएनडीके-एक्स्ट वेंडर नहीं Y
सिर्फ़ FWK के लिए सिस्टम Y नहीं
सिर्फ़ FWK वाले सिस्टम Y नहीं
एसपी-हॉल वेंडर Y Y
एसपी-हॉल-डेप वेंडर Y Y
सिर्फ़ वियतनामीज़ डोंग वेंडर नहीं Y

एलएल-एनडीके-प्राइवेट और वीएनडीके-एसपी-प्राइवेट को दोनों डोमेन से ऐक्सेस किया जा सकता है, क्योंकि गैर-coredomain उन्हें ऐक्सेस न कर सके. इसी तरह, SP-HAL-Dep को यहां से ऐक्सेस किया जाना चाहिए coredomain, क्योंकि SP-HAL उस पर निर्भर है.

समान_प्रोसेस_हैल_फ़ाइल लेबल

वेंडर पार्टीशन में ये लाइब्रेरी मौजूद हैं. इन लाइब्रेरी को दोनों से ऐक्सेस करने लायक बनाएं coredomain और coredomain से बाहर.

  • /vendor/lib[64]/vndk-sp में VNDK-SP-Ext
  • /vendor/lib[64] या /vendor/lib[64]/hw में SP-HAL
  • /vendor/lib[64] या /vendor/lib[64]/hw में SP-HAL-Dep

इन फ़ाइलों को साफ़ तौर पर same_process_hal_file के तौर पर लेबल करें, क्योंकि कुछ भी vendor विभाजन में coredomain को डिफ़ॉल्ट रूप से ऐक्सेस नहीं किया जा सकता. इससे मिलती-जुलती लाइनें जोड़ें वेंडर के हिसाब से बनी file_contexts फ़ाइल में दी गई इन शर्तों को पूरा करना ज़रूरी है.

/vendor/lib(64)?/hw/libMySpHal\.so        u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/vndk-sp/libBase\.so      u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libBaseInternal\.so      u:object_r:same_process_hal_file:s0