التوصيل

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

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

نظرة عامة

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

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

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

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

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

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

يشير الاتصال النفقي المجزَّأ إلى الإعداد الذي تمرّ فيه زيارات معيّنة من خلال شبكة VPN بينما لا تمرّ زيارات أخرى من خلالها. من الأمثلة الشائعة على ذلك عندما تريد مؤسسة استخدام شبكة VPN لتجاوز تطبيقات التصفّح العام على الويب أو التطبيقات التي تستهلك قدرًا كبيرًا من النطاق الترددي (مثل YouTube وNetflix) أو التطبيقات الحسّاسة للوقت الاستجابة (مثل Office 365). قبل توفّر ميزة النفق المجزّأ، كان بروتوكول 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 tethering offload لتنزيل 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 والإصدارات الأقدم، تتضمّن وحدة "الربط"ملفّات الإصدار 10 من نظام التشغيل Android التالية في 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

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

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

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

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

التخصيص

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

الاختبار

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