التوصيل

التحديثات في Android 13

تعديل مزيد من المعلومات
تمّ إدخال 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.

حدود الوحدة على جميع الأجهزة

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

تنسيق الحزمة على جميع الأجهزة

يتم تضمين الوظيفة الرئيسية لهذه الوحدة في حزمة 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 في نطاق وحدة التوصيل.

في نظام التشغيل Android 11 والإصدارات الأقدم، تتضمّن وحدة التوصيل الملفات التالية لنظام التشغيل 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 متوفرة للأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأحدث.

تضمين ConnectivityService

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

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

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

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

التخصيص

لا تتيح وحدة التوصيل إمكانية التخصيص.

الاختبار

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