internal void StartLoadDeviceInfo() { lock (LockDeviceInfo) { if (!DeviceInfoLoaded) { try { PhoneInfo Info = CurrentModel.ReadPhoneInfo(); if (Info.FlashAppProtocolVersionMajor < 2) { UefiSecurityStatusResponse SecurityStatus = CurrentModel.ReadSecurityStatus(); if (SecurityStatus != null) { EffectiveBootloaderSecurityStatus = SecurityStatus.SecureFfuEfuseStatus && !SecurityStatus.AuthenticationStatus && !SecurityStatus.RdcStatus; } } else { EffectiveBootloaderSecurityStatus = Info.UefiSecureBootEnabled; } LogFile.Log("Effective Bootloader Security Status: " + EffectiveBootloaderSecurityStatus.ToString()); } catch { LogFile.Log("Reading status from Flash interface was aborted."); } DeviceInfoLoaded = true; } } }
private void StartLoadDeviceInfo() { lock (LockDeviceInfo) { if (!DeviceInfoLoaded) { try { //byte[] Imsi = CurrentModel.ExecuteJsonMethodAsBytes("ReadImsi", "Imsi"); // 9 bytes: 08 29 40 40 ... //string BatteryLevel = CurrentModel.ExecuteJsonMethodAsString("ReadBatteryLevel", "BatteryLevel"); //string SystemAsicVersion = CurrentModel.ExecuteJsonMethodAsString("ReadSystemAsicVersion", "SystemAsicVersion"); // 8960 -> Chip SOC version //string OperatorName = CurrentModel.ExecuteJsonMethodAsString("ReadOperatorName", "OperatorName"); // 000-DK //string ManufacturerModelName = CurrentModel.ExecuteJsonMethodAsString("ReadManufacturerModelName", "ManufacturerModelName"); // RM-821_eu_denmark_251 //string AkVersion = CurrentModel.ExecuteJsonMethodAsString("ReadAkVersion", "AkVersion"); // 9200.10521 //string BspVersion = CurrentModel.ExecuteJsonMethodAsString("ReadBspVersion", "BspVersion"); // 3051.40000 //string ProductCode = CurrentModel.ExecuteJsonMethodAsString("ReadProductCode", "ProductCode"); // 059Q9D7 //string SecurityMode = CurrentModel.ExecuteJsonMethodAsString("GetSecurityMode", "SecMode"); // Restricted //string SerialNumber = CurrentModel.ExecuteJsonMethodAsString("ReadSerialNumber", "SerialNumber"); // 356355051883955 = IMEI //string SwVersion = CurrentModel.ExecuteJsonMethodAsString("ReadSwVersion", "SwVersion"); // 3051.40000.1349.0007 //string ModuleCode = CurrentModel.ExecuteJsonMethodAsString("ReadModuleCode", "ModuleCode"); // 0205137 //byte[] PublicId = CurrentModel.ExecuteJsonMethodAsBytes("ReadPublicId", "PublicId"); // 0x14 bytes: a5 e5 ... //string Psn = CurrentModel.ExecuteJsonMethodAsString("ReadPsn", "Psn"); // CEP737370 //string HwVersion = CurrentModel.ExecuteJsonMethodAsString("ReadHwVersion", "HWVersion"); // 6504 = 6.5.0.4 //byte[] BtId = CurrentModel.ExecuteJsonMethodAsBytes("ReadBtId", "BtId"); // 6 bytes: bc c6 ... //byte[] WlanMacAddress1 = CurrentModel.ExecuteJsonMethodAsBytes("ReadWlanMacAddress", "WlanMacAddress1"); // 6 bytes //byte[] WlanMacAddress2 = CurrentModel.ExecuteJsonMethodAsBytes("ReadWlanMacAddress", "WlanMacAddress2"); // same //byte[] WlanMacAddress3 = CurrentModel.ExecuteJsonMethodAsBytes("ReadWlanMacAddress", "WlanMacAddress3"); // same //bool SimlockActive = CurrentModel.ExecuteJsonMethodAsBoolean("ReadSimlockActive", "SimLockActive"); // false //string ServiceTag = CurrentModel.ExecuteJsonMethodAsString("ReadServiceTag", "ServiceTag"); // error //byte[] RfChipsetVersion = CurrentModel.ExecuteJsonMethodAsBytes("ReadRfChipsetVersion", "RfChipsetVersion"); // error //byte[] Meid = CurrentModel.ExecuteJsonMethodAsBytes("ReadMeid", "Meid"); // error //string Test = CurrentModel.ExecuteJsonMethodAsString("ReadManufacturingData", ""); -> This method is only possible in Label-mode. UefiSecurityStatusResponse SecurityStatus = CurrentModel.ReadSecurityStatus(); UInt32?FlagsResult = CurrentModel.ReadSecurityFlags(); UInt32 SecurityFlags = 0; if (FlagsResult != null) { SecurityFlags = (UInt32)CurrentModel.ReadSecurityFlags(); LogFile.Log("Security flags: 0x" + SecurityFlags.ToString("X8")); } else { LogFile.Log("Security flags could not be read"); } PlatformName = CurrentModel.ReadStringParam("DPI"); LogFile.Log("Platform Name: " + PlatformName); // Some phones do not support the Terminal interface! (928 verizon) // Instead read param RRKH to get the RKH. PublicID = null; byte[] RawPublicID = CurrentModel.ReadParam("PID"); if ((RawPublicID != null) && (RawPublicID.Length > 4)) { PublicID = new byte[RawPublicID.Length - 4]; Array.Copy(RawPublicID, 4, PublicID, 0, RawPublicID.Length - 4); LogFile.Log("Public ID: " + Converter.ConvertHexToString(PublicID, " ")); } RootKeyHash = CurrentModel.ReadParam("RRKH"); if (RootKeyHash != null) { LogFile.Log("Root Key Hash: " + Converter.ConvertHexToString(RootKeyHash, " ")); } if (SecurityStatus != null) { PlatformSecureBootStatus = SecurityStatus.PlatformSecureBootStatus; LogFile.Log("Platform Secure Boot Status: " + PlatformSecureBootStatus.ToString()); UefiSecureBootStatus = SecurityStatus.UefiSecureBootStatus; LogFile.Log("Uefi Secure Boot Status: " + UefiSecureBootStatus.ToString()); EffectiveSecureBootStatus = SecurityStatus.PlatformSecureBootStatus && SecurityStatus.UefiSecureBootStatus; LogFile.Log("Effective Secure Boot Status: " + EffectiveSecureBootStatus.ToString()); BootloaderSecurityQfuseStatus = SecurityStatus.SecureFfuEfuseStatus; LogFile.Log("Bootloader Security Qfuse Status: " + BootloaderSecurityQfuseStatus.ToString()); BootloaderSecurityAuthenticationStatus = SecurityStatus.AuthenticationStatus; LogFile.Log("Bootloader Security Authentication Status: " + BootloaderSecurityAuthenticationStatus.ToString()); BootloaderSecurityRdcStatus = SecurityStatus.RdcStatus; LogFile.Log("Bootloader Security Rdc Status: " + BootloaderSecurityRdcStatus.ToString()); EffectiveBootloaderSecurityStatus = SecurityStatus.SecureFfuEfuseStatus && !SecurityStatus.AuthenticationStatus && !SecurityStatus.RdcStatus; LogFile.Log("Effective Bootloader Security Status: " + EffectiveBootloaderSecurityStatus.ToString()); NativeDebugStatus = !SecurityStatus.DebugStatus; LogFile.Log("Native Debug Status: " + NativeDebugStatus.ToString()); } byte[] CID = CurrentModel.ReadParam("CID"); byte[] EMS = CurrentModel.ReadParam("EMS"); UInt16 MID = (UInt16)(((UInt16)CID[0] << 8) + CID[1]); UInt64 MemSize = (UInt64)(((UInt32)EMS[0] << 24) + ((UInt32)EMS[1] << 16) + ((UInt32)EMS[2] << 8) + EMS[3]) * 0x200; double MemSizeDouble = (double)MemSize / 1024 / 1024 / 1024; MemSizeDouble = (double)(int)(MemSizeDouble * 10) / 10; string Manufacturer = null; switch (MID) { case 0x0002: case 0x0045: Manufacturer = "SanDisk"; break; case 0x0011: Manufacturer = "Toshiba"; break; case 0x0013: Manufacturer = "Micron"; break; case 0x0015: Manufacturer = "Samsung"; break; case 0x0090: Manufacturer = "Hynix"; break; case 0x0070: Manufacturer = "Kingston"; break; case 0x00EC: Manufacturer = "GigaDevice"; break; } if (Manufacturer == null) { eMMC = MemSizeDouble.ToString() + " GB"; } else { eMMC = Manufacturer + " " + MemSizeDouble.ToString() + " GB"; } SamsungWarningVisible = (MID == 0x0015); PhoneInfo Info = CurrentModel.ReadPhoneInfo(true); if (Info.FlashAppProtocolVersionMajor < 2) { BootloaderDescription = "Lumia Bootloader Spec A"; } else { BootloaderDescription = "Lumia Bootloader Spec B"; } LogFile.Log("Bootloader: " + BootloaderDescription); ProductCode = Info.ProductCode; LogFile.Log("ProductCode: " + ProductCode); ProductType = Info.Type; LogFile.Log("ProductType: " + ProductType); } catch { LogFile.Log("Reading status from Flash interface was aborted."); } DeviceInfoLoaded = true; } } }