mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-08-23 09:37:51 +00:00
Merge headers
This commit is contained in:
@@ -5,8 +5,6 @@
|
|||||||
#include <bitset>
|
#include <bitset>
|
||||||
#include <cxx.h>
|
#include <cxx.h>
|
||||||
|
|
||||||
#include "format.hpp"
|
|
||||||
|
|
||||||
/******************
|
/******************
|
||||||
* Special Headers
|
* Special Headers
|
||||||
*****************/
|
*****************/
|
||||||
|
@@ -1,44 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
enum class FileFormat : ::std::uint8_t;
|
|
||||||
|
|
||||||
#define BUFFER_MATCH(buf, s) (memcmp(buf, s, sizeof(s) - 1) == 0)
|
|
||||||
#define BUFFER_CONTAIN(buf, sz, s) (memmem(buf, sz, s, sizeof(s) - 1) != nullptr)
|
|
||||||
#define CHECKED_MATCH(s) (len >= (sizeof(s) - 1) && BUFFER_MATCH(buf, s))
|
|
||||||
|
|
||||||
#define BOOT_MAGIC "ANDROID!"
|
|
||||||
#define VENDOR_BOOT_MAGIC "VNDRBOOT"
|
|
||||||
#define CHROMEOS_MAGIC "CHROMEOS"
|
|
||||||
#define GZIP1_MAGIC "\x1f\x8b"
|
|
||||||
#define GZIP2_MAGIC "\x1f\x9e"
|
|
||||||
#define LZOP_MAGIC "\x89""LZO"
|
|
||||||
#define XZ_MAGIC "\xfd""7zXZ"
|
|
||||||
#define BZIP_MAGIC "BZh"
|
|
||||||
#define LZ4_LEG_MAGIC "\x02\x21\x4c\x18"
|
|
||||||
#define LZ41_MAGIC "\x03\x21\x4c\x18"
|
|
||||||
#define LZ42_MAGIC "\x04\x22\x4d\x18"
|
|
||||||
#define MTK_MAGIC "\x88\x16\x88\x58"
|
|
||||||
#define DTB_MAGIC "\xd0\x0d\xfe\xed"
|
|
||||||
#define LG_BUMP_MAGIC "\x41\xa9\xe4\x67\x74\x4d\x1d\x1b\xa4\x29\xf2\xec\xea\x65\x52\x79"
|
|
||||||
#define DHTB_MAGIC "\x44\x48\x54\x42\x01\x00\x00\x00"
|
|
||||||
#define SEANDROID_MAGIC "SEANDROIDENFORCE"
|
|
||||||
#define TEGRABLOB_MAGIC "-SIGNED-BY-SIGNBLOB-"
|
|
||||||
#define NOOKHD_RL_MAGIC "Red Loader"
|
|
||||||
#define NOOKHD_GL_MAGIC "Green Loader"
|
|
||||||
#define NOOKHD_GR_MAGIC "Green Recovery"
|
|
||||||
#define NOOKHD_EB_MAGIC "eMMC boot.img+secondloader"
|
|
||||||
#define NOOKHD_ER_MAGIC "eMMC recovery.img+secondloader"
|
|
||||||
#define NOOKHD_PRE_HEADER_SZ 1048576
|
|
||||||
#define ACCLAIM_MAGIC "BauwksBoot"
|
|
||||||
#define ACCLAIM_PRE_HEADER_SZ 262144
|
|
||||||
#define AMONET_MICROLOADER_MAGIC "microloader"
|
|
||||||
#define AMONET_MICROLOADER_SZ 1024
|
|
||||||
#define AVB_FOOTER_MAGIC "AVBf"
|
|
||||||
#define AVB_MAGIC "AVB0"
|
|
||||||
#define ZIMAGE_MAGIC "\x18\x28\x6f\x01"
|
|
||||||
|
|
||||||
FileFormat check_fmt(const void *buf, size_t len);
|
|
||||||
|
|
||||||
static inline FileFormat check_fmt(rust::Slice<const uint8_t> bytes) {
|
|
||||||
return check_fmt(bytes.data(), bytes.size());
|
|
||||||
}
|
|
@@ -57,14 +57,12 @@ pub mod ffi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsafe extern "C++" {
|
unsafe extern "C++" {
|
||||||
include!("format.hpp");
|
|
||||||
fn check_fmt(buf: &[u8]) -> FileFormat;
|
|
||||||
|
|
||||||
include!("magiskboot.hpp");
|
include!("magiskboot.hpp");
|
||||||
fn cleanup();
|
fn cleanup();
|
||||||
fn unpack(image: Utf8CStrRef, skip_decomp: bool, hdr: bool) -> i32;
|
fn unpack(image: Utf8CStrRef, skip_decomp: bool, hdr: bool) -> i32;
|
||||||
fn repack(src_img: Utf8CStrRef, out_img: Utf8CStrRef, skip_comp: bool);
|
fn repack(src_img: Utf8CStrRef, out_img: Utf8CStrRef, skip_comp: bool);
|
||||||
fn split_image_dtb(filename: Utf8CStrRef, skip_decomp: bool) -> i32;
|
fn split_image_dtb(filename: Utf8CStrRef, skip_decomp: bool) -> i32;
|
||||||
|
fn check_fmt(buf: &[u8]) -> FileFormat;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "Rust" {
|
extern "Rust" {
|
||||||
|
@@ -12,7 +12,49 @@
|
|||||||
#define BOOTCONFIG_FILE "bootconfig"
|
#define BOOTCONFIG_FILE "bootconfig"
|
||||||
#define NEW_BOOT "new-boot.img"
|
#define NEW_BOOT "new-boot.img"
|
||||||
|
|
||||||
|
#define BUFFER_MATCH(buf, s) (memcmp(buf, s, sizeof(s) - 1) == 0)
|
||||||
|
#define BUFFER_CONTAIN(buf, sz, s) (memmem(buf, sz, s, sizeof(s) - 1) != nullptr)
|
||||||
|
#define CHECKED_MATCH(s) (len >= (sizeof(s) - 1) && BUFFER_MATCH(buf, s))
|
||||||
|
|
||||||
|
#define BOOT_MAGIC "ANDROID!"
|
||||||
|
#define VENDOR_BOOT_MAGIC "VNDRBOOT"
|
||||||
|
#define CHROMEOS_MAGIC "CHROMEOS"
|
||||||
|
#define GZIP1_MAGIC "\x1f\x8b"
|
||||||
|
#define GZIP2_MAGIC "\x1f\x9e"
|
||||||
|
#define LZOP_MAGIC "\x89""LZO"
|
||||||
|
#define XZ_MAGIC "\xfd""7zXZ"
|
||||||
|
#define BZIP_MAGIC "BZh"
|
||||||
|
#define LZ4_LEG_MAGIC "\x02\x21\x4c\x18"
|
||||||
|
#define LZ41_MAGIC "\x03\x21\x4c\x18"
|
||||||
|
#define LZ42_MAGIC "\x04\x22\x4d\x18"
|
||||||
|
#define MTK_MAGIC "\x88\x16\x88\x58"
|
||||||
|
#define DTB_MAGIC "\xd0\x0d\xfe\xed"
|
||||||
|
#define LG_BUMP_MAGIC "\x41\xa9\xe4\x67\x74\x4d\x1d\x1b\xa4\x29\xf2\xec\xea\x65\x52\x79"
|
||||||
|
#define DHTB_MAGIC "\x44\x48\x54\x42\x01\x00\x00\x00"
|
||||||
|
#define SEANDROID_MAGIC "SEANDROIDENFORCE"
|
||||||
|
#define TEGRABLOB_MAGIC "-SIGNED-BY-SIGNBLOB-"
|
||||||
|
#define NOOKHD_RL_MAGIC "Red Loader"
|
||||||
|
#define NOOKHD_GL_MAGIC "Green Loader"
|
||||||
|
#define NOOKHD_GR_MAGIC "Green Recovery"
|
||||||
|
#define NOOKHD_EB_MAGIC "eMMC boot.img+secondloader"
|
||||||
|
#define NOOKHD_ER_MAGIC "eMMC recovery.img+secondloader"
|
||||||
|
#define NOOKHD_PRE_HEADER_SZ 1048576
|
||||||
|
#define ACCLAIM_MAGIC "BauwksBoot"
|
||||||
|
#define ACCLAIM_PRE_HEADER_SZ 262144
|
||||||
|
#define AMONET_MICROLOADER_MAGIC "microloader"
|
||||||
|
#define AMONET_MICROLOADER_SZ 1024
|
||||||
|
#define AVB_FOOTER_MAGIC "AVBf"
|
||||||
|
#define AVB_MAGIC "AVB0"
|
||||||
|
#define ZIMAGE_MAGIC "\x18\x28\x6f\x01"
|
||||||
|
|
||||||
|
enum class FileFormat : ::std::uint8_t;
|
||||||
|
|
||||||
int unpack(rust::Utf8CStr image, bool skip_decomp = false, bool hdr = false);
|
int unpack(rust::Utf8CStr image, bool skip_decomp = false, bool hdr = false);
|
||||||
void repack(rust::Utf8CStr src_img, rust::Utf8CStr out_img, bool skip_comp = false);
|
void repack(rust::Utf8CStr src_img, rust::Utf8CStr out_img, bool skip_comp = false);
|
||||||
int split_image_dtb(rust::Utf8CStr filename, bool skip_decomp = false);
|
int split_image_dtb(rust::Utf8CStr filename, bool skip_decomp = false);
|
||||||
void cleanup();
|
void cleanup();
|
||||||
|
FileFormat check_fmt(const void *buf, size_t len);
|
||||||
|
|
||||||
|
static inline FileFormat check_fmt(rust::Slice<const uint8_t> bytes) {
|
||||||
|
return check_fmt(bytes.data(), bytes.size());
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user