Skip to content

Commit 67aa7a5

Browse files
committed
set chip-epoch and security-domain in device tree by replacing two unused variables, support reading device trees outside an im4p
1 parent 41b4813 commit 67aa7a5

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

modifydevicetree.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ def writenode(nodebytes, nodeoffset, nodedepth):
1818
ptr += writenode(nodebytes, nodeoffset + ptr, nodedepth + 1)
1919
return ptr
2020

21+
def padStringNull(instr, lenstr=32):
22+
return instr.encode("ascii") + b"\x00"*(lenstr - len(instr))
23+
2124
def writeproperty(nodebytes, nodeoffset, nodedepth):
2225
kPropNameLength = 32
2326
propname = nodebytes[nodeoffset:nodeoffset + kPropNameLength].rstrip(b"\x00").decode("utf-8")
@@ -32,6 +35,14 @@ def writeproperty(nodebytes, nodeoffset, nodedepth):
3235
if propname == "random-seed":
3336
print("setting random seed")
3437
w32(nodebytes, nodeoffset + ptr, 0xdeadf00d)
38+
if propname == "dram-vendor-id":
39+
print("Removing dram-vendor-id")
40+
nodebytes[nodeoffset:nodeoffset + kPropNameLength] = padStringNull("chip-epoch")
41+
nodebytes[nodeoffset + ptr:nodeoffset + ptr + proplen] = b"\x00" * proplen
42+
if propname == "display-corner-radius":
43+
print("Removing display-corner-radius")
44+
nodebytes[nodeoffset:nodeoffset + kPropNameLength] = padStringNull("security-domain")
45+
nodebytes[nodeoffset + ptr:nodeoffset + ptr + proplen] = b"\x00" * proplen
3546
ptr += proplen
3647
ptr = (ptr + 0x3) & ~0x3 #round up to nearest 4
3748
return ptr

readdevicetree.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def writeproperty(nodebytes, nodeoffset, nodedepth):
5050
def printone(filename):
5151
with open(filename, "rb") as infile:
5252
indata = infile.read()
53-
devicetreebytes = devicetreefromim4p(indata)
53+
devicetreebytes = devicetreefromim4p(indata) if indata[0x7:0x7+4] == b"IM4P" else indata
5454
writenode(devicetreebytes, 0, 0)
5555

5656
if __name__ == "__main__":

0 commit comments

Comments
 (0)