ตั้งค่าการเข้าถึงระยะไกล

Android 14 ขอแนะนำฟีเจอร์การเข้าถึงระยะไกลใหม่ ซึ่งช่วยให้พาร์ทเนอร์ปลุก Android ในรถยนต์จากระยะไกลเพื่อทำงานที่เฉพาะเจาะจงได้ ตัวอย่างเช่น หากต้องการใช้งาน โหมดโรงรถ ข้ามคืนเพื่อใช้การอัปเดตซอฟต์แวร์ จำเป็นต้องมีองค์ประกอบที่ไม่ใช่ Android หลายรายการสำหรับเวิร์กโฟลว์แบบ end-to-end Android ไม่ได้กำหนดหรือจัดให้มีการใช้งานสำหรับส่วนประกอบที่ไม่ใช่ Android (ความรับผิดชอบนี้เป็นของคุณ)

หากต้องการเรียนรู้เพิ่มเติม ดูส่วนต่อไปนี้:

สถาปัตยกรรม

เนื้อหาต่อไปนี้สันนิษฐานว่ามีการใช้สถาปัตยกรรมตัวอย่างต่อไปนี้ ซึ่งเป็นเพียงสมมติฐานและอาจไม่สะท้อนถึงสถาปัตยกรรมที่แท้จริง OEM ควรปรับการใช้งานจริงให้เข้ากับสถาปัตยกรรมของยานพาหนะและเซิร์ฟเวอร์

image

รูปที่ 1. สถาปัตยกรรมตัวอย่าง

สถาปัตยกรรมตัวอย่างประกอบด้วยส่วนประกอบ ฮาร์ดแวร์ เหล่านี้:

ส่วนประกอบฮาร์ดแวร์ คำอธิบาย
โปรเซสเซอร์แอป โปรเซสเซอร์ที่ใช้ระบบปฏิบัติการ Android Android อาจทำงานบนหน่วยความจำเสมือน (VM) (ไม่ใช่บนฮาร์ดแวร์จริง) บนโปรเซสเซอร์นี้
โปรเซสเซอร์ของยานพาหนะ โปรเซสเซอร์ที่รับผิดชอบในการควบคุมพลังงานสำหรับโปรเซสเซอร์แอป
ชุดควบคุมเทเลเมติกส์ (TCU) โปรเซสเซอร์ในรถยนต์สามารถรับข้อความระยะไกลจากคลาวด์ได้เสมอ สันนิษฐานว่า TCU เปิดหรืออยู่ในโหมดพลังงานต่ำตลอดเวลา ใช้ข้อความระยะไกลเพื่อปลุก TCU
เซิร์ฟเวอร์ปลุก เซิร์ฟเวอร์ระยะไกลที่ทำงานบนคลาวด์และรับผิดชอบในการสื่อสารกับ TCU ในรถยนต์เพื่อออกคำสั่งปลุก
เซิร์ฟเวอร์งานระยะไกล เซิร์ฟเวอร์งานระยะไกลทำงานบนคลาวด์และโต้ตอบกับผู้คนและจัดการงานระยะไกล

สถาปัตยกรรมตัวอย่างประกอบด้วยส่วนประกอบ ซอฟต์แวร์ เหล่านี้ ซึ่งทั้งหมดทำงานบน Android:

ส่วนประกอบซอฟต์แวร์บน Android คำอธิบาย
บริการรถ บริการกรอบงาน AAOS ที่ให้บริการ API การเข้าถึงระยะไกล
ไคลเอนต์งานระยะไกล คลาส Service ผู้ขายเขียนซึ่งดำเนินงานระยะไกล ระบบ Android หนึ่งระบบสามารถรันไคลเอนต์งานระยะไกลได้หลายตัว
การเข้าถึงระยะไกล HAL จะต้องดำเนินการสำหรับการเข้าถึงระยะไกล
เลเยอร์นามธรรมสำหรับการสื่อสารระหว่าง AAOS และส่วนประกอบที่ไม่ใช่ Android เช่น TCU

ส่วนประกอบ ซอฟต์แวร์ที่ไม่ใช่ Android มีการอธิบายไว้ด้านล่าง:

