MCPcopy Create free account
hub / github.com/CloverHackyColor/CloverBootloader / AddIMEI

Function AddIMEI

rEFIt_UEFI/Platform/FixBiosDsdt.cpp:3508–3592  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3506}
3507
3508UINT32 AddIMEI (UINT8 *dsdt, UINT32 len)
3509{
3510 UINT32 i, k = 0;
3511 UINT32 PCIADR, PCISIZE = 0;
3512 INT32 sizeoffset;
3513 AML_CHUNK *root;
3514 AML_CHUNK *device;
3515 AML_CHUNK *met, *met2;
3516 AML_CHUNK *pack;
3517 CHAR8 *imei;
3518 UINT32 FakeID;
3519 UINT32 FakeVen;
3520
3521 if (gSettings.FakeIMEI) {
3522 FakeID = gSettings.FakeIMEI >> 16;
3523 FakeVen = gSettings.FakeIMEI & 0xFFFF;
3524 }
3525
3526 PCIADR = GetPciDevice(dsdt, len);
3527 if (PCIADR) {
3528 PCISIZE = get_size(dsdt, PCIADR);
3529 }
3530 if (!PCISIZE) {
3531// DBG("wrong PCI0 address, patch IMEI will not be applied\n");
3532 return len;
3533 }
3534 // Find Device IMEI
3535 if (IMEIADR1) {
3536 for (i=0x20; len >= 10 && i < len - 10; i++) {
3537 if (CmpAdr(dsdt, i, IMEIADR1)) {
3538 k = devFind(dsdt, i);
3539 if (k) {
3540 MsgLog("device (IMEI) found at %X, don't add!\n", k);
3541 // break;
3542 return len;
3543 }
3544 }
3545 }
3546 }
3547 //Find Device IMEI by name
3548 for (i=0x20; len >= 10 && i < len - 10; i++) {
3549 k = CmpDev(dsdt, i, "IMEI");
3550 if (k != 0) {
3551 MsgLog("device name (IMEI) found at %X, don't add!\n", k);
3552 return len;
3553 }
3554 }
3555
3556 MsgLog("Start Add IMEI\n");
3557 root = aml_create_node(NULL);
3558 device = aml_add_device(root, "IMEI");
3559 aml_add_name(device, "_ADR");
3560 aml_add_dword(device, IMEIADR1);
3561 // add Method(_DSM,4,NotSerialized)
3562 if (gSettings.FakeIMEI) {
3563 met = aml_add_method(device, "_DSM", 4);
3564 met2 = aml_add_store(met);
3565 pack = aml_add_package(met2);

Callers 1

FixBiosDsdtFunction · 0.85

Calls 15

GetPciDeviceFunction · 0.85
get_sizeFunction · 0.85
CmpAdrFunction · 0.85
devFindFunction · 0.85
CmpDevFunction · 0.85
aml_create_nodeFunction · 0.85
aml_add_deviceFunction · 0.85
aml_add_nameFunction · 0.85
aml_add_dwordFunction · 0.85
aml_add_methodFunction · 0.85
aml_add_storeFunction · 0.85
aml_add_packageFunction · 0.85

Tested by

no test coverage detected