Getting device information using cordova !


The cordova device plugin , can be used to get the hardware and software information , for a mobile device .

Information that can be gotten using the device plugin

The plugin adds a global device object , which can be accessed when the deviceready event is fired . The properties attached to the device object , are :

device.cordova : The version of cordova running on the phone.

device.version : The device manufacturer .

device.model : The name of the device or of the model .

device.platform : The name of the operating system .

device.version : The version of the operating system .

device.isVirtual : True of false , if device is running or not in an emulator .

device.uuid : The device universally unique identifier . For android cordova returns the ANDROID_ID . For devices having an android version less than 8 , this is a 64 bit random number , generated on the device first boot . For android devices having android version equal to 8 or higher , this is a 64 bit number unique to each combination of signing key , user , and device . The ANDROID_ID may be changed when a device is reset , and for android version 8 or higher, it might also be changed when an apk signing key changes .
For iOS , this is a vendor generated unique identifier , for all the vendor applications , when all the vendor applications are deleted , the vendor unique identifier is regenerated .

device.serial The device hardware serial number , this is only available for android .

A demo application

Create an application using these commands :

$ cordova create demo-device com.twiserandom.mobileapps.demoDevice  "Demo Device Plugin"
$ cd demo-device
$ cordova platform add ios
$ cordova platform add android
$ cordova plugin add cordova-plugin-device

Edit www/index.html to look like this :

<!DOCTYPE html>

        <meta charset="utf-8">
        <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
        <meta name="format-detection" content="telephone=no">
        <meta name="msapplication-tap-highlight" content="no">
        <meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
        <meta name="color-scheme" content="light dark">
        <title>Demo Device Plugin</title>
        <div class="app">
            <div id="console">
                <h1>Device plugin</h1>
        <script src="cordova.js"></script>
        <script src="js/index.js"></script>

Edit www/js/index.js to look like this :

document.addEventListener('deviceready', onDeviceReady, false);

function onDeviceReady() {
    let console = document.getElementById("console");
    function logToConsole(key , value){
        console.innerHTML += `<p>${key} : ${value}</p>`;
        console.innerHTML += "<hr/>"; }
    logToConsole("Cordova Version" , device.cordova );
    logToConsole("Device manufacturer" , device.manufacturer );
    logToConsole("Device model" , device.model );
    logToConsole("Device platform" , device.platform );
    logToConsole("Device version" , device.version );
    logToConsole("Device isVirtual" , device.isVirtual );
    logToConsole("Device uuid" , device.uuid );
    logToConsole("Device serial" , device.serial ); }

Run the application on an emulator like so :

$ cordova emulate android 
# For android 

$ cordova emulate ios
# For iOS 

Can such plugins be used to model user information ?

The device model and manufacturer can be used to know what device the user is buying . Research is , and can be made , on who buy which device , the category of peoples that this person belongs to , how much money this person is making , his age , and other demographics , a reverse analysis .

The device operating system , and its version , can be used to assess if the device can be hacked , or if there are security vulnerabilities found on this device . It can also be used to get demographic information , such as , what kind of people buy android or iOS , or use chrome or firefox … a user modeling , to push services maybe .

The uuid and device serial are of interest to track the liking of the user , what he is doing , and to get information from more than one source .