الربط

التحديثات في أندرويد 13

تحديث معلومات اكثر
تم تقديم CrossDevice عبر الأجهزة
تم تقديم نفق الانقسام تقسيم الأنفاق

ملخص

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

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

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

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

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

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

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

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

public Builder excludeRoute(@NonNull IpPrefix prefix)

عبر الأجهزة

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

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

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

حدود وحدة CrossDevice

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

تنسيق حزمة CrossDevice

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

تبعيات CrossDevice

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

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

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

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

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

نخطط لإضافة اختبارات مجموعة اختبار توافق Android (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 (CTS) من وظائف وحدة التوصيل.