ส่วนประกอบซอฟต์แวร์ที่ไม่ใช่ Android คำอธิบาย
ลูกค้าตื่นสาย ซอฟต์แวร์ที่ทำงานบน TCU ที่รักษาการเชื่อมต่อที่มีอายุการใช้งานยาวนานกับเซิร์ฟเวอร์ปลุก นอกจากนี้ยังรักษาการเชื่อมต่อกับ Remote Access HAL เพื่อส่งมอบงานระยะไกลไปยัง Car Service
การใช้งานเซิร์ฟเวอร์ปลุก เซิร์ฟเวอร์ที่สื่อสารกับไคลเอ็นต์การปลุกที่ทำงานบน TCU สามารถส่งคำขอปลุกไปยังไคลเอนต์ปลุกได้
การใช้งานเซิร์ฟเวอร์งานระยะไกล เซิร์ฟเวอร์ที่จัดการงานระยะไกล ผู้ใช้โต้ตอบกับเซิร์ฟเวอร์นี้เพื่อออกและตรวจสอบงานระยะไกล

ขั้นตอนการทำงาน

ส่วนนี้แสดงรายการขั้นตอนในเวิร์กโฟลว์ตัวอย่าง

ขั้นตอนการทำงานตัวอย่าง

เวิร์กโฟลว์โดยละเอียดอาจมีลักษณะดังต่อไปนี้:

  1. ผู้ใช้จอดรถในโรงรถ

  2. พันธมิตรพยายามอัปเดตยานพาหนะข้ามคืนเมื่อการโต้ตอบของยานพาหนะไม่น่าจะเป็นไปได้

  3. เซิร์ฟเวอร์คลาวด์ของคู่ค้าส่งงานระยะไกลของระบบอัพเดตไปยังรถยนต์ โดยเฉพาะชุดควบคุมเทเลเมติกส์ (TCU)

  4. TCU ของรถจะปลุกหน่วยควบคุมอิเล็กทรอนิกส์ (ECU) ของ Android และบริการ OEM จะเรียกใช้โหมด Garage

  5. Android ใช้งานโหมด Garage เพื่อดาวน์โหลดและติดตั้งการอัปเดตผ่าน Google Play

  6. หลังจากใช้การอัปเดต Android จะทำเครื่องหมายงานว่าเสร็จสมบูรณ์และสิ้นสุดการเชื่อมต่อหรือถึงระยะหมดเวลาที่ระบุ

ขั้นตอนการทำงานโดยละเอียด

มีสองขั้นตอนสำคัญที่จำเป็นสำหรับการเข้าถึงระยะไกล ประการแรกคือการลงทะเบียนไคลเอนต์ ซึ่งจะเชื่อมโยงผู้ใช้เฉพาะกับไคลเอนต์งานระยะไกลเฉพาะที่ทำงานบนยานพาหนะเฉพาะ อีกประการหนึ่งคือส่งมอบงาน ซึ่งก็คือการส่งมอบงานระยะไกลสำหรับผู้ใช้เฉพาะไปยังไคลเอนต์งานระยะไกลเฉพาะที่ทำงานบนยานพาหนะเฉพาะ

ลงทะเบียนลูกค้า

