blob: 268a0d8a00d351b34aefc841e1de3da4bbda2359 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
/** @file
Copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef __ANDROID_FASTBOOT_APP_H__
#define __ANDROID_FASTBOOT_APP_H__
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#define BOOTIMG_KERNEL_ARGS_SIZE 512
#define ANDROID_FASTBOOT_VERSION "0.4"
#define BOOT_MAGIC "ANDROID!"
#define BOOT_MAGIC_LENGTH sizeof(BOOT_MAGIC) - 1
#pragma pack(1)
typedef struct {
CHAR8 BootMagic[BOOT_MAGIC_LENGTH];
UINT32 KernelSize;
UINT32 KernelAddress;
UINT32 RamdiskSize;
UINT32 RamdiskAddress;
UINT32 SecondStageBootloaderSize;
UINT32 SecondStageBootloaderAddress;
UINT32 KernelTaggsAddress;
UINT32 PageSize;
UINT32 Reserved[2];
CHAR8 ProductName[16];
CHAR8 KernelArgs[BOOTIMG_KERNEL_ARGS_SIZE];
UINT32 Id[32];
} ANDROID_BOOTIMG_HEADER;
#pragma pack()
EFI_STATUS
BootAndroidBootImg (
IN UINTN BufferSize,
IN VOID *Buffer
);
EFI_STATUS
ParseAndroidBootImg (
IN VOID *BootImg,
OUT VOID **Kernel,
OUT UINTN *KernelSize,
OUT VOID **Ramdisk,
OUT UINTN *RamdiskSize,
OUT CHAR8 *KernelArgs
);
#endif //ifdef __ANDROID_FASTBOOT_APP_H__
|