mirror of
https://github.com/Ap0dexMe0/unixtract.git
synced 2026-07-16 05:04:22 +02:00
fix Mediatek "iMtK" header handling
This commit is contained in:
+2
-10
@@ -122,16 +122,8 @@ pub fn extract_mtk_pkg(mut file: &File, output_folder: &str) -> Result<(), Box<d
|
|||||||
|
|
||||||
//strip iMtK thing
|
//strip iMtK thing
|
||||||
let extra_header_len = if &out_data[48..52] == b"iMtK" {
|
let extra_header_len = if &out_data[48..52] == b"iMtK" {
|
||||||
let imtk_len = u32::from_le_bytes(out_data[56..60].try_into().unwrap());
|
let imtk_len = u32::from_le_bytes(out_data[52..56].try_into().unwrap());
|
||||||
let imtk_content = common::string_from_bytes(&out_data[60..60 + imtk_len as usize]);
|
imtk_len + 8
|
||||||
println!("iMtK Info: {}", imtk_content);
|
|
||||||
|
|
||||||
if &out_data[60 + imtk_len as usize..(60 + imtk_len as usize) + 4] == b"iPAd" {
|
|
||||||
//println!("iPAd found!");
|
|
||||||
64
|
|
||||||
} else {
|
|
||||||
imtk_len + 12
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -43,16 +43,8 @@ pub fn extract_mtk_upgrade_loader(mut file: &File, output_folder: &str) -> Resul
|
|||||||
|
|
||||||
//strip iMtK thing
|
//strip iMtK thing
|
||||||
let extra_header_len = if &data[0..4] == b"iMtK" {
|
let extra_header_len = if &data[0..4] == b"iMtK" {
|
||||||
let imtk_len = u32::from_le_bytes(data[8..12].try_into().unwrap());
|
let imtk_len = u32::from_le_bytes(data[4..8].try_into().unwrap());
|
||||||
let imtk_content = common::string_from_bytes(&data[12..12 + imtk_len as usize]);
|
imtk_len + 8
|
||||||
println!("iMtK Info: {}", imtk_content);
|
|
||||||
|
|
||||||
if &data[12 + imtk_len as usize..(12 + imtk_len as usize) + 4] == b"iPAd" {
|
|
||||||
//println!("iPAd found!");
|
|
||||||
64
|
|
||||||
} else {
|
|
||||||
imtk_len + 12
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user