Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
nativescript-dna-deviceinfo
Advanced tools
NativeScript plugin to acquire device info.
From the command prompt, go to your app's root folder and execute:
tns plugin add nativescript-dna-deviceinfo
This command automatically installs the necessary files, as well as stores nativescript-dna-deviceinfo as a dependency in your project's package.json file.
Various device related utility APIs are accessible from the DeviceInfo class. To import the class, use one of the following forms:
TypeScript:
import { DeviceInfo } from 'nativescript-dna-deviceinfo';
JavaScript:
const nativescript_dna_deviceinfo = require("nativescript-dna-deviceinfo");
const DeviceInfo = nativescript_dna_deviceinfo.DeviceInfo;
Returns total memory(RAM) size of a device in bytes.
DeviceInfo.totalMemory();
Returns free memory(RAM) size of a device in bytes.
DeviceInfo.freeMemory();
Returns total storage(internal) space of a device in bytes.
DeviceInfo.totalStorageSpace();
Returns free storage(internal) space of a device in bytes.
DeviceInfo.freeStorageSpace();
Returns a device ID.
DeviceInfo.deviceId();
Returns a device name.
DeviceInfo.deviceName();
Returns the locale of a device.
DeviceInfo.deviceLocale();
Returns the device country.
DeviceInfo.deviceCountry();
Returns the time zone of a device.
DeviceInfo.timezone();
Returns the user agent string of a device.
DeviceInfo.userAgent();
Returns an app name.
DeviceInfo.appName();
Returns an app version.
DeviceInfo.appVersion();
Returns an app bundle id.
DeviceInfo.bundleId();
Returns an app bundle number.
DeviceInfo.bundleNumber();
Returns a device manufacturer.
DeviceInfo.systemManufacturer();
Returns the charge level of a device battery.
DeviceInfo.batteryLevel();
Returns 'true' if a device is a tablet, otherwise 'false'.
DeviceInfo.isTablet();
Returns 'true' if a device configured to a 24-hour clock, otherwise 'false'.
DeviceInfo.is24Hour();
Returns 'true' if an app is running on an emulator, otherwise 'false'.
DeviceInfo.isEmulator();
Returns 'true' if a device is plugged in and charging, otherwise 'false'.
DeviceInfo.isBatteryCharging();
Returns a list of GSM network providers, carriers, of a device is equipped with.
DeviceInfo.cellularServiceProvider();
Besides other helpful information returned from the API, it can be used to know whether the device has a fast internet connection or not.
printDeviceInfo() {
console.log("Free memory: ", formatBytes(DeviceInfo.freeMemory()));
console.log("Total memory: ", formatBytes(DeviceInfo.totalMemory()));
console.log("Total storage space: ", formatBytes(DeviceInfo.totalStorageSpace()));
console.log("Free storage space: ",formatBytes(DeviceInfo.freeStorageSpace()));
console.log("Device id: ", DeviceInfo.deviceId());
console.log("Device name: ", DeviceInfo.deviceName());
console.log("Device locale: ", DeviceInfo.deviceLocale());
console.log("Device country: ", DeviceInfo.deviceCountry());
console.log("Device timezone: ", DeviceInfo.timezone());
console.log("Device user agent: ", DeviceInfo.userAgent());
console.log("App name: ", DeviceInfo.appName());
console.log("App version: ", DeviceInfo.appVersion());
console.log("App bundle id: ", DeviceInfo.bundleId());
console.log("App bundle number: ", DeviceInfo.bundleNumber());
console.log("System manufacturer: ", DeviceInfo.systemManufacturer());
console.log("Battery level: ", Math.round(DeviceInfo.batteryLevel()));
console.log("Is tablet: ", DeviceInfo.isTablet());
console.log("Is 24 hour: ", DeviceInfo.is24Hour());
console.log("Is emulator: ", DeviceInfo.isEmulator());
console.log("Is battery charing: ", DeviceInfo.isBatteryCharging());
}
formatBytes(bytes, decimals) {
if (bytes === 0) return '0 GB'
if (isNaN(parseInt(bytes))) return bytes
if (typeof bytes === 'string') bytes = parseInt(bytes)
if (bytes === 0) return '0';
const k = 1000;
const dm = decimals + 1 || 3;
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;
}
MIT license (see LICENSE file)
FAQs
NativeScript plugin to acquire device information.
The npm package nativescript-dna-deviceinfo receives a total of 586 weekly downloads. As such, nativescript-dna-deviceinfo popularity was classified as not popular.
We found that nativescript-dna-deviceinfo demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.