الربط

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

تحديث معلومات اكثر
قدم CrossDevice CrossDevice
قدم الانقسام النفقي الانقسام النفقي

ملخص

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

تعمل وحدة الربط على تمكين مصنعي المعدات الأصلية في جميع أنحاء نظام Android البيئي من استخدام تطبيق مرجعي قياسي واحد يحقق الفوائد التالية.

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

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

الانقسام النفقي

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

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

توقيع API الجديد للنفق المقسم هو:

public Builder excludeRoute(@NonNull IpPrefix prefix)

CrossDevice

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

الدافع عبر الأجهزة

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

حدود وحدة CrossDevice

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

تنسيق حزمة CrossDevice

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

تبعيات CrossDevice

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

  • واي فاي
  • بلوتوث
  • UWB
  • وحدات ، مرافق ، شروط مسبقة
  • مكتبات بروتو

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

نخطط للسماح لـ OEMS بتخصيص واجهة المستخدم لنصف ورقة من خلال RRO. لا توجد خطة لتخصيص الوظيفة.

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

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

تفريغ ربط eBPF

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

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

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

يتم تمكين هذه الميزة افتراضيًا ، ويمكن للمستخدمين تجاوز التكوين config_tether_enable_bpf_offload إلى false بواسطة RRO. انظر التخصيص لمزيد من المعلومات.

دعم IPv4 و IPv6

تدعم وحدة الربط مكدس IPv4 و IPv6 المزدوج.

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

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

حدود الوحدة

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

تضمين خدمة الاتصال

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

تبعيات الوحدة النمطية

تحتوي وحدة الربط على التبعيات التالية:

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

التخصيص

لا تدعم وحدة الربط التخصيص.

اختبارات

يتحقق Android Compatibility Test Suite (CTS) من وظائف وحدة الربط.