मौजूदा डिवाइसों को AMAPI पर माइग्रेट करें

आपके कस्टम डीपीसी से पहले से मैनेज किए जा रहे डिवाइसों को Android डिवाइस नीति (एडीपी) पर माइग्रेट किया जा सकता है. साथ ही, Android मैनेजमेंट एपीआई का फ़ायदा भी लिया जा सकता है.

ज़रूरी शर्तें

  • डिवाइस को पहले से ही आपके ईएमएम ने कस्टम डीपीसी की मदद से मैनेज किया जा रहा है.
  • आपका कस्टम डीपीसी, AMAPI SDK के साथ इंटिग्रेट हो.
  • डिवाइस को Google Play EMM API के साथ रजिस्टर किया गया हो.
  • डिवाइस, कारोबार के लिए Google Play खाते वाले एंटरप्राइज़ से जुड़ा हो.
  • डिवाइस में Android 9 या इसके बाद का वर्शन हो.
  • कंपनी के मालिकाना हक वाले डिवाइसों पर वर्क प्रोफ़ाइल इस्तेमाल करने के लिए, डिवाइस में Android 11 या इसके बाद का वर्शन होना चाहिए.

अपने कस्टम डीपीसी में AMAPI SDK टूल के साथ इंटिग्रेट करना

माइग्रेशन की प्रोसेस के लिए, कस्टम डीपीसी ऐप्लिकेशन को AMAPI SDK इंटिग्रेट करना ज़रूरी है. इस लाइब्रेरी के बारे में ज़्यादा जानकारी और इसे अपने ऐप्लिकेशन में जोड़ने का तरीका जानने के लिए, AMAPI SDK टूल इंटिग्रेशन गाइड देखें.

किसी डिवाइस को माइग्रेट करने का तरीका

  1. AMAPI पर माइग्रेट करने के बाद, डिवाइस पर इस्तेमाल की जाने वाली नीति सेट अप करें. बेहतर उपयोगकर्ता अनुभव के लिए, यह नीति, डिवाइस पर पहले से लागू डीपीसी की नीति के मुताबिक होनी चाहिए. AMAPI में मौजूद नीति, उसी एंटरप्राइज़ से जुड़ी होनी चाहिए जिससे डिवाइस पहले से ही Play EMM API में जुड़ा है. ध्यान दें कि किसी एंटरप्राइज़ का नाम, AMAPI और Play EMM API, दोनों में एक ही होता है.
  2. enterprises.migrationTokens.create को कॉल करके, डिवाइस के लिए माइग्रेशन टोकन बनाएं.
  3. इस माइग्रेशन टोकन का value अपने कस्टम डीपीसी पर भेजें.
  4. Play EMM API का इस्तेमाल करके, पक्का करें कि डिवाइस पर Android Device Policy इंस्टॉल हो.
  5. DpcMigrationClient बनाने के लिए, DpcMigrationClientFactory का इस्तेमाल करें
  6. DpcMigrationClient पर, migrateDeviceManagementToAndroidManagementApi वाला तरीका कॉल करें. इससे माइग्रेशन पूरा हो जाता है.
  7. deviceState, ACTIVE में बदल जाता है. साथ ही, आपको Pub/Sub चैनल से STATUS_REPORT मैसेज मिलेगा.

माइग्रेशन पूरा होने के बाद, कॉल करने वाले ऐप्लिकेशन के पास डिवाइस के मालिक या प्रोफ़ाइल के मालिक के विशेषाधिकार नहीं रहते. ऐसा इसलिए होता है, क्योंकि ये विशेषाधिकार Android Device Policy में ट्रांसफ़र कर दिए जाते हैं. इस प्रोसेस को नीचे दिए गए क्रम-चार्ट से दिखाया जा सकता है:

डीपीसी माइग्रेशन का सीक्वेंस डायग्राम

ध्यान दें: माइग्रेशन की प्रोसेस शुरू करने के लिए, डिवाइस का इंटरनेट से कनेक्ट होना ज़रूरी है. इस प्रोसेस को इस तरह से डिज़ाइन किया गया है कि डेटा को दूसरी जगह भेजने के दौरान, नेटवर्क कनेक्शन टूटने पर भी काम जारी रहे. इससे, डिवाइस के मालिक या प्रोफ़ाइल के मालिक के अधिकारों को डीपीसी से Android डिवाइस नीति में ट्रांसफ़र करने से पहले, नेटवर्क कनेक्टिविटी की ज़रूरत वाले मुख्य काम पूरे हो जाते हैं.

माइग्रेशन टोकन

EMM सर्वर, माइग्रेशन टोकन का अनुरोध करता है, ताकि किसी कस्टम डीपीसी से मैनेज किए जा रहे डिवाइस को माइग्रेट करने के इरादे का संकेत दिया जा सके. माइग्रेशन टोकन का इस्तेमाल, माइग्रेशन पूरा होने या उसकी समयसीमा खत्म होने तक किया जा सकता है.

कस्टम डीपीसी इंटिग्रेशन

सबसे पहले, आपको DpcMigrationRequest बनाना होगा. इसके लिए, टोकन और ज़रूरत पड़ने पर, कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क की सूची को उसके बिल्डर को पास करना होगा:

// Create a DpcMigrationRequest
DpcMigrationRequest request =
        DpcMigrationRequest.builder()
            .setMigrationToken(token)
            .build();

इसके बाद, DpcMigrationClient का इस्तेमाल करके, migrateDeviceManagementToAndroidManagementApi की मदद से माइग्रेशन की प्रोसेस शुरू की जा सकती है:

// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
  // Use helper function to retrieve Admin component name
  var adminComponentName = getAdminComponent(context);

  ListenableFuture<DpcMigrationAttempt> futureAttempt =
          dpcMigrationClient.migrateDeviceManagementToAndroidManagementApi(
              new ComponentName(context, DpcMigrationNotificationReceiver.class),
              adminComponentName,
              request);
  // handle futureAttempt
} catch (RuntimeException e) {
  // send failure feedback: "Error: " + e
}

NotificationReceiverService सेट अप करना और माइग्रेशन को ट्रैक करना

अपने कस्टम डीपीसी में NotificationReceiverService को लागू करें.

माइग्रेशन की प्रोसेस को डिवाइस पर DpcMigrationAttempt की मदद से ट्रैक किया जाता है.

migrateDeviceManagementToAndroidManagementApi से मिले डेटा का सीधे तौर पर इस्तेमाल किया जा सकता है. इसके अलावा, माइग्रेशन की कोशिशों की जानकारी पाने और उन्हें सूची में शामिल करने के लिए, getMigrationAttempt और listMigrationAttempts तरीकों का इस्तेमाल किया जा सकता है.

// Passing an empty name, we retrieve the last attempt
var request = GetDpcMigrationAttemptRequest.builder().build();

var attempt = client.getMigrationAttempt(request);

DpcMigrationAttempt के स्टेटस से जुड़े अपडेट सुनने के लिए, NotificationReceiverService का इस्तेमाल करके DpcMigrationListener सेट अप किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

// DpcMigrationNotificationReceiver for callback handling
public class DpcMigrationNotificationReceiver extends NotificationReceiverService
    implements DpcMigrationListener {

  @Override
  protected DpcMigrationListener getDpcMigrationListener() {
    return this;
  }

  @Override
  public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
    // send success feedback
  }
}

वाई-फ़ाई नेटवर्क मैनेज करना

अगर कस्टम डीपीसी से मैनेज किए जा रहे वाई-फ़ाई नेटवर्क हैं, तो AMAPI ONC नीति, इन नेटवर्क के कॉन्फ़िगरेशन से मेल खानी चाहिए, ताकि AMAPI उन्हें आसानी से मैनेज कर सके. मैनेजमेंट मोड के हिसाब से, वाई-फ़ाई मैनेजमेंट के साथ डीपीसी माइग्रेशन का इंटरैक्शन अलग-अलग होता है.

कंपनी के मालिकाना हक वाले डिवाइसों पर, पूरी तरह से मैनेज किए जाने वाले डिवाइस और वर्क प्रोफ़ाइल

माइग्रेशन के दौरान, Android डिवाइस नीति यह मानती है कि नीति में कॉन्फ़िगर किया गया कोई भी वाई-फ़ाई नेटवर्क, डिवाइस पर कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क से मेल खाता है. इसके लिए, वाई-फ़ाई नेटवर्क का SSID और सिक्योरिटी टाइप एक जैसा होना चाहिए. इसलिए, कस्टम डीपीसी से कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क, माइग्रेशन के बाद तब तक नहीं बदलते, जब तक कि नेटवर्क से जुड़ी ओएनसी नीति में कोई बदलाव नहीं होता. हालांकि, माइग्रेशन के बाद कस्टम डीपीसी को अनइंस्टॉल करने पर, कस्टम डीपीसी से कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क अपने-आप हट जाते हैं. Android डिवाइस नीति, नीति को लागू करती रहेगी. अगर इनमें से किसी नेटवर्क को नीति में कॉन्फ़िगर किया गया है, तो नीति में कॉन्फ़िगर किए गए नेटवर्क को पहले की तरह जोड़ दिया जाएगा.

निजी डिवाइस पर वर्क प्रोफ़ाइल

तकनीकी वजहों से, Android डिवाइस नीति के तहत इन वाई-फ़ाई नेटवर्क को मैनेज करने के लिए, कस्टम डीपीसी को कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क को हटाना होगा. AMAPI SDK टूल, इसकी देखभाल करता है और कस्टम डीपीसी से Android डिवाइस नीति पर मालिकाना हक ट्रांसफ़र करने से पहले, ऐसे वाई-फ़ाई नेटवर्क हटा देता है. हालांकि, इसके लिए ज़रूरी है कि कस्टम डीपीसी, DpcMigrationRequest में इन नेटवर्क की जानकारी पास करे. माइग्रेशन के बाद, नीति में कॉन्फ़िगर किए गए नेटवर्क सामान्य रूप से जोड़ दिए जाएंगे. इसलिए, हमारा सुझाव है कि कस्टम डीपीसी की मदद से जोड़े गए नेटवर्क को भी नीति में कॉन्फ़िगर किया जाना चाहिए.

इन बातों का ध्यान रखें:

  • अगर चालू नेटवर्क, कस्टम डीपीसी से कॉन्फ़िगर किया गया वाई-फ़ाई नेटवर्क है, तो माइग्रेशन के दौरान डिवाइस कुछ समय के लिए ऑफ़लाइन हो सकता है.
  • DpcMigrationRequest में सिर्फ़ वे वाई-फ़ाई नेटवर्क पास किए जाने चाहिए जिन्हें कस्टम डीपीसी से कॉन्फ़िगर किया गया है.ऐसा न करने पर, अगर AMAPI SDK टूल किसी नेटवर्क को हटा नहीं पाता है, तो माइग्रेशन पूरा नहीं हो पाता. उदाहरण के लिए, उपयोगकर्ता का जोड़ा गया वाई-फ़ाई नेटवर्क.
  • वाई-फ़ाई नेटवर्क को DpcMigrationRequest में सिर्फ़ तब पास किया जाना चाहिए, जब कस्टम डीपीसी, निजी तौर पर मालिकाना हक वाले डिवाइस पर प्रोफ़ाइल का मालिक हो. ऐसा न करने पर, माइग्रेशन पूरा नहीं हो पाएगा.
  • तकनीकी वजहों से, Android 12 एक असाधारण मामला है. इसमें DpcMigrationRequest में पास किए गए नेटवर्क को अनदेखा किया जाता है. साथ ही, कस्टम डीपीसी से कॉन्फ़िगर किए गए सभी वाई-फ़ाई नेटवर्क अपने-आप हट जाते हैं. इसके अलावा, यह ज़रूरी है कि कस्टम डीपीसी के पास, निजी डिवाइसों पर वर्क प्रोफ़ाइल के लिए, Android 12 पर ACCESS_WIFI_STATE अनुमति हो. ऐसा न होने पर, माइग्रेशन नहीं हो पाएगा.

चेतावनियां

इस सुविधा से जुड़ी कुछ बातें यहां बताई गई हैं.

एंटरप्राइज़ का आईडी

Android 12 और उसके बाद के वर्शन पर वर्क प्रोफ़ाइलों के लिए, एंटरप्राइज़ के हिसाब से आईडी, जो DevicePolicyManager.getEnrollmentSpecificId से ऐक्सेस किया जा सकता है, माइग्रेशन के समय नहीं बदलता. हालांकि, अगर डिवाइस पर Android Device Policy से मैनेज की जाने वाली वर्क प्रोफ़ाइल फिर से बनाई जाती है, तो एंटरप्राइज़ के लिए खास तौर पर बनाया गया आईडी बदल जाएगा. उदाहरण के लिए, पिछली वर्क प्रोफ़ाइल मिटाने या डिवाइस को फ़ैक्ट्री सेटिंग पर रीसेट करने के बाद.

पूरी तरह से मैनेज किए जा रहे डिवाइसों पर वर्क प्रोफ़ाइलें

यह सुविधा, पूरी तरह मैनेज किए जा रहे उन डिवाइसों पर काम नहीं करती जिनमें Android 9 या 10 पर काम करने वाली वर्क प्रोफ़ाइल है. इन डिवाइसों को माइग्रेट करने की कोशिश नहीं की जानी चाहिए. भले ही, कोई गड़बड़ी दिखे, लेकिन ऐसे डिवाइसों पर डीपीसी माइग्रेशन की सुविधा काम नहीं करती.