หากต้องการใช้คุณสมบัติการเข้าถึงระยะไกล ผู้ใช้จะต้องเปิดแอปไคลเอนต์งานระยะไกลอย่างน้อยหนึ่งครั้งและเสร็จสิ้นกระบวนการลงทะเบียนไคลเอนต์ (ข้อความ ตัวหนา หมายถึงงานที่ดำเนินการโดย AAOS):

  1. เมื่อเปิดเครื่อง Car Service จะรับข้อมูลรถยนต์จาก HAL การเข้าถึงระยะไกล

  2. เมื่อบูตเครื่อง Car Service จะเปิดตัวไคลเอนต์งานระยะไกลทั้งหมดตามตัวกรองเจตนาและการอนุญาต

  3. เมื่อไคลเอนต์งานระยะไกลเริ่มทำงาน ไคลเอนต์งานระยะไกลจะลงทะเบียนตัวเองกับ Car Service

  4. Car Service แจ้งลูกค้างานระยะไกลเกี่ยวกับข้อมูลการลงทะเบียน รวมถึงรหัสยานพาหนะและรหัสลูกค้า รหัสไคลเอ็นต์ไม่ซ้ำกันและกำหนดโดย Car Service ให้กับลูกค้ารายนี้ รับประกันว่าจะไม่ซ้ำกันในหมู่ไคลเอนต์งานระยะไกลทั้งหมดบนยานพาหนะเดียวกัน

  5. ผู้ใช้เข้าสู่ระบบเซิร์ฟเวอร์งานระยะไกลผ่านไคลเอนต์งานระยะไกล และเปิดใช้งานคุณสมบัติการเข้าถึงระยะไกลสำหรับยานพาหนะนี้ โดยทั่วไปขั้นตอนนี้เกี่ยวข้องกับการรับรองความถูกต้องผ่านเซิร์ฟเวอร์งานระยะไกล

  6. ไคลเอ็นต์งานระยะไกลจะอัปโหลดข้อมูลของผู้ใช้พร้อมกับรหัสยานพาหนะและรหัสไคลเอ็นต์ไปยังเซิร์ฟเวอร์งานระยะไกล และขอให้เชื่อมโยงผู้ใช้กับไคลเอ็นต์เฉพาะนี้และยานพาหนะเฉพาะนี้

    ขั้นตอนนี้อาจเกี่ยวข้องกับการรับรองความถูกต้องด้วยสองปัจจัยเพิ่มเติมจากผู้ใช้

    เซิร์ฟเวอร์งานระยะไกลต้องตรวจสอบความถูกต้องว่ารหัสยานพาหนะที่ให้ไว้ในคำขอตรงกับรหัสยานพาหนะของผู้ส่ง ซึ่งสามารถทำได้ผ่านการรับรองยานพาหนะ

เว้นแต่จะมีการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน จำเป็นต้องมีขั้นตอนการลงทะเบียนไคลเอนต์หนึ่งครั้งต่อผู้ใช้ต่อรถยนต์ รหัสไคลเอ็นต์จะถูกจัดเก็บไว้ใน Car Service และจะคงรหัสเดิมสำหรับลูกค้ารายเดียวกัน

image

รูปที่ 2. ลงทะเบียนไคลเอนต์

ยกเลิกการลงทะเบียนลูกค้า

ผู้ใช้สามารถยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของตนจากยานพาหนะหรือจากเซิร์ฟเวอร์งานระยะไกล:

  • บน ยานพาหนะ ผู้ใช้สามารถเปิดแอปไคลเอนต์งานระยะไกลและออกคำขอยกเลิกการเชื่อมโยงเพื่อยกเลิกการเชื่อมโยงยานพาหนะนี้จากบัญชีผู้ใช้ที่เชื่อมโยงก่อนหน้านี้

  • บน เซิร์ฟเวอร์งานระยะไกล ผู้ใช้สามารถเข้าสู่ระบบบัญชีของตนและยกเลิกการเชื่อมโยงยานพาหนะที่เชื่อมโยงก่อนหน้านี้จากบัญชีนี้

หากผู้ใช้ยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของตน เซิร์ฟเวอร์งานระยะไกลจะต้องลบการแมปที่เก็บไว้สำหรับผู้ใช้ที่ระบุ

ส่งมอบงาน

ในระบบคลาวด์:

  1. ผู้ใช้ใช้เซิร์ฟเวอร์งานระยะไกลเพื่อส่งงานระยะไกลไปยังยานพาหนะเฉพาะ

  2. เซิร์ฟเวอร์งานระยะไกลจะจับคู่ ID ผู้ใช้กับ ID ยานพาหนะและ ID ไคลเอนต์ โดยจะส่งข้อมูลงาน รหัสยานพาหนะ และรหัสลูกค้าไปยังเซิร์ฟเวอร์ปลุก

  3. เซิร์ฟเวอร์ปลุกระบบจะค้นหา TCU เฉพาะสำหรับ ID ยานพาหนะ (สมมติว่าการลงทะเบียน TCU เสร็จสิ้นแล้ว) และส่งข้อมูลงานและ ID ไคลเอนต์ไปยัง TCU

