ربط

التعديلات في Android 13

تعديل مزيد من المعلومات
إضافة ميزة CrossDevice CrossDevice
إضافة ميزة "النفق المقسّم" النفق المقسّم

نظرة عامة

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

تتيح وحدة Tethering لمصنّعي المعدات الأصلية في جميع أنحاء نظام Android البيئي استخدام عملية تنفيذ مرجعية واحدة عادية توفّر المزايا التالية:

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

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

النفق المقسّم

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

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

توقيع واجهة برمجة تطبيقات النفق المقسّم الجديدة هو:

public Builder excludeRoute(@NonNull IpPrefix prefix)

CrossDevice

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

أسباب تطوير ميزة CrossDevice

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

نطاق وحدة CrossDevice

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

تنسيق حزمة CrossDevice

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

المهام التابعة لـ CrossDevice

تعتمد ميزة CrossDevice على ما يلي:

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

خيارات تخصيص CrossDevice

نخطّط للسماح لمصنّعي المعدات الأصلية بتخصيص واجهة المستخدم للورقة النصفية من خلال حزمة تراكب موارد وقت التشغيل (RRO). لا توجد خطة لتخصيص الوظائف.

استراتيجية اختبار CrossDevice

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

تخفيف حِمل التوصيل باستخدام eBPF

لتوفير ميزة Tethering عالية السرعة بدون الاعتماد على عمليات إلغاء تحميل الأجهزة، يوفّر Android 11 حلاً لإلغاء تحميل برامج Tethering يسمى إلغاء تحميل Tethering باستخدام eBPF لتنزيل IPv6 (الزيارات المتدفقة إلى الجهاز المتصل).

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

  • تنزيل IPv6 (الزيارات المتدفقة إلى الجهاز المتصل)
  • تحميل IPv6 (الزيارات المتدفقة من الجهاز المتصل)
  • تحميل وتنزيل TCP/UDP لبروتوكول IPv4 (الزيارات المتدفقة إلى/من الجهاز المتصل)
  • إلغاء تحميل eBPF

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

دعم IPv4 وIPv6

تتيح وحدة Tethering حزمة بروتوكولات IPv4 وIPv6 المزدوجة.

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

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

نطاق الوحدة

بالنسبة إلى Android 12 والإصدارات الأحدث، تندرج جميع الملفات والمجلدات ضمن packages/modules/Connectivity في نطاق وحدة Tethering.

بالنسبة إلى Android 11 والإصدارات الأقدم، تتضمّن وحدة Tethering ملفات 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

تنسيق الوحدة

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

تضمين ConnectivityService

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

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

تعتمد وحدة Tethering على ما يلي:

  • طُرق واجهات برمجة التطبيقات العامة والنظام في خادم النظام
  • واجهة AIDL IPCs الثابتة للتفاعل مع خادم النظام
  • واجهة tetheroffload HIDL (محدّدة في hardware/interfaces/tetheroffload/)
  • خادم DHCP (جزء من وحدة Network Stack)

التخصيص

لا تتيح وحدة Tethering التخصيص.

الاختبار

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