diff --git a/main/devicepkg-dev/APKBUILD b/main/devicepkg-dev/APKBUILD
index 6861cf7d7cdff4b57e0c7dd8cfda1a7e494b9a8e..e3b06ce241b182db451125fdaac3984fa68f1ec8 100644
--- a/main/devicepkg-dev/APKBUILD
+++ b/main/devicepkg-dev/APKBUILD
@@ -1,5 +1,5 @@
 pkgname="devicepkg-dev"
-pkgver=0.11.3
+pkgver=0.11.4
 pkgrel=0
 pkgdesc="Provides default device package functions"
 url="https://postmarketos.org"
@@ -63,8 +63,8 @@ package() {
 sha512sums="d69930dd790b00fb39760a37d95a10899f0d167e10e2804feb05d9ce04f94185dc32d36edc90214aba2ea2aa09bf18f7dab93f1d2eff23f67beb2cc83be30e7c  compiler-gcc.h
 332f693abfb3260ad6c1ef5d245062af8cc8eedba7db360d54db5a7fcf7b301a37a299a0004e9ff4de80b5dfcd260d0cd0f99f96ed6d56080bb4dea81116cc82  devicepkg_build.sh
 5ac4a5087c598582cb12278a4ce0c2dccfe7f91c1620d3328d1d0944c89eff81f8afcc681506d73a80d69615401f96a99fb1fdaa755fea101e0d36ec6ef2d5d0  devicepkg_package.sh
-69dad4bde05377ec235d72789c80cdfbdaa5a19b97defe9d4c19e0e12aa2c081d6dcf19fb80ebe33c2d6539ce8a39d36d98413404852d6bb2d56cc75d2f1ee95  downstreamkernel_prepare.sh
-8a6a0afa6e499b59c5433194298d13eb07712c4344e1dd4f71fdc34a2836950a12247c61aa7563bd646efff6118b377ceb387f09170282896809a160b3d9cd04  downstreamkernel_package.sh
+2579e021186eff6633887885e880eee5e856fdd37fba023acc9110870ce4ee1f1bad95e83ad27271791b8062945fc72ce79247f452c2912d4a9203a51f7a07f1  downstreamkernel_prepare.sh
+10e05eb9aa7735bf177cf0c38ea45efbea7e6d1581d54dc05b950916a615c67cecc6c686cdf3d27ee9e71c32447f3b0c207a139096f4dd4291ed06616363dfea  downstreamkernel_package.sh
 cf5ee240cd1c1e9d30cdec833b4a007fd2e00f9a32ba3f265f99aa2e3dd3601cf43c08d3f3e01bade1d5b2648a6754b2f236e5cb4a9945e18e5c4e97aa2ed7c8  devicepkg_subpackage_kernel.sh
 9bb7f2a0930f397a713e9f4b6d5b83a426d9a2a3f692dcc42ac30717bf26ead869d8823a38f3ad388af12b2b9a02e8ec4d4418e9c2062389ed06d2b891a49ff3  deviceinfo
 136247a16ec91dc0c7241eeddb28c2196ae3b29946a9bc7e9566f848491ef1c53b12d05bf2dbc1cc352986712fd76f25c1510bcc8f301af540a2f01c33b299e1  expected-deviceinfo-downstream
diff --git a/main/devicepkg-dev/downstreamkernel_package.sh b/main/devicepkg-dev/downstreamkernel_package.sh
index ef589a4467eca4a53665e10fa88002c8d940a729..08549abd5aea47b20fc7252bbd8706cf5d58fab5 100644
--- a/main/devicepkg-dev/downstreamkernel_package.sh
+++ b/main/devicepkg-dev/downstreamkernel_package.sh
@@ -5,6 +5,7 @@ builddir=$1
 pkgdir=$2
 _carch=$3
 _flavor=$4
+_outdir=$5
 
 if [ -z "$builddir" ] || [ -z "$pkgdir" ] || [ -z "$_carch" ] ||
 	[ -z "$_flavor" ]; then
@@ -15,12 +16,12 @@ if [ -z "$builddir" ] || [ -z "$pkgdir" ] || [ -z "$_carch" ] ||
 fi
 
 # kernel.release
-install -D "$builddir/include/config/kernel.release" \
+install -D "$builddir/$_outdir/include/config/kernel.release" \
 	"$pkgdir/usr/share/kernel/$_flavor/kernel.release"
 
 # zImage (find the right one)
 # shellcheck disable=SC2164
-cd "$builddir/arch/$_carch/boot"
+cd "$builddir/$_outdir/arch/$_carch/boot"
 _target="$pkgdir/boot/vmlinuz-$_flavor"
 
 if [ -n "$KERNEL_IMAGE_NAME" ]; then
diff --git a/main/devicepkg-dev/downstreamkernel_prepare.sh b/main/devicepkg-dev/downstreamkernel_prepare.sh
index 30d51205ad42e9c414f14ea14d1fbe6d87c5c024..1b4da1dda65b0f21212468ba221774b5331001a4 100644
--- a/main/devicepkg-dev/downstreamkernel_prepare.sh
+++ b/main/devicepkg-dev/downstreamkernel_prepare.sh
@@ -27,6 +27,7 @@ builddir=$2
 _config=$3
 _carch=$4
 HOSTCC=$5
+_outdir=$6
 
 if [ -z "$srcdir" ] || [ -z "$builddir" ] || [ -z "$_config" ] ||
 	[ -z "$_carch" ]; then
@@ -51,7 +52,16 @@ for i in $makefiles; do
 	sed -i 's/-Werror//g' "$i"
 done
 
+if [ -n "$_outdir" ]; then
+	mkdir -p "$_outdir"
+fi
+
 # Prepare kernel config ('yes ""' for kernels lacking olddefconfig)
-cp "$srcdir/$_config" "$builddir"/.config
+cp "$srcdir/$_config" "$builddir/$_outdir"/.config
 # shellcheck disable=SC2086
-yes "" | make -C "$builddir" ARCH="$_carch" $HOSTCC oldconfig
+if [ -n "$_outdir" ]; then
+	yes "" | make -C "$builddir" ARCH="$_carch" O="$_outdir" \
+		$HOSTCC oldconfig
+else
+	yes "" | make -C "$builddir" ARCH="$_carch" $HOSTCC oldconfig
+fi