บนยานพาหนะ ( ข้อความ ตัวหนา หมายถึงงานที่ดำเนินการโดย AAOS):

  1. TCU รับงานระยะไกลจากเซิร์ฟเวอร์ระยะไกล

  2. หากตัวประมวลผลแอป (AP) ที่ใช้ AAOS ปิดอยู่ TCU จะใช้ตัวประมวลผลของยานพาหนะ (VP) เพื่อปลุก AP

  3. คาร์เซอร์วิส รับงานจาก TCU

  4. Car Service กระจายงานไปยังไคลเอนต์งานระยะไกลที่เกี่ยวข้อง

  5. ไคลเอนต์งานระยะไกลได้รับและดำเนินงาน

    ( ทางเลือก ) ไคลเอนต์งานระยะไกลติดต่อเซิร์ฟเวอร์งานเพื่อดูรายละเอียดงานเพิ่มเติมและดำเนินงาน

  6. ( ทางเลือก ) บริการลูกค้างานระยะไกลรายงานผลงานไปยังเซิร์ฟเวอร์งาน

  7. ไคลเอ็นต์งานระยะไกลจะแจ้ง Car Service เมื่องานเสร็จสิ้น

  8. หากจำเป็น Car Service จะคืนสถานะกำลังของยานพาหนะ

image

รูปที่ 3 ส่งมอบงาน

เขียนไคลเอนต์งานระยะไกล

CarRemoteAccessManager จัดเตรียม API สำหรับคุณสมบัติการเข้าถึงระยะไกล หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ CarRemoteAccessManager ไคลเอนต์งานระยะไกลคือบริการ Android ที่ดำเนินงานระยะไกลและใช้ CarRemoteAccessManager สิ่งนี้ต้องใช้ PERMISSION_USE_REMOTE_ACCESS และ PERMISSION_CONTROL_REMOTE_ACCESS และต้องประกาศตัวกรองเจตนาสำหรับ RemoteTaskClientService เช่น:

<service android:name=".remoteaccess.RemoteTaskClientService"
         android:directBootAware="true"
         android:exported="true">
    <intent-filter>
       <action android:name="android.car.remoteaccess.RemoteTaskClientService" />
    </intent-filter>
</service>

ไคลเอ็นต์งานระยะไกลควรลงทะเบียนตัวเองกับ Car Service ระหว่างการสร้าง:

public final class RemoteTaskClientService extends Service {
    @Override
    public void onCreate() {
        // mCar = Car.createCar()...
        mRemoteAccessManager = (CarRemoteAccessManager)
            mcar.getCarManager(Car.CAR_REMOTE_ACCESS_SERVICE);
        if (mRemoteAccessManager == null) {
            // Remote access feature is not supported.
            return;
        }
        mRemoteAccessManager.setRemoteTaskClient(executor, mRemoteTaskClient);
    }
}

จะต้องแทนที่ฟังก์ชัน onBind เพื่อส่งคืนค่าว่าง

@Override
public IBinder onBind(Intent intent) {
    return null;
}

คาร์เซอร์วิสจัดการวงจรชีวิต Car Service เชื่อมโยงกับบริการนี้ในระหว่างการสตาร์ทและเมื่อมีงานระยะไกลมาถึง บริการรถยนต์จะยกเลิกการเชื่อมโยงกับบริการนี้เมื่องานเสร็จสมบูรณ์ หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ การจัดการวงจรการใช้งานของบริการ

ไคลเอ็นต์งานระยะไกลทำงานในฐานะผู้ใช้ระบบ จึงไม่สามารถเข้าถึงข้อมูลเฉพาะของผู้ใช้ได้

ตัวอย่างต่อไปนี้แสดงวิธีจัดการกับการโทรกลับที่ลงทะเบียนไว้:

