Android 14 में रिमोट ऐक्सेस की नई सुविधा जोड़ी गई है. इसकी मदद से पार्टनर, किसी वाहन में मौजूद Android डिवाइस को रिमोट से चालू कर सकते हैं, ताकि कुछ खास टास्क पूरे किए जा सकें. उदाहरण के लिए, सॉफ़्टवेयर अपडेट लागू करने के लिए, रात भर गैराज मोड चालू रखना. एंड-टू-एंड वर्कफ़्लो के लिए, Android के अलावा कई अन्य कॉम्पोनेंट की ज़रूरत होती है. Android, Android के अलावा अन्य कॉम्पोनेंट के लिए, न तो कोई परिभाषा तय करता है और न ही उन्हें लागू करने का तरीका बताता है. यह ज़िम्मेदारी आपकी है.
ज़्यादा जानने के लिए, यहां दिए गए सेक्शन देखें:
Workflow. क्लाइंट के रजिस्ट्रेशन और टास्क की डिलीवरी के लिए, सैंपल आर्किटेक्चर में मौजूद कई कॉम्पोनेंट के बीच का वर्कफ़्लो.
रिमोट टास्क क्लाइंट लिखना. रिमोट ऐक्सेस का इस्तेमाल करें और रिमोट टास्क क्लाइंट लिखने का तरीका जानें.
वेंडर के लिए लागू करना. रिमोट ऐक्सेस की सुविधा देने के लिए, सैंपल आर्किटेक्चर में वेंडर कॉम्पोनेंट.
फ़ैक्ट्री रीसेट करना और मालिकाना हक ट्रांसफ़र करना. फ़ैक्ट्री रीसेट करने और वाहन का मालिकाना हक ट्रांसफ़र करने का तरीका जानें.
रिमोट ऐक्सेस क्लाइंट की जांच करें. रिमोट ऐक्सेस की सुविधा को टेस्ट करने का तरीका जानें.
वास्तुकला
इस कॉन्टेंट में, यह माना गया है कि इस सैंपल आर्किटेक्चर का इस्तेमाल किया गया है. यह काल्पनिक है और हो सकता है कि यह असल आर्किटेक्चर को न दिखाए. ओईएम को अपने वाहन और सर्वर के आर्किटेक्चर के हिसाब से, असल में लागू होने वाले तरीके को अपनाना चाहिए.
पहली इमेज. सैंपल आर्किटेक्चर.
सैंपल आर्किटेक्चर में ये हार्डवेयर कॉम्पोनेंट शामिल हैं:
| हार्डवेयर कॉम्पोनेंट | ब्यौरा |
|---|---|
| ऐप्लिकेशन प्रोसेसर | Android को चलाने वाला प्रोसेसर. Android, इस प्रोसेसर पर वर्चुअल मेमोरी (वीएम) पर चल सकता है. हालांकि, यह असली हार्डवेयर पर नहीं चलेगा. |
| वाहन प्रोसेसर | ऐप्लिकेशन प्रोसेसर के लिए पावर को कंट्रोल करने वाला प्रोसेसर. |
| टेलीमैटिक्स कंट्रोल यूनिट (टीसीयू) | वाहन में मौजूद प्रोसेसर, क्लाउड से रिमोट मैसेज हमेशा पा सकता है. टीसीयू हमेशा चालू रहता है या कम पावर वाले मोड में रहता है. टीसीयू को चालू करने के लिए, रिमोट मैसेज का इस्तेमाल करें. |
| वेक-अप सर्वर | यह क्लाउड में चलने वाला रिमोट सर्वर होता है. यह वाहन में मौजूद टीसीयू से कम्यूनिकेट करता है, ताकि वेक-अप कमांड जारी की जा सकें. |
| रिमोट टास्क सर्वर | रिमोट टास्क सर्वर, क्लाउड में चलता है. यह लोगों से इंटरैक्ट करता है और रिमोट टास्क मैनेज करता है. |
सैंपल आर्किटेक्चर में ये सॉफ़्टवेयर कॉम्पोनेंट शामिल हैं. ये सभी Android पर काम करते हैं:
| Android डिवाइस पर मौजूद सॉफ़्टवेयर कॉम्पोनेंट | ब्यौरा |
|---|---|
| कार सेवा | AAOS फ़्रेमवर्क की सेवा, जो रिमोट ऐक्सेस एपीआई उपलब्ध कराती है. |
| रिमोट टास्क क्लाइंट | वेंडर की ओर से लिखा गया
Service
क्लास, जो रिमोट टास्क पूरे करता है. एक Android सिस्टम पर, कई रिमोट टास्क क्लाइंट चलाए जा सकते हैं. |
| रिमोट ऐक्सेस एचएएल | रिमोट ऐक्सेस के लिए इसे लागू करना ज़रूरी है. यह AAOS और TCU जैसे नॉन-Android कॉम्पोनेंट के बीच कम्यूनिकेशन के लिए ऐब्स्ट्रैक्शन लेयर है. |
Android के अलावा किसी अन्य ओएस पर चलने वाले सॉफ़्टवेयर के कॉम्पोनेंट के बारे में यहां बताया गया है:
| Android के अलावा किसी अन्य प्लैटफ़ॉर्म का सॉफ़्टवेयर कॉम्पोनेंट | ब्यौरा |
|---|---|
| क्लाइंट को रीस्टोर करना | टीसीयू पर चलने वाला सॉफ़्टवेयर, जो वेक-अप सर्वर के साथ लंबे समय तक कनेक्शन बनाए रखता है. यह Remote Access HAL से भी कनेक्ट रहता है, ताकि Car Service को रिमोट टास्क डिलीवर किए जा सकें. |
| वेक-अप सर्वर लागू करना | यह सर्वर, टीसीयू पर चल रहे वेक-अप क्लाइंट से कम्यूनिकेट करता है. वेक-अप क्लाइंट को वेक-अप अनुरोध भेज सकता है. |
| रिमोट टास्क सर्वर लागू करना | यह रिमोट टास्क को मैनेज करने वाला सर्वर होता है. उपयोगकर्ता इस सर्वर के साथ इंटरैक्ट करते हैं, ताकि वे रिमोट टास्क जारी कर सकें और उनकी निगरानी कर सकें. |
वर्कफ़्लो
इस सेक्शन में, सैंपल वर्कफ़्लो में शामिल चरणों की सूची दी गई है.
वर्कफ़्लो का सैंपल
ज़्यादा जानकारी वाला वर्कफ़्लो इस तरह का हो सकता है:
उपयोगकर्ता ने वाहन को गैराज में पार्क किया.
पार्टनर, वाहन के साथ इंटरैक्शन होने की संभावना कम होने पर, रात भर में वाहन को अपडेट करने की कोशिश करता है.
पार्टनर का क्लाउड सर्वर, वाहन को अपडेट सिस्टम रिमोट टास्क भेजता है. खास तौर पर, टेलीमैटिक कंट्रोल यूनिट (टीसीयू).
वाहन का टीसीयू, Android इलेक्ट्रॉनिक कंट्रोल यूनिट (ईसीयू) को चालू करता है. साथ ही, ओईएम की सेवा, गैराज मोड को ट्रिगर करती है.
Android, Google Play के ज़रिए अपडेट डाउनलोड और इंस्टॉल करने के लिए, Garage mode का इस्तेमाल करता है.
अपडेट लागू करने के बाद, Android टास्क को 'पूरा हो गया' के तौर पर मार्क करता है. इसके बाद, वह कनेक्शन बंद कर देता है या तय किए गए टाइम आउट तक पहुंच जाता है.
वर्कफ़्लो की पूरी जानकारी
रिमोट ऐक्सेस के लिए, दो ज़रूरी चरण पूरे करने होते हैं. पहला तरीका है क्लाइंट को रजिस्टर करना. इसका मतलब है कि किसी उपयोगकर्ता को किसी वाहन पर चल रहे किसी रिमोट टास्क क्लाइंट से लिंक करना. दूसरा काम है, किसी टास्क को पूरा करना. इसका मतलब है कि किसी खास उपयोगकर्ता के लिए रिमोट टास्क को, किसी खास वाहन पर चल रहे रिमोट टास्क क्लाइंट को डिलीवर करना.
क्लाइंट को रजिस्टर करना
रिमोट ऐक्सेस की सुविधा का इस्तेमाल करने के लिए, उपयोगकर्ता को रिमोट टास्क क्लाइंट ऐप्लिकेशन को कम से कम एक बार खोलना होगा. साथ ही, उसे क्लाइंट के रजिस्ट्रेशन की प्रोसेस पूरी करनी होगी (बोल्ड टेक्स्ट से पता चलता है कि AAOS ने कौनसे टास्क लागू किए हैं):
बूट-अप करने पर, Car Service को रिमोट ऐक्सेस एचएएल से वाहन की जानकारी मिलती है.
बूट-अप होने पर, कार सर्विस, इंटेंट-फ़िल्टर और अनुमति के आधार पर, रिमोट टास्क के सभी क्लाइंट लॉन्च करती है.
रिमोट टास्क क्लाइंट शुरू होने पर, रिमोट टास्क क्लाइंट खुद को कार सेवा के साथ रजिस्टर करता है.
कार सर्विस, रिमोट टास्क क्लाइंट को रजिस्ट्रेशन की जानकारी देती है. इसमें वाहन का आईडी और क्लाइंट आईडी शामिल है. क्लाइंट आईडी यूनीक होता है और इसे कार सेवा देने वाली कंपनी, इस क्लाइंट को असाइन करती है. यह गारंटी दी जाती है कि एक ही वाहन पर मौजूद सभी रिमोट टास्क क्लाइंट के लिए, यह यूनीक होगा.
उपयोगकर्ता, रिमोट टास्क क्लाइंट के ज़रिए रिमोट टास्क सर्वर में लॉग इन करता है और इस वाहन के लिए रिमोट ऐक्सेस की सुविधा चालू करता है. इस चरण में आम तौर पर, रिमोट टास्क सर्वर के ज़रिए पुष्टि की जाती है.
रिमोट टास्क क्लाइंट, उपयोगकर्ता की जानकारी को वाहन आईडी और क्लाइंट आईडी के साथ रिमोट टास्क सर्वर पर अपलोड करता है. साथ ही, सर्वर से उपयोगकर्ता को इस खास क्लाइंट और इस खास वाहन से लिंक करने के लिए कहता है.
इस चरण में, उपयोगकर्ता से दो तरीकों से पुष्टि वाले अतिरिक्त प्रमाणीकरण की ज़रूरत पड़ सकती है. हालांकि, ऐसा करना ज़रूरी नहीं है.
रिमोट टास्क सर्वर को यह पुष्टि करनी होगी कि अनुरोध में दिया गया वाहन आईडी, भेजने वाले के वाहन आईडी से मेल खाता है. ऐसा वाहन की पुष्टि करके किया जा सकता है.
फ़ैक्ट्री रीसेट होने तक, क्लाइंट रजिस्ट्रेशन की प्रोसेस को हर उपयोगकर्ता के लिए हर वाहन में एक बार पूरा करना ज़रूरी है. क्लाइंट आईडी को कार सर्विस में स्थानीय तौर पर सेव किया जाता है. साथ ही, यह एक ही क्लाइंट के लिए एक जैसा रहता है.
दूसरी इमेज. किसी क्लाइंट को रजिस्टर करें.
किसी क्लाइंट को अनरजिस्टर करना
कोई उपयोगकर्ता, वाहन को अपने खाते से अलग कर सकता है. इसके लिए, वह वाहन या रिमोट टास्क सर्वर का इस्तेमाल कर सकता है:
वाहन में, उपयोगकर्ता रिमोट टास्क क्लाइंट ऐप्लिकेशन खोल सकते हैं. साथ ही, इस वाहन को पहले से लिंक किए गए उपयोगकर्ता खातों से अनलिंक करने का अनुरोध कर सकते हैं.
रिमोट टास्क सर्वर पर, उपयोगकर्ता अपने खाते में लॉग इन कर सकते हैं. साथ ही, इस खाते से पहले से लिंक किए गए वाहन को अनलिंक कर सकते हैं.
अगर उपयोगकर्ता अपने खाते से वाहन को अनलिंक करता है, तो रिमोट टास्क सर्वर को उस उपयोगकर्ता के लिए सेव की गई मैपिंग को हटाना होगा.
टास्क डिलीवर करना
क्लाउड में:
कोई उपयोगकर्ता, रिमोट टास्क सर्वर का इस्तेमाल करके किसी वाहन को रिमोट टास्क भेजता है.
रिमोट टास्क सर्वर, उपयोगकर्ता आईडी को वाहन आईडी और क्लाइंट आईडी से मैप करता है. यह टास्क का डेटा, वाहन का आईडी, और क्लाइंट आईडी को वेक-अप सर्वर पर भेजता है.
वेक-अप सर्वर, वाहन के आईडी के हिसाब से टीसीयू का पता लगाता है. (मान लें कि टीसीयू का रजिस्ट्रेशन पहले ही हो चुका है). इसके बाद, वह टीसीयू को टास्क का डेटा और क्लाइंट आईडी भेजता है.
वाहन पर (बोल्ड टेक्स्ट से पता चलता है कि AAOS ने कौनसे टास्क पूरे किए):
टीसीयू को रिमोट सर्वर से रिमोट टास्क मिलते हैं.
अगर AAOS चलाने वाला ऐप्लिकेशन प्रोसेसर (एपी) बंद है, तो टीसीयू, एपी को चालू करने के लिए वाहन प्रोसेसर (वीपी) का इस्तेमाल करता है.
Car Service को टीसीयू से टास्क मिलते हैं.
Car Service, टास्क को उससे जुड़े रिमोट टास्क क्लाइंट को भेजता है.
रिमोट टास्क क्लाइंट को टास्क मिलता है और वह उसे पूरा करता है.
(ज़रूरी नहीं) रिमोट टास्क क्लाइंट, टास्क के बारे में ज़्यादा जानकारी पाने के लिए टास्क सर्वर से संपर्क करता है और टास्क को पूरा करता है.
(ज़रूरी नहीं) रिमोट टास्क क्लाइंट, टास्क के नतीजे की जानकारी टास्क सर्वर को देता है.
टास्क पूरा होने पर, रिमोट टास्क क्लाइंट, कार सर्विस को इसकी सूचना देता है.
अगर ज़रूरी हो, तो कार सेवा, वाहन की पावर की स्थिति को पहले जैसा कर देती है.
तीसरी इमेज. टास्क डिलीवर करना.
रिमोट टास्क क्लाइंट लिखना
CarRemoteAccessManager, रिमोट ऐक्सेस की सुविधाओं के लिए एपीआई उपलब्ध कराता है. ज़्यादा जानने के लिए, 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 फ़ंक्शन को ओवरराइड करना होगा, ताकि यह null दिखा सके.
@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 कमांड का इस्तेमाल करें:
adb shell cmd car_service enable-feature car_remote_access_service
Android डिवाइस पर इस्तेमाल करने से जुड़ी ज़रूरी शर्तें
रिमोट ऐक्सेस एचएएल
रिमोट ऐक्सेस हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल), वेंडर की ओर से लागू की गई ऐब्स्ट्रैक्शन लेयर है. इसका इस्तेमाल AAOS और किसी अन्य ईसीयू (उदाहरण के लिए, टीसीयू) के बीच कम्यूनिकेशन के लिए किया जाता है. रिमोट ऐक्सेस की सुविधा के लिए, यह ज़रूरी है. अगर रिमोट ऐक्सेस की सुविधा लागू नहीं की गई है, तो इसे लागू करने की ज़रूरत नहीं है.
इंटरफ़ेस को IRemoteAccess.aidl पर तय किया गया है. इसमें ये तरीके शामिल हैं:
| कक्षा | ब्यौरा |
|---|---|
String getVehicleId() |
यह कुकी, वाहन का एक यूनीक आईडी हासिल करती है. इस आईडी की मदद से, वेक-अप सर्वर वाहन की पहचान कर सकता है. |
String getWakeupServiceName() |
यह रिमोट वेक-अप सर्वर का नाम दिखाता है. |
String getProcessorId() |
यह कुकी, एक यूनीक प्रोसेसर आईडी को सेव करती है. इस आईडी की मदद से, क्लाइंट को चालू किया जा सकता है. |
void setRemoteTaskCallback(IRemoteTaskCallback callback)
यह फ़ंक्शन, रिमोट टास्क का अनुरोध किए जाने पर कॉल किए जाने वाले कॉलबैक को सेट करता है. |
|
void clearRemoteTaskCallback() |
यह पहले से सेट किए गए रिमोट टास्क के कॉलबैक को मिटाता है. |
void notifyApStateChange(in ApState state)
यह कुकी पता लगाती है कि ऐप्लिकेशन प्रोसेसर, रिमोट टास्क पाने के लिए तैयार है या नहीं. | |
कॉलबैक इंटरफ़ेस को IRemoteTaskCallback.aid पर तय किया जाता है.
| कक्षा | ब्यौरा |
|---|---|
oneway void onRemoteTaskRequested(String clientId, in byte[] data)
यह एक कॉलबैक है, जिसे रिमोट टास्क का अनुरोध किए जाने पर कॉल किया जाता है. |
|
बाहरी टीसीयू के साथ रेफ़रंस के तौर पर लागू करने का तरीका देखें. लागू करने के लिए, लंबे समय तक चलने वाली रीड स्ट्रीम का इस्तेमाल किया जाता है, ताकि रिमोट टास्क मिल सकें. साथ ही, यह debug कमांड के साथ काम करता है:
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default
व्हीकल एचएएल
रिमोट ऐक्सेस की सुविधा के लिए, VHAL में ये प्रॉपर्टी काम करनी चाहिए:
| कक्षा | ब्यौरा |
|---|---|
SHUTDOWN_REQUEST |
मुख्य यूनिट को शट डाउन करने का अनुरोध करता है. |
VEHICLE_IN_USE |
|
ज़्यादा जानने के लिए, इस्तेमाल की जा सकने वाली सिस्टम प्रॉपर्टी देखें.
साइलेंट मोड (खामोश)
रिमोट ऐक्सेस की सुविधा के लिए, साइलेंट मोड काम करना चाहिए, ताकि जब कोई उपयोगकर्ता मौजूद न हो, तो वाहन साइलेंट मोड में बूट हो सके और रिमोट टास्क पूरे कर सके. साइलेंट मोड में, AAOS डिवाइस बूट अप होता है. इस दौरान, डिसप्ले और ऑडियो बंद रहता है.
साइलेंट मोड को दो Linux कर्नेल sysfs फ़ाइलों से कंट्रोल किया जाता है.
| कक्षा | ब्यौरा |
|---|---|
/sys/kernel/silent_boot/pm_silentmode_kernel_state
इससे मौजूदा साइलेंट मोड के बारे में पता चलता है. |
|
/sys/kernel/silent_boot/pm_silentmode_hw_state
यह साइलेंट मोड को सेट करने के लिए, हार्डवेयर सिग्नल को दिखाता है. |
|
वाहन का प्रोसेसर, Android SoC को एचडब्ल्यू सिग्नल भेजता है, ताकि साइलेंट मोड को चालू/बंद किया जा सके. सिग्नल (0 या 1) को /sys/kernel/silent_boot/pm_silentmode_hw_state में लिखा जाता है. इसके बाद, AAOS फ़्रेमवर्क, साइलेंट मोड की मौजूदा स्थिति के हिसाब से /sys/kernel/silent_boot/pm_silentmode_kernel_state अपडेट हो जाता है. AAOS मॉड्यूल, /sys/kernel/silent_boot/pm_silentmode_kernel_state की जांच करते हैं. इससे यह पता चलता है कि सिस्टम साइलेंट मोड में है या नहीं.
जब कोई रिमोट टास्क मिलता है और AAOS बूट होता है, तो वाहन का प्रोसेसर साइलेंट मोड सेट करता है और AAOS को चालू करता है, ताकि सिस्टम डिसप्ले/ऑडियो बंद करके बूट हो.
वाहन में मौजूद ऐसे कॉम्पोनेंट जो Android के नहीं हैं
वाहन प्रोसेसर
वाहन का प्रोसेसर, वाहन में मौजूद एक प्रोसेसर होता है. यह Android चलाने वाले ऐप्लिकेशन प्रोसेसर की पावर को कंट्रोल कर सकता है. आर्किटेक्चर के उदाहरण में, टीसीयू, वाहन के प्रोसेसर को सिग्नल भेजकर ऐप्लिकेशन प्रोसेसर को चालू करता है.
वाहन में मौजूद ऐसे कॉम्पोनेंट जो Android के नहीं हैं
वाहन का टीसीयू, रिमोट मैसेज हमेशा पा सकता है.
वेक-अप क्लाइंट, टीसीयू पर चलता है. इससे यह पक्का किया जाता है कि रिमोट वेक-अप सर्वर के साथ लंबे समय तक कनेक्शन बना रहे.
एपी पर चल रहा AAOS, रिमोट ऐक्सेस एचएएल के ज़रिए टीसीयू पर चल रहे वेक-अप क्लाइंट से कम्यूनिकेट कर सकता है.
चौथी इमेज. टीसीयू (वेक-अप क्लाइंट).
क्लाउड पर मौजूद कॉम्पोनेंट
वेक-अप सर्वर
वेक-अप सर्वर, टीसीयू पर मौजूद वेक-अप क्लाइंट से इन कामों के लिए कम्यूनिकेट करता है:
- वाहन के टीसीयू के साथ लंबे समय तक कनेक्शन बनाए रखना.
- वाहन के आईडी के आधार पर, किसी खास टीसीयू को ढूंढना.
- किसी वाहन की स्थिति की रिपोर्ट करना. उदाहरण के लिए, रिमोट टास्क सर्वर से ऑनलाइन या ऑफ़लाइन कनेक्ट होने की स्थिति या उससे कनेक्ट होने का आखिरी समय.
असल में, वेक-अप सर्वर को रिमोट टास्क सर्वर के साथ मर्ज किया जा सकता है.
रिमोट टास्क सर्वर
रिमोट टास्क सर्वर, इन रिमोट टास्क को मैनेज करता है.
उपयोगकर्ता, सर्वर के साथ इंटरैक्ट करके नए रिमोट टास्क शुरू करता है और रिमोट टास्क की निगरानी करता है.
यह कुकी, रिमोट वेक-अप सर्वर का इस्तेमाल करके वाहनों में ऐप्लिकेशन प्रोसेसर को चालू करती है.
यह कुकी, वाहन पर चल रहे रिमोट टास्क क्लाइंट के साथ इंटरैक्ट करती है.
यह कुकी, क्लाइंट के रजिस्ट्रेशन की जानकारी सेव करती है. इससे किसी वाहन पर मौजूद किसी रिमोट टास्क क्लाइंट से किसी उपयोगकर्ता को जोड़ा जाता है.
आम तौर पर, रिमोट टास्क सर्वर से वेक-अप सर्वर, वाहन के टीसीयू, और आखिर में रिमोट टास्क क्लाइंट को भेजा जाने वाला टास्क का डेटा, सिर्फ़ एक टास्क आईडी होता है. रिमोट टास्क क्लाइंट, टास्क आईडी का इस्तेमाल करके रिमोट टास्क सर्वर से टास्क के बारे में ज़्यादा जानकारी फ़ेच करता है.
निजता और सुरक्षा से जुड़ी ज़रूरी शर्तें
| टास्क | शर्त | ज़रूरी शर्त |
|---|---|---|
| टीसीयू (वेक-अप क्लाइंट) | ज़रूरी है |
|
| वेक-अप सर्वर | ज़रूरी है |
|
| रिमोट टास्क क्लाइंट | ज़रूरी है |
|
| रिमोट टास्क सर्वर | ज़रूरी है |
|
फ़ैक्ट्री रीसेट करना और मालिकाना हक ट्रांसफ़र करना
अगर कोई उपयोगकर्ता फ़ैक्ट्री रीसेट करता है, तो कार सेवा में सेव किया गया Client-ID मिट जाता है. हालांकि, सर्वर (रिमोट टास्क सर्वर और रिमोट वेकअप सर्वर) को इसकी सूचना नहीं दी जाती है. सर्वर, अब खत्म हो चुके क्लाइंट आईडी से वाहन की मैपिंग को बनाए रखते हैं. इस वजह से, अगर उपयोगकर्ता वाहन के लिए कोई नया रिमोट टास्क शुरू करता है, तो यह खत्म हो चुके क्लाइंट आईडी का इस्तेमाल करता है. वाहन को चालू कर दिया जाता है, लेकिन रिमोट टास्क को पूरा नहीं किया जा सकता, क्योंकि रिमोट टास्क क्लाइंट का क्लाइंट आईडी अलग है और यह मेल नहीं खाता.
यहां फ़ैक्ट्री रीसेट को लागू करने के एक संभावित तरीके के बारे में बताया गया है.
जब कोई उपयोगकर्ता फ़ैक्ट्री रीसेट करता है, तो वेंडर उपयोगकर्ता को रिमोट टास्क सर्वर में लॉग इन करने के लिए कहता है. साथ ही, अगर उपयोगकर्ता ने पहले वाहन को अपने खाते से लिंक किया है, तो उसे वाहन को अनलिंक करने के लिए कहता है. फ़ैक्ट्री रीसेट के दौरान, डिवाइस में नेटवर्क ऐक्सेस होने की गारंटी नहीं होती. इसलिए, डिवाइस को फ़ैक्ट्री रीसेट करते समय, उसे अनलिंक करने का अनुरोध करना संभव नहीं हो सकता.
जब किसी वाहन का मालिकाना हक ट्रांसफ़र किया जाता है, तो कुछ कार्रवाइयां की जानी चाहिए. इससे यह पक्का किया जा सकता है कि पिछला मालिक, वाहन को रिमोट से कंट्रोल न कर पाए. उदाहरण के लिए, नए मालिक से कहा जा सकता है कि वह:
फ़ैक्ट्री रीसेट करें. इससे यह पक्का होता है कि क्लाइंट आईडी फिर से जनरेट हो गया है. इस चरण के बाद, पुराना मालिक अब भी वाहन को चालू कर सकता है. हालांकि, वह अब रिमोट से कोई काम नहीं कर पाएगा.
रिमोट टास्क क्लाइंट ऐप्लिकेशन खोलें. इसके बाद, क्लाइंट को अनरजिस्टर करें प्रोसेस को पूरा करके, वाहन को पिछले मालिक के खाते से अनलिंक करें. नया मालिक, वाहन को अपने खाते से लिंक करने के लिए, क्लाइंट के तौर पर रजिस्टर करने की प्रोसेस पूरी कर सकता है. इससे, पहले से लिंक किया गया खाता बदल जाएगा.
नया मालिक, क्लाइंट रजिस्टर करें प्रोसेस का इस्तेमाल करके, वाहन को अपने खाते से लिंक कर सकता है. साथ ही, पहले से लिंक किए गए खाते को बदल सकता है.
रिमोट टास्क क्लाइंट की जांच करना
हम रिमोट टास्क क्लाइंट की जांच करने के लिए, रिमोट ऐक्सेस एचएएल default डायरेक्ट्री का रेफ़रंस देते हैं. एचएएल में फ़र्ज़ी रिमोट टास्क इंजेक्ट करने के लिए, यहां दी गई debug
कमांड का इस्तेमाल किया जा सकता है. अगर आपने सही क्लाइंट आईडी दिया है, तो इसे आपके रिमोट टास्क क्लाइंट को फ़ॉरवर्ड कर दिया जाता है. रजिस्ट्रेशन की जानकारी को रिमोट टास्क क्लाइंट में लॉग करके, क्लाइंट आईडी पाया जा सकता है.
adb root && adb shell dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --inject-task [clientID] [taskData]