package fuzion24.device.vulnerability.util;
import android.os.Build;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* Created by fuzion24 on 9/21/15.
*/
public class DeviceInfo {
private final String kernelVersion;
private final String buildManufacturer;
private final String buildBrand;
private final String buildModel;
private final String buildRelease;
private final String buildSDK;
private final long buildDateUTC;
private final String buildFingerPrint;
private final String buildCpuABI;
private final String buildCpuABI2;
private final String[] supported32BitABIS;
private final String[] supported64BitABIS;
private final String[] supportedABIS;
private final String buildID;
private DeviceInfo(String kVer,
String bManufacturer,
String bBrand,
String bModel,
String bRelease,
String bSDK,
long bDateUTC,
String bFingerPrint,
String bID,
String bCPUABI,
String bCPUABI2,
String[] bCPU32List,
String[] bCPU64List,
String[] bABIS){
this.kernelVersion = kVer;
this.buildManufacturer = bManufacturer;
this.buildBrand = bBrand;
this.buildModel = bModel;
this.buildRelease = bRelease;
this.buildSDK = bSDK;
this.buildDateUTC = bDateUTC;
this.buildFingerPrint = bFingerPrint;
this.buildID = bID;
this.buildCpuABI = bCPUABI;
this.buildCpuABI2 = bCPUABI2;
this.supported32BitABIS = bCPU32List;
this.supported64BitABIS = bCPU64List;
this.supportedABIS = bABIS;
}
public static DeviceInfo getDeviceInfo() {
String kVer = readKernelVersion();
String bManufac = Build.MANUFACTURER;
String bBrand = Build.BRAND;
String bModel = Build.MODEL;
String bRelease = Build.VERSION.RELEASE;
String bSdk = Build.VERSION.SDK;
long bDateUTC = Build.TIME;
String bFingerPrint = Build.FINGERPRINT;
String bID = Build.ID;
String bCPUABI = Build.CPU_ABI;
String bCPUABI2 = Build.CPU_ABI2;
String[] bCPU32List = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? Build.SUPPORTED_32_BIT_ABIS : new String[]{};
String[] bCPU64List = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? Build.SUPPORTED_64_BIT_ABIS : new String[]{};
String[] bABIS = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? Build.SUPPORTED_ABIS : new String[]{};
return new DeviceInfo(kVer,
bManufac,
bBrand,
bModel,
bRelease,
bSdk,
bDateUTC,
bFingerPrint,
bID,
bCPUABI,
bCPUABI2,
bCPU32List,
bCPU64List,
bABIS
);
}
public static String readKernelVersion() {
return System.getProperty("os.version");
}
public String getKernelVersion() {
return kernelVersion;
}
public String getBuildManufacturer() {
return buildManufacturer;
}
public String getBuildBrand() {
return buildBrand;
}
public String getBuildModel() {
return buildModel;
}
public String getBuildRelease() {
return buildRelease;
}
public String getBuildSDK() {
return buildSDK;
}
public String getBuildFingerPrint() {
return buildFingerPrint;
}
public String getBuildID() {
return buildID;
}
public String getBuildCpuABI() {
return buildCpuABI;
}
public String getBuildCpuABI2() {
return buildCpuABI2;
}
public String[] getSupported32BitABIS() {
return supported32BitABIS;
}
public String[] getSupported64BitABIS() {
return supported64BitABIS;
}
public String[] getSupportedABIS() {
return supportedABIS;
}
public long getBuildDateUTC() {
return buildDateUTC;
}
}