private final class RemoteTaskClient
    implements CarRemoteAccessManager.RemoteTaskClientCallback {
    @Override
    public void onRegistrationUpdated(
        RemoteTaskClientRegistrationInfo info) {
        // Register to remote task server using info.
    }
    @Override
    public void onRemoteTaskRequested(String taskId,
        byte[] data, int remainingTimeSec) {
        // Parses the data and execute the task.
        // Report task result to remote task server.
        mRemoteAccessManager.reportRemoteTaskDone(taskId);
    }
    @Override
    public void onShutdownStarting(CompleteableRemoteTaskFuture future) {
        // Stop the executing task.
        // Clear the pending task queue.
        future.complete();
    }
}

การดำเนินการของผู้ขาย

คุณลักษณะการเข้าถึงระยะไกลเป็นทางเลือกและปิดใช้งานตามค่าเริ่มต้น หากต้องการเปิดใช้งานคุณลักษณะ ให้เพิ่ม RRO ดังต่อไปนี้:

// res/xml/overlays.xml
<?xml version="1.0" encoding="utf-8"?>
<overlay>
    <item target="array/config_allowed_optional_car_features" value="@array/config_allowed_optional_car_features" />
</overlay>

// res/values/config.xml
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string-array translatable="false" name="config_allowed_optional_car_features">
        <item>car_remote_access_service</item>
    </string-array>
</resources>

// Android.bp
runtime_resource_overlay {
    name: "RemoteAccessOverlay",
    resource_dirs: ["res"],
    manifest: "AndroidManifest.xml",
    sdk_version: "current",
    product_specific: true
}

หรือใช้คำสั่ง adb ต่อไปนี้บน userdebug/eng build:

adb shell cmd car_service enable-feature car_remote_access_service

ข้อกำหนดบน Android

การเข้าถึงระยะไกล HAL

เลเยอร์นามธรรมของฮาร์ดแวร์การเข้าถึงระยะไกล (HAL) เป็นเลเยอร์นามธรรมที่ผู้จำหน่ายใช้งานสำหรับการสื่อสารระหว่าง AAOS และ ECU อื่น (เช่น TCU) จำเป็นสำหรับการสนับสนุนคุณสมบัติการเข้าถึงระยะไกล ไม่จำเป็นต้องดำเนินการหากไม่ได้ใช้คุณสมบัติการเข้าถึงระยะไกล

อินเทอร์เฟซถูกกำหนดไว้ที่ IRemoteAccess.aidl และมีวิธีการเหล่านี้:

ระดับ คำอธิบาย
String getVehicleId() รับ ID ยานพาหนะเฉพาะที่เซิร์ฟเวอร์ปลุกสามารถรับรู้ได้
String getWakeupServiceName() รับชื่อสำหรับเซิร์ฟเวอร์ปลุกระยะไกล
String getProcessorId() รับ ID โปรเซสเซอร์เฉพาะที่สามารถรับรู้ได้โดยการปลุกไคลเอ็นต์
void setRemoteTaskCallback(IRemoteTaskCallback callback)

ตั้งค่าการโทรกลับให้ถูกเรียกเมื่อมีการร้องของานระยะไกล

void clearRemoteTaskCallback() ล้างการเรียกกลับงานระยะไกลที่ตั้งไว้ก่อนหน้านี้
void notifyApStateChange(in ApState state)

ตรวจพบว่าตัวประมวลผลแอปพร้อมที่จะรับงานระยะไกลหรือไม่

อินเทอร์เฟซการติดต่อกลับถูกกำหนดไว้ที่ IRemoteTaskCallback.aid

ระดับ คำอธิบาย
oneway void onRemoteTaskRequested(String clientId, in byte[] data)

การโทรกลับที่ถูกเรียกเมื่อมีการร้องของานระยะไกล

ดู การใช้งานอ้างอิง กับ TCU ภายนอก การใช้งานนี้ใช้สตรีมการอ่านที่มีอายุการใช้งานยาวนานเพื่อรับงานระยะไกลและรองรับคำสั่ง debug ต่อไปนี้:

dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default

ยานพาหนะ HAL

เพื่อสนับสนุนคุณสมบัติการเข้าถึงระยะไกล VHAL ต้องรองรับคุณสมบัติเหล่านี้:

ระดับ คำอธิบาย
SHUTDOWN_REQUEST ขอให้เฮดยูนิตปิดตัวลง
VEHICLE_IN_USE
  • ตรวจพบว่ารถมีการใช้งานอยู่หรือไม่
  • หลังจากที่ผู้ใช้ปลดล็อคยานพาหนะหรือเมื่อผู้ใช้เข้าใกล้ยานพาหนะ ควรจะเป็น true
  • ระยะเวลาที่กำหนดหลังจากที่ผู้ใช้ดับรถหรือเมื่อผู้ใช้ล็อครถ ควรจะเป็น false
  • เมื่อ true AAOS จะไม่พยายามปิดรถเมื่องานระยะไกลเสร็จสิ้น

หากต้องการเรียนรู้เพิ่มเติม โปรดดู คุณสมบัติระบบที่รองรับ

โหมดเงียบ

ต้องรองรับโหมดเงียบสำหรับคุณสมบัติการเข้าถึงระยะไกล เพื่อให้รถสามารถบู๊ตในโหมดเงียบเพื่อดำเนินงานระยะไกลเมื่อไม่มีผู้ใช้อยู่ เมื่อใช้โหมดเงียบ อุปกรณ์ AAOS จะบู๊ตโดยปิดจอแสดงผลและเสียง

โหมดเงียบถูกควบคุมผ่านไฟล์ sysfs เคอร์เนล Linux สองไฟล์

ระดับ คำอธิบาย
/sys/kernel/silent_boot/pm_silentmode_kernel_state

แสดงถึงโหมดเงียบในปัจจุบัน

/sys/kernel/silent_boot/pm_silentmode_hw_state

แสดงถึงสัญญาณฮาร์ดแวร์เพื่อตั้งค่าโหมดเงียบใหม่

โปรเซสเซอร์ของรถยนต์ส่งสัญญาณ HW ไปยัง Android SoC เพื่อเปิด/ปิดโหมดเงียบ สัญญาณ (0 หรือ 1) ถูกเขียนไปยัง /sys/kernel/silent_boot/pm_silentmode_hw_state จากนั้น กรอบงาน AAOS จะอัปเดต /sys/kernel/silent_boot/pm_silentmode_kernel_state ตามนั้น ซึ่งแสดงถึงโหมด Silent ในปัจจุบัน โมดูล AAOS ตรวจสอบ /sys/kernel/silent_boot/pm_silentmode_kernel_state เพื่อทราบว่าระบบอยู่ในโหมด Silent หรือไม่

เมื่อได้รับงานจากระยะไกลและ AAOS เริ่มทำงาน ตัวประมวลผลของยานพาหนะจะตั้งค่าโหมดเงียบและเริ่ม AAOS เพื่อให้ระบบบูตโดยปิดการแสดงผล/เสียง

ส่วนประกอบที่ไม่ใช่ Android ในรถยนต์

โปรเซสเซอร์ของยานพาหนะ

โปรเซสเซอร์ในรถยนต์คือโปรเซสเซอร์ในรถยนต์ที่สามารถควบคุมพลังงานของโปรเซสเซอร์แอปที่ใช้ Android ในสถาปัตยกรรมตัวอย่าง TCU จะปลุกตัวประมวลผลแอปโดยการส่งสัญญาณไปยังตัวประมวลผลของยานพาหนะ

ส่วนประกอบที่ไม่ใช่ Android ในรถยนต์

TCU ของรถยนต์สามารถรับข้อความระยะไกลได้ตลอดเวลา

ไคลเอนต์การปลุกทำงานบน TCU เพื่อให้แน่ใจว่าการเชื่อมต่อมีอายุการใช้งานยาวนานกับเซิร์ฟเวอร์ปลุกระยะไกล

AAOS ที่ทำงานบน AP สามารถสื่อสารกับไคลเอ็นต์การปลุกที่ทำงานบน TCU ผ่านทาง HAL การเข้าถึงระยะไกล

image

รูปที่ 4. TCU (ไคลเอ็นต์การปลุก)

ส่วนประกอบบนคลาวด์

เซิร์ฟเวอร์ปลุก

