blob: d7e4591ee1172e4301fb9e4f09d38fdbea7fe249 (
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# Maintainer: Filipe LaĆns (FFY00) <lains@archlinux.org>
_pkgname=KernelPatch
pkgname=kernelpatch-git
pkgver=0.12.0
pkgrel=1
pkgdesc='Patching and hooking the Linux kernel with only a stripped Linux kernel image.'
arch=('x86_64')
url='https://github.com/bmax121/KernelPatch'
license=('GPL-2.0-only')
depends=('glibc' 'zlib')
makedepends=('git' 'cmake' 'aarch64-linux-gnu-gcc' 'aarch64-linux-gnu-binutils')
source=("git+$url.git")
sha512sums=('SKIP')
provides=("$pkgname" 'kpimg' 'kptools')
conflicts=("$pkgname" 'kpimg' 'kptools')
cross_make() {
CFLAGS='-fno-pic -fno-pie' \
CXXFLAGS='-fno-pic -fno-pie' \
LDFLAGS='-fno-pic -fno-pie' \
TARGET_COMPILE=aarch64-linux-gnu- \
make $@
}
build() {
cd $_pkgname
# Headers (needed by ./tools and ./user)
echo 'Copying headers...'
TARGET_COMPILE=placeholder make -Ckernel hdr
# kptools
echo 'Building kptools...'
cmake -S tools -B tools/build -DCMAKE_BUILD_TYPE=None
cmake --build tools/build
# kpimg-linux
echo 'Building kpmg-linux...'
cp -r kernel{,-linux}
cross_make -Ckernel-linux kpimg
echo 'Building kpmg-android...'
cp -r kernel{,-android}
cross_make -Ckernel-android kpimg ANDROID=1
# KPMs
echo 'Building demo-hello.kpm'
cross_make -Ckpms/demo-hello
echo 'Building demo-inlinehook.kpm'
cross_make -Ckpms/demo-inlinehook
echo 'Building demo-syscallhook.kpm'
cross_make -Ckpms/demo-syscallhook
}
package() {
cd $_pkgname
# kptools
install -Dm 755 tools/build/kptools "$pkgdir"/usr/bin/kptools
# kpimg
kpimg_dir="$pkgdir"/usr/share/$pkgname/kpimg
install -dm 755 "$kpimg_dir"
install -Dm 644 kernel-linux/kpimg "$kpimg_dir"/kpimg-linux
install -Dm 644 kernel-linux/kpimg.elf "$kpimg_dir"/kpimg-linux.elf
install -Dm 644 kernel-android/kpimg "$kpimg_dir"/kpimg-android
install -Dm 644 kernel-android/kpimg.elf "$kpimg_dir"/kpimg-android.elf
# KPMs
kpms_dir="$pkgdir"/usr/share/$pkgname/kpms
install -dm 755 "$kpms_dir"
install -Dm 644 kpms/demo-hello/hello.kpm "$kpms_dir"/demo-hello.kpm
install -Dm 644 kpms/demo-inlinehook/inlinehook.kpm "$kpms_dir"/demo-inlinehook.kpm
install -Dm 644 kpms/demo-syscallhook/syscallhook.kpm "$kpms_dir"/demo-syscallhook.kpm
# Headers (kpuser)
install -dm 755 "$pkgdir"/usr/include/$_pkgname
cp -r user/* "$pkgdir"/usr/include/$_pkgname/
# Documentation
install -dm 755 "$pkgdir"/usr/share/doc/$pkgname
cp -r doc/en/* "$pkgdir"/usr/share/doc/$pkgname/
}
|