Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
Magisk
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Magisk
Commits
7877ac0c
Commit
7877ac0c
authored
Mar 12, 2017
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Well, /dev/zero cannot be used like that...
parent
1442e29d
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
13 deletions
+11
-13
magiskboot.h
jni/magiskboot/magiskboot.h
+1
-1
repack.c
jni/magiskboot/repack.c
+3
-6
utils.c
jni/magiskboot/utils.c
+7
-6
No files found.
jni/magiskboot/magiskboot.h
View file @
7877ac0c
...
...
@@ -94,7 +94,6 @@ extern unsigned char *kernel, *ramdisk, *second, *dtb, *extra;
extern
boot_img_hdr
hdr
;
extern
file_t
boot_type
,
ramdisk_type
,
dtb_type
;
extern
int
mtk_kernel
,
mtk_ramdisk
;
extern
int
zero
;
// Main entries
void
unpack
(
const
char
*
image
);
...
...
@@ -119,6 +118,7 @@ void decomp_file(char *from, const char *to);
void
mmap_ro
(
const
char
*
filename
,
unsigned
char
**
buf
,
size_t
*
size
);
void
mmap_rw
(
const
char
*
filename
,
unsigned
char
**
buf
,
size_t
*
size
);
file_t
check_type
(
const
unsigned
char
*
buf
);
void
write_zero
(
int
fd
,
size_t
size
);
void
mem_align
(
size_t
*
pos
,
size_t
align
);
void
file_align
(
int
fd
,
size_t
align
,
int
out
);
int
open_new
(
const
char
*
filename
);
...
...
jni/magiskboot/repack.c
View file @
7877ac0c
...
...
@@ -21,9 +21,6 @@ static void restore_buf(int fd, const void *buf, size_t size) {
}
void
repack
(
const
char
*
orig_image
,
const
char
*
out_image
)
{
zero
=
open
(
"/dev/zero"
,
O_RDONLY
);
if
(
zero
<
0
)
error
(
1
,
"Cannot open /dev/zero"
);
size_t
size
;
unsigned
char
*
orig
;
char
name
[
PATH_MAX
];
...
...
@@ -51,12 +48,12 @@ void repack(const char* orig_image, const char* out_image) {
hdr
.
dt_size
=
0
;
// Skip a page for header
sendfile
(
fd
,
zero
,
NULL
,
hdr
.
page_size
);
write_zero
(
fd
,
hdr
.
page_size
);
// Restore kernel
if
(
mtk_kernel
)
{
mtk_kernel_off
=
lseek
(
fd
,
0
,
SEEK_CUR
);
sendfile
(
fd
,
zero
,
NULL
,
512
);
write_zero
(
fd
,
512
);
memcpy
(
&
mtk_kernel_hdr
,
kernel
,
sizeof
(
mtk_kernel_hdr
));
}
hdr
.
kernel_size
=
restore
(
KERNEL_FILE
,
fd
);
...
...
@@ -65,7 +62,7 @@ void repack(const char* orig_image, const char* out_image) {
// Restore ramdisk
if
(
mtk_ramdisk
)
{
mtk_ramdisk_off
=
lseek
(
fd
,
0
,
SEEK_CUR
);
sendfile
(
fd
,
zero
,
NULL
,
512
);
write_zero
(
fd
,
512
);
memcpy
(
&
mtk_ramdisk_hdr
,
ramdisk
,
sizeof
(
mtk_ramdisk_hdr
));
}
if
(
access
(
RAMDISK_FILE
,
R_OK
)
==
0
)
{
...
...
jni/magiskboot/utils.c
View file @
7877ac0c
...
...
@@ -3,7 +3,6 @@
char
*
SUP_EXT_LIST
[
SUP_NUM
]
=
{
"gz"
,
"xz"
,
"lzma"
,
"bz2"
,
"lz4"
};
file_t
SUP_TYPE_LIST
[
SUP_NUM
]
=
{
GZIP
,
XZ
,
LZMA
,
BZIP2
,
LZ4
};
int
zero
=
-
1
;
void
mmap_ro
(
const
char
*
filename
,
unsigned
char
**
buf
,
size_t
*
size
)
{
int
fd
=
open
(
filename
,
O_RDONLY
);
...
...
@@ -56,6 +55,12 @@ file_t check_type(const unsigned char *buf) {
}
}
void
write_zero
(
int
fd
,
size_t
size
)
{
size_t
pos
=
lseek
(
fd
,
0
,
SEEK_CUR
);
ftruncate
(
fd
,
pos
+
size
);
lseek
(
fd
,
pos
+
size
,
SEEK_SET
);
}
void
mem_align
(
size_t
*
pos
,
size_t
align
)
{
size_t
mask
=
align
-
1
;
if
(
*
pos
&
mask
)
{
...
...
@@ -70,11 +75,7 @@ void file_align(int fd, size_t align, int out) {
if
(
pos
&
mask
)
{
off
=
align
-
(
pos
&
mask
);
if
(
out
)
{
if
(
zero
<
0
)
{
zero
=
open
(
"/dev/zero"
,
O_RDONLY
);
if
(
zero
<
0
)
error
(
1
,
"Cannot open /dev/zero"
);
}
sendfile
(
fd
,
zero
,
NULL
,
off
);
write_zero
(
fd
,
off
);
}
else
{
lseek
(
fd
,
pos
+
off
,
SEEK_SET
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment