簡體   English   中英

Android 5.0(和其他設備)上的設備所有者使用root設備,通過NFC設備配置

[英]Device Owner on Android 5.0 (and others) whitout rooted devices, device provisioning by NFC

我需要知道如何在Android 5.0,4.4和4.3(?)中將我的應用程序設置為設備所有者。 我已經成功地嘗試了root設備的方法( 在那里描述 )。 我看到它在android 5.0和4.4.2模擬器以及CyanoGen AOSP 4.4.4(所有有根設備)中都很有效。 但是我必須在其他非root設備上嘗試這個,在Android 5.0 Developer API中你可以讀到這個

“要部署和激活設備所有者,您必須在設備處於未設置狀態時執行從編程應用程序到設備的NFC數據傳輸。”

但我不明白這意味着什么,或者更好,我要做什么。 有人可以幫助我,還是解釋我要做的一步?

PS。 我知道NFC是什么以及它是如何工作的但是我無法理解如何使用這個問題。

創建NFC觸發器應用程序並將其安裝在具有NFC的設備(除了您要將應用程序設置為設備所有者的設備之外)上。

以下是NFC觸發器的代碼

public class MainActivity extends Activity implements CreateNdefMessageCallback {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
        nfcAdapter.setNdefPushMessageCallback(this, this);
    }

    @Override
    public NdefMessage createNdefMessage(NfcEvent event) {
        try {
            Properties p = new Properties();

            p.setProperty(
                    DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,
                    "apk package name");
            p.setProperty(
                    DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION,
                    "app download url");
            p.setProperty(
                    DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM,
                    "apk checksum");
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            OutputStream out = new ObjectOutputStream(bos);
            p.store(out, "");
            final byte[] bytes = bos.toByteArray();

            NdefMessage msg = new NdefMessage(NdefRecord.createMime(
                    DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, bytes));
            return msg;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

對於校驗和運行以下命令

cat your_device_owner_app_name.apk | openssl dgst -binary -sha1 | openssl base64 | tr'+ /'' - _'| tr -d'='

  • 將生成的校驗和粘貼到NFC觸發器代碼中。
  • 在設備上編譯並運行NFC觸發器應用程序。

現在上傳你想要在google drive或dropbox上作為設備所有者制作的應用程序apk。

使用新設備或出廠重置要將應用程序設置為設備所有者的設備。

重新啟動設備,在第一個屏幕上為您的設備帶來NFC觸發應用程序和觸摸光束傳輸。

您的應用程序將被下載,並將作為設備所有者安裝。

如果需要,還可以使用adb設置設備所有者,如下所述: http//sdgsystems.com/blog/implementing-kiosk-mode-android-part-3-android-lollipop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM