ربط

ميزات Android 13 الجديدة

تعديل مزيد من المعلومات
تمّ تقديم CrossDevice CrossDevice
تم تقديم ميزة "النفاذ المُقسَّم". الاتصال النفقي المجزَّأ

نظرة عامة

تشارك وحدة "الربط" اتصال الإنترنت لجهاز Android مع الأجهزة العميلة المتصلة الأخرى، والتي يمكنها الاتصال بأجهزة الربط عبر Wi-Fi أو USB أو البلوتوث أو إيثرنت. تتضمّن هذه الوحدة مكوّن ربط الأجهزة (USB و نقطة وصول Wi-Fi والبلوتوث وما إلى ذلك) والمكوّنات التابعة له (التفاعل مع إذن ربط الأجهزة وIpServer وoffloadController). وهذه الوحدة قابلة للتحديث، ما يعني أنّه يمكنها تلقّي تحديثات للوظائف خارج دورة إصدار Android العادية.

تتيح وحدة "ربط الأجهزة" لمصنّعي الأجهزة الأصليين في منظومة Android المتكاملة استخدام تنفيذ مرجعي قياسي واحد يقدّم المزايا التالية:

  • يحصل المستخدمون النهائيون على تجربة متّسقة على جميع أجهزة Android وإصلاحات لمشاكل التوافق من خلال تحديثات الوحدات.

  • يمكن لمصنّعي المعدّات الأصلية استيفاء متطلبات مشغّلي شبكات الجوّال مع تقليل تكاليف الحلول المخصّصة الفردية (لأنّهم لا يحتاجون إلى تنفيذات مختلفة للمتطلبات نفسها بطرق مختلفة).

الاتصال النفقي المجزَّأ

لدعم حالات استخدام النفق المجزّأ، تمت إضافة واجهة برمجة تطبيقات جديدة إلى Android 13 لتحديد المسارات المُستبعدة.

يشير الاتصال النفقي المجزَّأ إلى الإعداد الذي تمرّ فيه زيارات معيّنة من خلال شبكة VPN بينما لا تمرّ زيارات أخرى من خلالها. من الأمثلة الشائعة على ذلك عندما تريد مؤسسة تصفُّح الويب العام أو التطبيقات التي تستهلك قدرًا كبيرًا من النطاق الترددي (مثل YouTube وNetflix) أو التطبيقات الحساسة للوقت الاستجابة (مثل Office 365) لتجاوز شبكة VPN. قبل توفّر ميزة النفق المجزّأ، كان بروتوكول VpnService.Builder يسمح لعميل شبكة VPN بالإشارة إلى أنّه يجب توجيه بعض الشبكات الفرعية فقط إليه (تضمين المسارات). باستخدام ميزة "التوجيه المتعدّد"، يمكنك تحديد العكس: توجيه جميع الزيارات إلى شبكة VPN، باستثناء شبكات فرعية معيّنة (استبعاد المسارات).

توقيع واجهة برمجة التطبيقات الجديدة لميزة "النفاذ إلى الإنترنت المُقسَّم" هو:

public Builder excludeRoute(@NonNull IpPrefix prefix)

CrossDevice

تهدف تقنية CrossDevice، التي تم طرحها في Android 13، إلى توفير تقنيات تواصل بين الأجهزة باستخدام بروتوكولات عادية. وتوفر هذه الواجهة ميزات وواجهات برمجة تطبيقات لرصد الأجهزة والاتصال بها باستخدام مصادقة وغيرها من التجارب على عدة أجهزة.

التحفيز على جميع الأجهزة

  • تعاون وثيق مع شركاء المصنّعين الأصليّين للأجهزة يمكن لمصنّعي الأجهزة الأصليين دمج نظام مفتاح الحساب الخاص بهم مع عملية التنفيذ على جميع الأجهزة بدلاً من الحاجة إلى استخدام حلّ Google.
  • تنفيذ أكثر وضوحًا للبروتوكول وحدة CrossDevice مفتوحة المصدر، ما يوفّر المزيد من المعلومات حول تفاصيل التنفيذ وقصة ملف شخصي أفضل لتنفيذ تقنيات CrossDevice.

حدود وحدة CrossDevice

واجهات برمجة التطبيقات على جميع الأجهزة في packages/modules/CrossDevice/framework
  • NearbyManager
  • AccountProviderBase
الخدمات على جميع الأجهزة في packages/modules/CrossDevice/service
  • NearbyService - واجهة برمجة التطبيقات للمسح الضوئي

تنسيق حزمة CrossDevice

يتم تضمين الوظيفة الرئيسية لهذه الوحدة في حزمة APEX. يتم تجميع الموارد في حزمة APK.

العناصر التابعة على جميع الأجهزة

تعتمد ميزة "الحملات على جميع الأجهزة" على ما يلي:

  • Wi-Fi
  • البلوتوث
  • النطاق الفائق العرض (UWB)
  • modules-utils-preconditions
  • مكتبات Proto

خيارات التخصيص على جميع الأجهزة

نخطّط للسماح لمصنّعي المعدّات الأصلية بتخصيص واجهة المستخدم لنصف الصفحة من خلال ميزة "إعادة الضبط على الإعدادات الأصلية". ليس هناك خطة لتخصيص الوظيفة.

استراتيجية اختبار جميع الأجهزة