เซิร์ฟเวอร์การปลุกสื่อสารกับไคลเอ็นต์การปลุกบน TCU เพื่อ:

  • รักษาการเชื่อมต่อที่ยาวนานกับ TCU ของรถยนต์
  • ค้นหา TCU เฉพาะตามรหัสยานพาหนะ
  • รายงานสถานะของยานพาหนะ ตัวอย่างเช่น ออนไลน์หรือออฟไลน์ หรือเวลาออนไลน์ล่าสุดไปยังเซิร์ฟเวอร์งานระยะไกล

ในการใช้งานจริง เซิร์ฟเวอร์การปลุกสามารถรวมเข้ากับเซิร์ฟเวอร์งานระยะไกลได้

เซิร์ฟเวอร์งานระยะไกล

เซิร์ฟเวอร์งานระยะไกลจัดการงานระยะไกลเหล่านี้

  • ผู้ใช้โต้ตอบกับเซิร์ฟเวอร์เพื่อเริ่มงานระยะไกลใหม่และเพื่อตรวจสอบงานระยะไกล

  • ใช้เซิร์ฟเวอร์ปลุกระยะไกลเพื่อปลุกตัวประมวลผลแอปในยานพาหนะ

  • โต้ตอบกับไคลเอนต์งานระยะไกลที่ทำงานบนยานพาหนะ

  • จัดเก็บข้อมูลการลงทะเบียนลูกค้า ซึ่งจะเชื่อมโยงผู้ใช้เฉพาะเข้ากับไคลเอ็นต์งานระยะไกลเฉพาะบนยานพาหนะเฉพาะ

โดยทั่วไปแล้ว ข้อมูลงาน ที่ส่งผ่านเซิร์ฟเวอร์งานระยะไกลไปยังเซิร์ฟเวอร์ปลุก ไปยัง TCU ของยานพาหนะ และในท้ายที่สุดไปยังไคลเอนต์งานระยะไกลเป็นเพียงรหัสงาน ไคลเอนต์งานระยะไกลใช้ ID งานเพื่อดึงข้อมูลโดยละเอียดจากเซิร์ฟเวอร์งานระยะไกล

ข้อกำหนดความเป็นส่วนตัวและความปลอดภัย

งาน เงื่อนไข ความต้องการ
TCU (ไคลเอ็นต์การปลุก) ต้อง
  • รับรองความถูกต้องของเซิร์ฟเวอร์การปลุก
  • เชื่อรหัสเถอะ
เซิร์ฟเวอร์ปลุก ต้อง
  • อนุญาตเฉพาะเซิร์ฟเวอร์งานระยะไกลที่อยู่ในรายการที่อนุญาตเท่านั้นในการเชื่อมต่อ
  • รับรองความถูกต้องของไคลเอ็นต์การปลุก
  • ส่งข้อความปลุกไปยังรถเป้าหมาย เท่านั้น
ไคลเอนต์งานระยะไกล ต้อง
  • ตรวจสอบผู้ใช้ระหว่างการลงทะเบียน
  • รับรองความถูกต้องของเซิร์ฟเวอร์งานระยะไกล
  • ตรงตามข้อกำหนดด้านความปลอดภัยทั้งหมดสำหรับบริการ Android ตัวอย่างเช่น สิทธิ์ที่จำกัด
เซิร์ฟเวอร์งานระยะไกล ต้อง
  • ต้องรับรองความถูกต้องของเซิร์ฟเวอร์การปลุก
  • ให้บริการรับรองรถ. นั่นคือตรวจสอบความถูกต้องว่ารหัสยานพาหนะที่ให้ไว้ในคำขอตรงกับรหัสยานพาหนะของผู้ส่ง หากไม่สามารถรับรองยานพาหนะได้ จะต้องใช้วิธีการอื่นเพื่อยืนยันว่าผู้ใช้เป็นเจ้าของยานพาหนะในปัจจุบัน
  • ตรวจสอบตัวตนของผู้ใช้
  • ตรงตามข้อกำหนดด้านความปลอดภัยทั้งหมดสำหรับเซิร์ฟเวอร์ที่จัดการข้อมูลผู้ใช้

การรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานและการโอนกรรมสิทธิ์

หากผู้ใช้ทำการรีเซ็ตเป็นค่าเริ่มต้น รหัสไคลเอ็นต์ที่จัดเก็บไว้ในบริการรถยนต์จะถูกล้าง อย่างไรก็ตาม เซิร์ฟเวอร์ (เซิร์ฟเวอร์งานระยะไกลและเซิร์ฟเวอร์ปลุกระยะไกล) จะไม่แจ้งให้ทราบ เซิร์ฟเวอร์เก็บแผนที่จากรหัสไคลเอนต์ที่หมดอายุไปยังยานพาหนะ ด้วยเหตุนี้ หากผู้ใช้เริ่มงานระยะไกลใหม่สำหรับยานพาหนะ ผู้ใช้จะใช้รหัสไคลเอ็นต์ที่หมดอายุ ยานพาหนะถูกปลุกแล้ว แต่งานระยะไกลไม่สามารถดำเนินการได้ เนื่องจากไคลเอ็นต์งานระยะไกลมีรหัสไคลเอ็นต์อื่นที่ไม่ตรงกัน

ข้อมูลต่อไปนี้จะอธิบายการใช้งานที่เป็นไปได้สำหรับการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน

เมื่อผู้ใช้ทำการรีเซ็ตเป็นค่าจากโรงงาน ผู้จำหน่ายจะแจ้งให้ผู้ใช้เข้าสู่ระบบเซิร์ฟเวอร์งานระยะไกล และยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของตน หากผู้ใช้ได้เชื่อมโยงยานพาหนะไว้ก่อนหน้านี้ ไม่รับประกันว่าอุปกรณ์จะสามารถเข้าถึงเครือข่ายได้ในระหว่างการรีเซ็ตเป็นค่าจากโรงงาน ดังนั้น การออกคำขอยกเลิกการเชื่อมโยงจากอุปกรณ์ในเวลารีเซ็ตเป็นค่าเริ่มต้นจากโรงงานจึงอาจไม่สามารถทำได้

เมื่อใดก็ตามที่มีการโอนการเป็นเจ้าของยานพาหนะ การดำเนินการบางอย่างควรดำเนินการเพื่อให้แน่ใจว่าเจ้าของคนก่อนจะไม่สามารถออกงานระยะไกลให้กับยานพาหนะได้อีกต่อไป ตัวอย่างเช่น เจ้าของใหม่อาจถูกขอให้:

  • ทำการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน เพื่อให้แน่ใจว่ารหัสไคลเอ็นต์จะถูกสร้างขึ้นใหม่ หลังจากขั้นตอนนี้ เจ้าของคนก่อนยังคงสามารถปลุกรถได้ แต่ไม่สามารถดำเนินงานระยะไกลได้อีกต่อไป

  • เปิดแอปไคลเอนต์งานระยะไกล และทำตามขั้นตอน ยกเลิกการลงทะเบียนไคลเอนต์ เพื่อยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของเจ้าของคนก่อน เจ้าของใหม่สามารถปฏิบัติตามขั้นตอนการลงทะเบียนลูกค้าเพื่อเชื่อมโยงรถเข้ากับบัญชีของตนและแทนที่บัญชีที่เชื่อมโยงก่อนหน้านี้

  • เจ้าของใหม่สามารถใช้กระบวนการ ลงทะเบียนลูกค้า เพื่อเชื่อมโยงรถเข้ากับบัญชีของตนและแทนที่บัญชีที่เชื่อมโยงก่อนหน้านี้

ทดสอบไคลเอนต์งานระยะไกล

เราจัดทำไดเรกทอรี default เพื่อทดสอบไคลเอ็นต์งานระยะไกล คุณสามารถใช้คำสั่ง debug ต่อไปนี้เพื่อแทรกงานระยะไกลปลอมไปยัง HAL ซึ่งจะถูกส่งต่อไปยังไคลเอ็นต์งานระยะไกลของคุณหากคุณระบุ ID ไคลเอ็นต์ที่ถูกต้อง คุณสามารถรับ ID ไคลเอ็นต์ได้โดยการบันทึกข้อมูลการลงทะเบียนในการใช้งานไคลเอ็นต์งานระยะไกลของคุณ

adb root && adb shell dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --inject-task [clientID] [taskData]