Android 14 ขอแนะนำฟีเจอร์การเข้าถึงระยะไกลใหม่ ซึ่งช่วยให้พาร์ทเนอร์ปลุก Android ในรถยนต์จากระยะไกลเพื่อทำงานที่เฉพาะเจาะจงได้ ตัวอย่างเช่น หากต้องการใช้งาน โหมดโรงรถ ข้ามคืนเพื่อใช้การอัปเดตซอฟต์แวร์ จำเป็นต้องมีองค์ประกอบที่ไม่ใช่ Android หลายรายการสำหรับเวิร์กโฟลว์แบบ end-to-end Android ไม่ได้กำหนดหรือจัดให้มีการใช้งานสำหรับส่วนประกอบที่ไม่ใช่ Android (ความรับผิดชอบนี้เป็นของคุณ)
หากต้องการเรียนรู้เพิ่มเติม ดูส่วนต่อไปนี้:
ขั้นตอนการทำงาน ขั้นตอนการทำงานระหว่างส่วนประกอบต่างๆ ในสถาปัตยกรรมตัวอย่างสำหรับการลงทะเบียนไคลเอ็นต์และการส่งมอบงาน
เขียนไคลเอนต์งานระยะไกล ใช้การเข้าถึงระยะไกลและเรียนรู้วิธีเขียนไคลเอ็นต์งานระยะไกล
การดำเนินการของผู้ขาย ส่วนประกอบของผู้จำหน่ายในสถาปัตยกรรมตัวอย่างเพื่อรองรับการเข้าถึงระยะไกล
การรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานและการโอนกรรมสิทธิ์ เรียนรู้วิธีจัดการกับการรีเซ็ตเป็นค่าจากโรงงานและการโอนกรรมสิทธิ์ยานพาหนะ
ทดสอบไคลเอ็นต์การเข้าถึงระยะไกล เรียนรู้วิธีทดสอบคุณสมบัติการเข้าถึงระยะไกล
สถาปัตยกรรม
เนื้อหาต่อไปนี้สันนิษฐานว่ามีการใช้สถาปัตยกรรมตัวอย่างต่อไปนี้ ซึ่งเป็นเพียงสมมติฐานและอาจไม่สะท้อนถึงสถาปัตยกรรมที่แท้จริง OEM ควรปรับการใช้งานจริงให้เข้ากับสถาปัตยกรรมของยานพาหนะและเซิร์ฟเวอร์
รูปที่ 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 สามารถส่งคำขอปลุกไปยังไคลเอนต์ปลุกได้ |
การใช้งานเซิร์ฟเวอร์งานระยะไกล | เซิร์ฟเวอร์ที่จัดการงานระยะไกล ผู้ใช้โต้ตอบกับเซิร์ฟเวอร์นี้เพื่อออกและตรวจสอบงานระยะไกล |
ขั้นตอนการทำงาน
ส่วนนี้แสดงรายการขั้นตอนในเวิร์กโฟลว์ตัวอย่าง
ขั้นตอนการทำงานตัวอย่าง
เวิร์กโฟลว์โดยละเอียดอาจมีลักษณะดังต่อไปนี้:
ผู้ใช้จอดรถในโรงรถ
พันธมิตรพยายามอัปเดตยานพาหนะข้ามคืนเมื่อการโต้ตอบของยานพาหนะไม่น่าจะเป็นไปได้
เซิร์ฟเวอร์คลาวด์ของคู่ค้าส่งงานระยะไกลของระบบอัพเดตไปยังรถยนต์ โดยเฉพาะชุดควบคุมเทเลเมติกส์ (TCU)
TCU ของรถจะปลุกหน่วยควบคุมอิเล็กทรอนิกส์ (ECU) ของ Android และบริการ OEM จะเรียกใช้โหมด Garage
Android ใช้งานโหมด Garage เพื่อดาวน์โหลดและติดตั้งการอัปเดตผ่าน Google Play
หลังจากใช้การอัปเดต Android จะทำเครื่องหมายงานว่าเสร็จสมบูรณ์และสิ้นสุดการเชื่อมต่อหรือถึงระยะหมดเวลาที่ระบุ
ขั้นตอนการทำงานโดยละเอียด
มีสองขั้นตอนสำคัญที่จำเป็นสำหรับการเข้าถึงระยะไกล ประการแรกคือการลงทะเบียนไคลเอนต์ ซึ่งจะเชื่อมโยงผู้ใช้เฉพาะกับไคลเอนต์งานระยะไกลเฉพาะที่ทำงานบนยานพาหนะเฉพาะ อีกประการหนึ่งคือส่งมอบงาน ซึ่งก็คือการส่งมอบงานระยะไกลสำหรับผู้ใช้เฉพาะไปยังไคลเอนต์งานระยะไกลเฉพาะที่ทำงานบนยานพาหนะเฉพาะ
ลงทะเบียนลูกค้า
หากต้องการใช้คุณสมบัติการเข้าถึงระยะไกล ผู้ใช้จะต้องเปิดแอปไคลเอนต์งานระยะไกลอย่างน้อยหนึ่งครั้งและเสร็จสิ้นกระบวนการลงทะเบียนไคลเอนต์ (ข้อความ ตัวหนา หมายถึงงานที่ดำเนินการโดย AAOS):
เมื่อเปิดเครื่อง Car Service จะรับข้อมูลรถยนต์จาก HAL การเข้าถึงระยะไกล
เมื่อบูตเครื่อง Car Service จะเปิดตัวไคลเอนต์งานระยะไกลทั้งหมดตามตัวกรองเจตนาและการอนุญาต
เมื่อไคลเอนต์งานระยะไกลเริ่มทำงาน ไคลเอนต์งานระยะไกลจะลงทะเบียนตัวเองกับ Car Service
Car Service แจ้งลูกค้างานระยะไกลเกี่ยวกับข้อมูลการลงทะเบียน รวมถึงรหัสยานพาหนะและรหัสลูกค้า รหัสไคลเอ็นต์ไม่ซ้ำกันและกำหนดโดย Car Service ให้กับลูกค้ารายนี้ รับประกันว่าจะไม่ซ้ำกันในหมู่ไคลเอนต์งานระยะไกลทั้งหมดบนยานพาหนะเดียวกัน
ผู้ใช้เข้าสู่ระบบเซิร์ฟเวอร์งานระยะไกลผ่านไคลเอนต์งานระยะไกล และเปิดใช้งานคุณสมบัติการเข้าถึงระยะไกลสำหรับยานพาหนะนี้ โดยทั่วไปขั้นตอนนี้เกี่ยวข้องกับการรับรองความถูกต้องผ่านเซิร์ฟเวอร์งานระยะไกล
ไคลเอ็นต์งานระยะไกลจะอัปโหลดข้อมูลของผู้ใช้พร้อมกับรหัสยานพาหนะและรหัสไคลเอ็นต์ไปยังเซิร์ฟเวอร์งานระยะไกล และขอให้เชื่อมโยงผู้ใช้กับไคลเอ็นต์เฉพาะนี้และยานพาหนะเฉพาะนี้
ขั้นตอนนี้อาจเกี่ยวข้องกับการรับรองความถูกต้องด้วยสองปัจจัยเพิ่มเติมจากผู้ใช้
เซิร์ฟเวอร์งานระยะไกลต้องตรวจสอบความถูกต้องว่ารหัสยานพาหนะที่ให้ไว้ในคำขอตรงกับรหัสยานพาหนะของผู้ส่ง ซึ่งสามารถทำได้ผ่านการรับรองยานพาหนะ
เว้นแต่จะมีการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน จำเป็นต้องมีขั้นตอนการลงทะเบียนไคลเอนต์หนึ่งครั้งต่อผู้ใช้ต่อรถยนต์ รหัสไคลเอ็นต์จะถูกจัดเก็บไว้ใน Car Service และจะคงรหัสเดิมสำหรับลูกค้ารายเดียวกัน
รูปที่ 2. ลงทะเบียนไคลเอนต์
ยกเลิกการลงทะเบียนลูกค้า
ผู้ใช้สามารถยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของตนจากยานพาหนะหรือจากเซิร์ฟเวอร์งานระยะไกล:
บน ยานพาหนะ ผู้ใช้สามารถเปิดแอปไคลเอนต์งานระยะไกลและออกคำขอยกเลิกการเชื่อมโยงเพื่อยกเลิกการเชื่อมโยงยานพาหนะนี้จากบัญชีผู้ใช้ที่เชื่อมโยงก่อนหน้านี้
บน เซิร์ฟเวอร์งานระยะไกล ผู้ใช้สามารถเข้าสู่ระบบบัญชีของตนและยกเลิกการเชื่อมโยงยานพาหนะที่เชื่อมโยงก่อนหน้านี้จากบัญชีนี้
หากผู้ใช้ยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของตน เซิร์ฟเวอร์งานระยะไกลจะต้องลบการแมปที่เก็บไว้สำหรับผู้ใช้ที่ระบุ
ส่งมอบงาน
ในระบบคลาวด์:
ผู้ใช้ใช้เซิร์ฟเวอร์งานระยะไกลเพื่อส่งงานระยะไกลไปยังยานพาหนะเฉพาะ
เซิร์ฟเวอร์งานระยะไกลจะจับคู่ ID ผู้ใช้กับ ID ยานพาหนะและ ID ไคลเอนต์ โดยจะส่งข้อมูลงาน รหัสยานพาหนะ และรหัสลูกค้าไปยังเซิร์ฟเวอร์ปลุก
เซิร์ฟเวอร์ปลุกระบบจะค้นหา TCU เฉพาะสำหรับ ID ยานพาหนะ (สมมติว่าการลงทะเบียน TCU เสร็จสิ้นแล้ว) และส่งข้อมูลงานและ ID ไคลเอนต์ไปยัง TCU
บนยานพาหนะ ( ข้อความ ตัวหนา หมายถึงงานที่ดำเนินการโดย AAOS):
TCU รับงานระยะไกลจากเซิร์ฟเวอร์ระยะไกล
หากตัวประมวลผลแอป (AP) ที่ใช้ AAOS ปิดอยู่ TCU จะใช้ตัวประมวลผลของยานพาหนะ (VP) เพื่อปลุก AP
คาร์เซอร์วิส รับงานจาก TCU
Car Service กระจายงานไปยังไคลเอนต์งานระยะไกลที่เกี่ยวข้อง
ไคลเอนต์งานระยะไกลได้รับและดำเนินงาน
( ทางเลือก ) ไคลเอนต์งานระยะไกลติดต่อเซิร์ฟเวอร์งานเพื่อดูรายละเอียดงานเพิ่มเติมและดำเนินงาน
( ทางเลือก ) บริการลูกค้างานระยะไกลรายงานผลงานไปยังเซิร์ฟเวอร์งาน
ไคลเอ็นต์งานระยะไกลจะแจ้ง Car Service เมื่องานเสร็จสิ้น
หากจำเป็น Car Service จะคืนสถานะกำลังของยานพาหนะ
รูปที่ 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 |
|
หากต้องการเรียนรู้เพิ่มเติม โปรดดู คุณสมบัติระบบที่รองรับ
โหมดเงียบ
ต้องรองรับโหมดเงียบสำหรับคุณสมบัติการเข้าถึงระยะไกล เพื่อให้รถสามารถบู๊ตในโหมดเงียบเพื่อดำเนินงานระยะไกลเมื่อไม่มีผู้ใช้อยู่ เมื่อใช้โหมดเงียบ อุปกรณ์ 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 การเข้าถึงระยะไกล
รูปที่ 4. TCU (ไคลเอ็นต์การปลุก)
ส่วนประกอบบนคลาวด์
เซิร์ฟเวอร์ปลุก
เซิร์ฟเวอร์การปลุกสื่อสารกับไคลเอ็นต์การปลุกบน TCU เพื่อ:
- รักษาการเชื่อมต่อที่ยาวนานกับ TCU ของรถยนต์
- ค้นหา TCU เฉพาะตามรหัสยานพาหนะ
- รายงานสถานะของยานพาหนะ ตัวอย่างเช่น ออนไลน์หรือออฟไลน์ หรือเวลาออนไลน์ล่าสุดไปยังเซิร์ฟเวอร์งานระยะไกล
ในการใช้งานจริง เซิร์ฟเวอร์การปลุกสามารถรวมเข้ากับเซิร์ฟเวอร์งานระยะไกลได้
เซิร์ฟเวอร์งานระยะไกล
เซิร์ฟเวอร์งานระยะไกลจัดการงานระยะไกลเหล่านี้
ผู้ใช้โต้ตอบกับเซิร์ฟเวอร์เพื่อเริ่มงานระยะไกลใหม่และเพื่อตรวจสอบงานระยะไกล
ใช้เซิร์ฟเวอร์ปลุกระยะไกลเพื่อปลุกตัวประมวลผลแอปในยานพาหนะ
โต้ตอบกับไคลเอนต์งานระยะไกลที่ทำงานบนยานพาหนะ
จัดเก็บข้อมูลการลงทะเบียนลูกค้า ซึ่งจะเชื่อมโยงผู้ใช้เฉพาะเข้ากับไคลเอ็นต์งานระยะไกลเฉพาะบนยานพาหนะเฉพาะ
โดยทั่วไปแล้ว ข้อมูลงาน ที่ส่งผ่านเซิร์ฟเวอร์งานระยะไกลไปยังเซิร์ฟเวอร์ปลุก ไปยัง TCU ของยานพาหนะ และในท้ายที่สุดไปยังไคลเอนต์งานระยะไกลเป็นเพียงรหัสงาน ไคลเอนต์งานระยะไกลใช้ ID งานเพื่อดึงข้อมูลโดยละเอียดจากเซิร์ฟเวอร์งานระยะไกล
ข้อกำหนดความเป็นส่วนตัวและความปลอดภัย
งาน | เงื่อนไข | ความต้องการ |
---|---|---|
TCU (ไคลเอ็นต์การปลุก) | ต้อง |
|
เซิร์ฟเวอร์ปลุก | ต้อง |
|
ไคลเอนต์งานระยะไกล | ต้อง |
|
เซิร์ฟเวอร์งานระยะไกล | ต้อง |
|
การรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานและการโอนกรรมสิทธิ์
หากผู้ใช้ทำการรีเซ็ตเป็นค่าเริ่มต้น รหัสไคลเอ็นต์ที่จัดเก็บไว้ในบริการรถยนต์จะถูกล้าง อย่างไรก็ตาม เซิร์ฟเวอร์ (เซิร์ฟเวอร์งานระยะไกลและเซิร์ฟเวอร์ปลุกระยะไกล) จะไม่แจ้งให้ทราบ เซิร์ฟเวอร์เก็บแผนที่จากรหัสไคลเอนต์ที่หมดอายุไปยังยานพาหนะ ด้วยเหตุนี้ หากผู้ใช้เริ่มงานระยะไกลใหม่สำหรับยานพาหนะ ผู้ใช้จะใช้รหัสไคลเอ็นต์ที่หมดอายุ ยานพาหนะถูกปลุกแล้ว แต่งานระยะไกลไม่สามารถดำเนินการได้ เนื่องจากไคลเอ็นต์งานระยะไกลมีรหัสไคลเอ็นต์อื่นที่ไม่ตรงกัน
ข้อมูลต่อไปนี้จะอธิบายการใช้งานที่เป็นไปได้สำหรับการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน
เมื่อผู้ใช้ทำการรีเซ็ตเป็นค่าจากโรงงาน ผู้จำหน่ายจะแจ้งให้ผู้ใช้เข้าสู่ระบบเซิร์ฟเวอร์งานระยะไกล และยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของตน หากผู้ใช้ได้เชื่อมโยงยานพาหนะไว้ก่อนหน้านี้ ไม่รับประกันว่าอุปกรณ์จะสามารถเข้าถึงเครือข่ายได้ในระหว่างการรีเซ็ตเป็นค่าจากโรงงาน ดังนั้น การออกคำขอยกเลิกการเชื่อมโยงจากอุปกรณ์ในเวลารีเซ็ตเป็นค่าเริ่มต้นจากโรงงานจึงอาจไม่สามารถทำได้
เมื่อใดก็ตามที่มีการโอนการเป็นเจ้าของยานพาหนะ การดำเนินการบางอย่างควรดำเนินการเพื่อให้แน่ใจว่าเจ้าของคนก่อนจะไม่สามารถออกงานระยะไกลให้กับยานพาหนะได้อีกต่อไป ตัวอย่างเช่น เจ้าของใหม่อาจถูกขอให้:
ทำการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน เพื่อให้แน่ใจว่ารหัสไคลเอ็นต์จะถูกสร้างขึ้นใหม่ หลังจากขั้นตอนนี้ เจ้าของคนก่อนยังคงสามารถปลุกรถได้ แต่ไม่สามารถดำเนินงานระยะไกลได้อีกต่อไป
เปิดแอปไคลเอนต์งานระยะไกล และทำตามขั้นตอน ยกเลิกการลงทะเบียนไคลเอนต์ เพื่อยกเลิกการเชื่อมโยงยานพาหนะจากบัญชีของเจ้าของคนก่อน เจ้าของใหม่สามารถปฏิบัติตามขั้นตอนการลงทะเบียนลูกค้าเพื่อเชื่อมโยงรถเข้ากับบัญชีของตนและแทนที่บัญชีที่เชื่อมโยงก่อนหน้านี้
เจ้าของใหม่สามารถใช้กระบวนการ ลงทะเบียนลูกค้า เพื่อเชื่อมโยงรถเข้ากับบัญชีของตนและแทนที่บัญชีที่เชื่อมโยงก่อนหน้านี้
ทดสอบไคลเอนต์งานระยะไกล
เราจัดทำไดเรกทอรี default
เพื่อทดสอบไคลเอ็นต์งานระยะไกล คุณสามารถใช้คำสั่ง debug
ต่อไปนี้เพื่อแทรกงานระยะไกลปลอมไปยัง HAL ซึ่งจะถูกส่งต่อไปยังไคลเอ็นต์งานระยะไกลของคุณหากคุณระบุ ID ไคลเอ็นต์ที่ถูกต้อง คุณสามารถรับ ID ไคลเอ็นต์ได้โดยการบันทึกข้อมูลการลงทะเบียนในการใช้งานไคลเอ็นต์งานระยะไกลของคุณ
adb root && adb shell dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --inject-task [clientID] [taskData]