نخطّط لإضافة اختبارات مجموعة أدوات اختبار التوافق (CTS) لنظام التشغيل Android للتحقّق من وظائف "التوافق على جميع الأجهزة" واختبار التوافق على جميع الأجهزة في MTS.

تخفيف عبء التوصيل باستخدام eBPF

لتوفير ميزة "ربط الجهاز" بسرعة عالية بدون الاعتماد على عمليات تفريغ الموارد من الأجهزة، يقدّم نظام التشغيل Android 11 حلّاً لتفريغ الموارد من برامج "ربط الجهاز" يُعرف باسم eBPF تفريغ الموارد من برامج "ربط الجهاز" لتنزيل IPv6 (البيانات التي تتدفق إلى الجهاز المرتبط).

اعتبارًا من Android 12، توفّر وحدة "ربط الأجهزة" هذه الوظيفة بالكامل (بما في ذلك رمز البرنامج eBPF)، والتي تتيح ما يلي:

  • تنزيل IPv6 (تدفُّق البيانات إلى الجهاز المرتبط)
  • تحميل IPv6 (الزيارات الواردة من الجهاز المرتبط)
  • تحميل ونقل البيانات عبر بروتوكول TCP/UDP في IPv4 (الزيارات الواردة من/إلى الجهاز المرتبط)
  • تخفيف حِمل eBPF

تكون هذه الميزة مفعّلة تلقائيًا، ويمكن للمستخدمين إلغاء ضبط config_tether_enable_bpf_offload على "خطأ" من خلال RRO. يمكنك الاطّلاع على التخصيص للحصول على مزيد من المعلومات.

إتاحة IPv4 وIPv6

تتوافق وحدة "ربط الأجهزة بالشبكة" مع حِزم IPv4 وIPv6 المزدوجة.

  • بالنسبة إلى شبكات IPv4، تهيئ الوحدة ترجمة عناوين الشبكة (NAT) وتمتثل لبروتوكول الإعداد الديناميكي للمضيف (DHCP) لتحديد عنوان IP.

  • بالنسبة إلى شبكات IPv6، تتّبع الوحدة النمطية ميزة "الإعداد التلقائي لعنوان IPv6 بدون حالة" (SLAAC) لتخصيص عنوان IP.

حدود الوحدة

في الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، تكون جميع الملفات أو المجلدات ضمن packages/modules/Connectivity ضمن نطاق وحدة "ربط الأجهزة".

في الإصدار 11 من نظام التشغيل Android والإصدارات الأقدم، تتضمّن وحدة "ربط الأجهزة"ملفّات Android 10 التالية في packages/modules/Tethering.

  • frameworks/base/services/core/java/com/android/server/connectivity/Tethering.java
  • frameworks/base/services/core/java/com/android/server/connectivity/tethering/
  • frameworks/base/services/core/java/com/android/server/NetworkManagementService.java
  • frameworks/base/services/net/java/android/net/ip/{InterfaceController,IpServer,RouterAdvertisementDaemon}.java
  • frameworks/base/services/net/java/android/net/{netlink,dhcp}/*
  • frameworks/base/services/net/java/android/net/util/{InterfaceSet,InterfaceParams,NetdService,PrefixUtils,SharedLog,VersionedBroadcastListener}.java
  • frameworks/base/core/java/android/net/{ITetheringEventCallback,ITetheringStatsProvider}.aidl
  • frameworks/base/core/java/android/net/{NetworkUtils,util/IpUtils}.java
  • frameworks/base/core/java/com/android/internal/util/{BitUtils,IndentingPrintWriter,State,StateMachine}.java
  • frameworks/base/core/java/com/android/server/connectivity/MockableSystemProperties.java
  • frameworks/base/core/java/android/os/INetworkManagementService.aidl
  • frameworks/base/core/java/android/bluetooth/BluetoothPan.java
  • frameworks/base/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
  • packages/apps/Settings/src/com/android/settings/wifi/tether/TetherService.java
  • packages/apps/Settings/src/com/android/settings/network/TetherProvisioningActivity.java

تنسيق الوحدة

وحدة "ربط الأجهزة" (com.android.tethering) بتنسيق APEX متوفرة للأجهزة التي تعمل بنظام التشغيل Android 11 أو إصدار أحدث.

تضمين ConnectivityService

بدءًا من الإصدار 12 من نظام Android، تمت إضافة رمز ConnectivityService الذي ينفِّذ المكوّن المركزي للاتصال بشبكة L3+ إلى ملف APEX الخاص بميزة "ربط الأجهزة". يتم توسيع نطاق "ربط الجهاز بالشبكة" إلى وحدة "الاتصال".

الوحدات التابعة

تحتوي وحدة "ربط الأجهزة" على التبعيات التالية:

  • طرق واجهة برمجة التطبيقات العامة وواجهة برمجة تطبيقات النظام في خادم النظام
  • واجهة مستقرة لبروتوكول IDL للتواصل بين التطبيقات مع خادم النظام
  • tetheroffload HIDL (محدَّد في hardware/interfaces/tetheroffload/)
  • خادم بروتوكول الإعداد الديناميكي للمضيف (DHCP) (جزء من وحدة "حِزم الشبكة")

التخصيص

لا تتيح وحدة "الربط" إمكانية التخصيص.

الاختبار

تتحقّق مجموعة أدوات اختبار التوافق مع Android (CTS) من وظيفة وحدة ربط الأجهزة.