Since I tend to modify roms before flashing them to my phone, and sometimes want to do so away from a computer, I ended up writing this. It's an ash script that uses the openssl binary found on most custom roms, and infozip. The sdk test/platform/media/etc keys are included. Usage:
Usage: signapk (options) [command] (files)
commands:
sign FILE sign a .zip or .apk
sign FILE1 FILE2 create a signed copy of FILE1 as FILE2
cert FILE(s) print cert info on FILE's signer
certinfo FILE print detailed cert info on FILE's signer
cmp FILE compare signer of FILE with default/selected cert
cmp FILE1 FILE2 compare signer of FILE1 to signer of FILE2
options:
-k, --key FILE key to sign with
-c, --cert FILE cert to sign with
if -c or -k are not files then they are considered
aliases to builtins (ie -k testkey or -c platform)
-f, --force sign even if cert differs from original
-t, --tmp DIR use DIR for tempdir instead of '/cache'
-d, --debug output debugging
-V, --version print 'signapk v0.3.1'
exit codes:
1: read error (file 1) 2: read error (file 2)
3: write error 4: ssl error
5: zip write error 9: key error
8: sign: cert mismatch 10: cmp: cert mismatch
128: script error 255: user error
Installation:
unpack somewhere. If needed, edit the variables at the top of the script. By default it uses /cache/ for 4 small temporary files.
Faq:
* Why did you include a busybox and openssl? * Some roms don't include the openssl utility. Busybox's unzip refuses to deal with zipaligned apks on alot of roms, because it wasn't compiled with ENABLE_DESKTOP. Busybox's ash is missing things that the script needs, on some roms. The script will use whatever the rom provides, if these binaries are not present. Good luck.
* How do I change the cert? * see signapk --help for cert/key selection flags
* Can I use this in my MarketAppThingy? * Sure, and please let me know. If it's a paid MarketAppThingy, consider sending me a free copy.
Changelog:
release 3: cmp function, key selection, documented exit codes that make sense, and paranoia. Includes trimmed down busybox and openssl binaries. If these are present, script will reload itself to run in it's busybox ash interpreter to avoid broken busybox compiles, and can run without using anything provided by the rom. In theory this means no compatibility issues, but is limited to ARM devices.
release 2: Apparently it's valid to have ANYNAME.SF/ANYNAME.RSA or ANYNAME.DSA. signapk cert and certinfo now handles this. The sign function will blindly write to CERT.SF and CERT.RSA as this is the behavior of the standard SignApk.java. This may be fixed later.
If you don't wanna signup to download attachment, snag this from http://code.google.com/p/signapk/downloads/list
very, very useful. I'm testing this now Signing stuff was always way too complicated.
Cool. Can't wait for someone to make a market app that creates a simple ui to edit update.zips before flashing. Hint hint
I put the files in /system/signapk (new folder)
When i run the script I get the error below. The test file is an unsigned apk exported from eclipse.
Code:
# ./signapk sign /sdcard/unsigned.apk
./signapk sign /sdcard/unsigned.apk
Checksumming /mnt/sdcard/unsigned.apk:
res/layout/main.xml AndroidManifest.xml
resources.arsc res/drawable-hdpi/icon.png res/drawable-ldpi/icon.png res/drawable-mdpi/icon.png classes.dex
[COLOR="Red"]unable to write 'random state'
./signapk: line 132: ./signapk.zip: not found[/COLOR]
#
Any idea what needs changing to fix this?
update: When I used the full path it worked.
Code:
# /system/signapk/signapk sign /sdcard/unsigned.apk
/system/signapk/signapk sign /sdcard/unsigned.apk
Checksumming /mnt/sdcard/unsigned.apk:
res/layout/main.xml AndroidManifest.xml
resources.arsc res/drawable-hdpi/icon.png res/drawable-ldpi/icon.png res/drawable-mdpi/icon.png classes.dex
unable to write 'random state'
adding: META-INF/MANIFEST.MF (deflated 49%)
adding: META-INF/CERT.SF (deflated 48%)
adding: META-INF/CERT.RSA (deflated 33%)
# /system/signapk/signapk cert /sdcard/unsigned.apk
/system/signapk/signapk cert /sdcard/unsigned.apk
/sdcard/unsigned.apk 936EACBE07F201DF SDK Test Key
Was playing around with app inventor and came up with this:
edit: AppInventor does not generate java code and it cannot be worked on further in anything else (i.e eclipse)
I was really hoping I would atleast get the activity xml
Heya, the latest is at http://code.google.com/p/signapk/downloads/list and should fix the zip error. signapk-bb, signapk-zip, and signapk-openssl are static, trimmed down versions of utilities required by the script, and should be extracted to the same directory as the script. If they are not present it will try to use stuff in $PATH
Just throwing it (the obvious) out there that this could enable a new generation of morphs for /data apps
Copy apk,uninstall,morph, install
Hmmmm....
britoso said:
Just throwing it (the obvious) out there that this could enable a new generation of morphs for /data apps
Copy apk,uninstall,morph, install
Click to expand...
Click to collapse
How can i get this to work with a morph and to edit the updater-script?
Someone explain the commands with example...
Another noob question is .. it is for android or pc...
Edit:- Made my own mod here https://forum.xda-developers.com/t/...-apk-zip-within-android.3835975/post-81324327
below code works with latest(1.32.0) busybox
Bash:
#!/system/bin/sh
# depends unzip printf zip openssl
# put zip openssl busybox in PATH
# Usage:-
# Sign.sh key.pk8 key.x509.pem in.zip out.zip
ordie() {
if [ $? -ne 0 ]; then
IFS=" "
$BB printf "$1\n"
exit $2
fi
}
PKEY="$1"
CERT="$2"
ORIG="$3"
TARGET="$4"
BB=busybox
cat "$ORIG" > "$TARGET"; ordie "Cannot write to $TARGET" 3
$BB printf "Checksumming $ORIG:\n"
TMP=$HOME
TMPDIR="$TMP/sign-$$"
TMPPKEY="$TMPDIR/tmp.pkey"
mkdir -p "$TMPDIR/META-INF"; ordie "" 3
$BB printf "Manifest-Version: 1.0\r\nCreated-By: 1.0 (Android SignApk)\r\n\r\n" > "$TMPDIR/META-INF/MANIFEST.MF"
ZIPls=$($BB unzip -qql "$ORIG"); ordie "$ORIG: unzip error" 1
OLDIFS=$IFS
IFS=${IFS:2:2}
for i in $ZIPls; do
IFS=$OLDIFS
set -- $i
if [ "$#" -ge 3 ] && [ "$1" != "0" ]; then
file="${i:30}"
case "$file" in META-INF/MANIFEST.MF|META-INF/CERT.SF|META-INF/CERT.RSA) continue;; esac
$BB printf "$file "
hash=$($BB unzip -p "$ORIG" "$file" | openssl sha1 -binary | openssl base64); ordie "$ORIG: unzip error" 1
ret="Name: $file\r\nSHA1-Digest: $hash\r\n\r\n"
$BB printf "$ret" >> "$TMPDIR/META-INF/MANIFEST.MF"
hash=$($BB printf "$ret" | openssl sha1 -binary | openssl base64)
$BB printf "Name: $file\r\nSHA1-Digest: $hash\r\n\r\n" >> "$TMPDIR/META-INF/CERT.SF.temp"
fi
done
$BB printf "\n"
mfhash=$(cat "$TMPDIR/META-INF/MANIFEST.MF" | openssl sha1 -binary | openssl base64)
$BB printf "Signature-Version: 1.0\r\nCreated-By: 1.0 (Android SignApk)\r\nSHA1-Digest-Manifest: $mfhash\r\n\r\n" > "$TMPDIR/META-INF/CERT.SF"
cat "$TMPDIR/META-INF/CERT.SF.temp" >> "$TMPDIR/META-INF/CERT.SF"
openssl pkcs8 -inform DER -nocrypt -in "$PKEY" > "$TMPPKEY"; ordie "" 4
cat "$TMPDIR/META-INF/CERT.SF" | openssl smime -sign -inkey "$TMPPKEY" -signer "$CERT" -binary -outform DER -noattr > "$TMPDIR/META-INF/CERT.RSA"; ordie "" 4
cd "$TMPDIR"
zip "$TARGET" META-INF/MANIFEST.MF META-INF/CERT.SF META-INF/CERT.RSA; ordie "" 5
cd - > /dev/null
rm -r "$TMPDIR"
I'm trying to build the AOSP Gingerbread for my Droid using this tutorial to patch the source, but I'm getting this error:
Code:
Nathan-Camposs-MacBook-Pro:AOSP Nathan$ lunch generic_sholes-userdebug
sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
build/core/product_config.mk:194: *** _nic.PRODUCTS.[[device/motorola/sholes/sholes.mk]]: "build/target/product/small_base.mk" does not exist. Stop.
** Don't have a product spec for: 'generic_sholes'
** Do you have the right repo manifest?
Nathan-Camposs-MacBook-Pro:AOSP Nathan$
What am I doing wrong? What should I do?
Sorry this is so late.
You're on a mac. The built-in 'sed' doesn't have the options needed. I'll assume you installed gsed from ports (if not, do so). Then:
Code:
sudo mv /usr/bin/sed /usr/bin/sed.old
sudo ln -s `which gsed` /usr/bin/sed
Note that this mark is a back-tick, not a single quote:
Code:
`
I've been trying to compile jt's ICS rom, but I've been running into a number of different issues. I'm new to this whole thing, but I would really like to learn as much as possible and hopefully be able to start modding roms. I've done a ton of reading and trial/error all week (I started a few days before jt dropped ICS on the Infuse), but I seem to have hit a brick wall. Instead of bashing my head (and probably screwing things up more), I decided to stop and ask for help. Here is what I've done so far (I'm on OS X 10.7.3 btw):
I read the full "Getting Started" section of http://source.google.com (probably twice by now), and followed their instructions for initializing the build environment in OS X (i.e. getting all necessary software, creating a case-sensitive dev environment, initializing and syncing repo, etc)
I did the OS X 10.7 "hacks" from the CM wiki's SGS II compile guide.
Cloned the following repos from jt:
android_device_samsung_infuse4g
android_device_samsung_aries-common
android_vendor_cm
android_kernel_samsung_dempsey
(I'm switching to the terminal commands + output in code boxes now)
[email protected]:/Volumes/android/ROM_DIR$ . build/envsetup.sh
Code:
including device/samsung/maguro/vendorsetup.sh
including device/samsung/tuna/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
[email protected]:/Volumes/android/ROM_DIR$ lunch full_infuse4g-eng
Code:
build/core/product_config.mk:193: *** _nic.PRODUCTS.[[device/samsung/infuse4g/full_infuse4g.mk]]: "vendor/samsung/aries-common/aries-vendor-blobs.mk" does not exist. Stop.
** Don't have a product spec for: 'full_infuse4g'
** Do you have the right repo manifest?
I noticed that jt's extract-files.sh is saving some blobs as 'infuse-vendor-blobs.mk' so I cp'd them to the name/location above:
[email protected]:/Volumes/android/ROM_DIR$ sudo cp vendor/samsung/infuse4g/infuse4g-vendor-blobs.mk vendor/samsung/aries-common/aries-vendor-blobs.mk
I re-read CM's build wiki and saw that they cp the device's buildspec.mk to system/buildspec.mk
[email protected]:/Volumes/android/ROM_DIR$ sudo cp device/samsung/infuse4g/infuse4g.mk system/buildspec.mk
[email protected]:/Volumes/android/ROM_DIR$ . build/envsetup.sh
Code:
including device/samsung/maguro/vendorsetup.sh
including device/samsung/tuna/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
[email protected]:/Volumes/android/ROM_DIR$ lunch full_infuse4g-eng
Code:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.1
TARGET_PRODUCT=full_infuse4g
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=darwin
HOST_BUILD_TYPE=release
BUILD_ID=ITL41D
============================================
[email protected]:/Volumes/android/ROM_DIR$ make -j4 otapackage
Code:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.1
TARGET_PRODUCT=full_infuse4g
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=darwin
HOST_BUILD_TYPE=release
BUILD_ID=ITL41D
============================================
Checking build tools versions...
Please install the 10.5 SDK on this machine at /Developer/SDKs/MacOSX10.5.sdk
external/qemu/Makefile.android:82: *** Aborting the build.. Stop.
Created a symlink for the OS X SDK in the location above:
[email protected]:/Volumes/android/ROM_DIR$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk /Developer/SDKs/MacOSX10.5.sdk
[email protected]:/Volumes/android/ROM_DIR$ make -j4 otapackage
Code:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.1
TARGET_PRODUCT=full_infuse4g
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=darwin
HOST_BUILD_TYPE=release
BUILD_ID=ITL41D
============================================
build/core/Makefile:25: warning: overriding commands for target `out/target/product/infuse4g/system/etc/permissions/android.software.live_wallpaper.xml'
build/core/Makefile:25: warning: ignoring old commands for target `out/target/product/infuse4g/system/etc/permissions/android.software.live_wallpaper.xml'
build/core/Makefile:25: warning: overriding commands for target `out/target/product/infuse4g/system/lib/egl/libGLES_android.so'
build/core/base_rules.mk:523: warning: ignoring old commands for target `out/target/product/infuse4g/system/lib/egl/libGLES_android.so'
build/core/Makefile:25: warning: overriding commands for target `out/target/product/infuse4g/system/lib/libril.so'
build/core/base_rules.mk:523: warning: ignoring old commands for target `out/target/product/infuse4g/system/lib/libril.so'
build/core/Makefile:25: warning: overriding commands for target `out/target/product/infuse4g/system/bin/rild'
build/core/base_rules.mk:523: warning: ignoring old commands for target `out/target/product/infuse4g/system/bin/rild'
No private recovery resources for TARGET_DEVICE infuse4g
Header: out/host/darwin-x86/obj/include/libexpat/expat.h
Header: out/host/darwin-x86/obj/include/libexpat/expat_external.h
Header: out/target/product/infuse4g/obj/include/libexpat/expat.h
Header: out/target/product/infuse4g/obj/include/libexpat/expat_external.h
Header: out/host/darwin-x86/obj/include/libpng/png.h
Header: out/host/darwin-x86/obj/include/libpng/pngconf.h
Header: out/host/darwin-x86/obj/include/libpng/pngusr.h
Header: out/target/product/infuse4g/obj/include/libpng/png.h
Header: out/target/product/infuse4g/obj/include/libpng/pngconf.h
Header: out/target/product/infuse4g/obj/include/libpng/pngusr.h
Header: out/target/product/infuse4g/obj/include/libsonivox/eas.h
Header: out/target/product/infuse4g/obj/include/libsonivox/eas_types.h
Header: out/target/product/infuse4g/obj/include/libsonivox/jet.h
Header: out/target/product/infuse4g/obj/include/libsonivox/eas_reverb.h
Header: out/target/product/infuse4g/obj/include/libsonivox/ARM_synth_constants_gnu.inc
Header: out/target/product/infuse4g/obj/include/libwpa_client/wpa_ctrl.h
Notice file: system/core/libmincrypt/NOTICE -- out/host/darwin-x86/obj/NOTICE_FILES/src//lib/libmincrypt.a.txt
Directory: out/target/product/infuse4g/root/sbin
Directory: out/target/product/infuse4g/root/dev
Directory: out/target/product/infuse4g/root/proc
Directory: out/target/product/infuse4g/root/system
Directory: out/target/product/infuse4g/root/sys
Directory: out/target/product/infuse4g/root/data
prebuilt/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc -mthumb-interwork -Ibionic/libc/private -DCRT_LEGACY_WORKAROUND -Ibionic/libc/private -o out/target/product/infuse4g/obj/lib/crtbegin_static.o -c bionic/libc/arch-arm/bionic/crtbegin_static.S
prebuilt/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc -mthumb-interwork -Ibionic/libc/private -DCRT_LEGACY_WORKAROUND -Ibionic/libc/private -o out/target/product/infuse4g/obj/lib/crtend_so.o -c bionic/libc/arch-arm/bionic/crtend_so.S
prebuilt/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc -mthumb-interwork -Ibionic/libc/private -DCRT_LEGACY_WORKAROUND -Ibionic/libc/private -o out/target/product/infuse4g/obj/lib/crtbegin_so.o -c bionic/libc/arch-arm/bionic/crtbegin_so.S
prebuilt/darwin-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc -mthumb-interwork -Ibionic/libc/private -DCRT_LEGACY_WORKAROUND -Ibionic/libc/private -o out/target/product/infuse4g/obj/lib/crtend_android.o -c bionic/libc/arch-arm/bionic/crtend.S
Notice file: system/core/init/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//root/init.txt
Notice file: system/core/liblog/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/liblog.a.txt
Notice file: system/core/libcutils/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/libcutils.a.txt
Notice file: bionic/libc/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/libc.a.txt
Notice file: bionic/libc/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/libc.so.txt
Notice file: bionic/libc/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/libc_common.a.txt
Notice file: bionic/libdl/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/libdl.so.txt
Notice file: bionic/libstdc++/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/libstdc++.so.txt
make: *** No rule to make target `device/samsung/aries-common/lpm.rc', needed by `out/target/product/infuse4g/root/lpm.rc'. Stop.
make: *** Waiting for unfinished jobs....
Notice file: bionic/libm/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//system/lib/libm.so.txt
Notice file: system/core/adb/NOTICE -- out/target/product/infuse4g/obj/NOTICE_FILES/src//root/sbin/adbd.txt
A couple notices and warnings in the output above, but this is the error that stopped it:
make: *** No rule to make target `device/samsung/aries-common/lpm.rc', needed by `out/target/product/infuse4g/root/lpm.rc'. Stop.
How do I fix that? Also, were my assumptions earlier about cp'ing the blobs and the buildspec correct, or did I just mess things up?
Any help would be greatly appreciated, even if it is a link to a step that I might have missed in the compile process. Thanks in advance!
(Mods: I couldn't decide if this belongs in development or Q&A...if it's in the wrong section, let me know and I'll remove & repost in the right place)
hello
this is my first time compiling cm
i did everything but i have this error
Code:
\============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.0.1
CM_VERSION=12-20141212-UNOFFICIAL-kyleopen
TARGET_PRODUCT=cm_kyleopen
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a7
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.13.0-40-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=LRX22C
OUT_DIR=/home/basel/Desktop/CM12/out
============================================
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
find: `src': No such file or directory
"ebtables is disabled on this build"
find: `phone/java': No such file or directory
find: `phone/java': No such file or directory
find: `dummy': No such file or directory
PRODUCT_COPY_FILES device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml ignored.
No private recovery resources for TARGET_DEVICE kyleopen
build/core/tasks/kernel.mk:63: ***************************************************************
build/core/tasks/kernel.mk:64: * Using prebuilt kernel binary instead of source *
build/core/tasks/kernel.mk:65: * THIS IS DEPRECATED, AND WILL BE DISCONTINUED *
build/core/tasks/kernel.mk:66: * Please configure your device to download the kernel *
build/core/tasks/kernel.mk:67: * source repository to kernel/samsung/kyleopen
build/core/tasks/kernel.mk:68: * See http://wiki.cyanogenmod.org/w/Doc:_integrated_kernel_building
build/core/tasks/kernel.mk:69: * for more information *
build/core/tasks/kernel.mk:70: ***************************************************************
build/core/tasks/kernel.mk:192: warning: overriding commands for target `/home/basel/Desktop/CM12/out/target/product/kyleopen/kernel'
build/core/Makefile:46: warning: ignoring old commands for target `/home/basel/Desktop/CM12/out/target/product/kyleopen/kernel'
Target boot image: /home/basel/Desktop/CM12/out/target/product/kyleopen/boot.img
usage: mkbootimg
--kernel <filename>
--ramdisk <filename>
[ --second <2ndbootloader-filename> ]
[ --cmdline <kernel-commandline> ]
[ --board <boardname> ]
[ --base <address> ]
[ --pagesize <pagesize> ]
[ --dt <filename> ]
-o|--output <filename>
make: *** [/home/basel/Desktop/CM12/out/target/product/kyleopen/boot.img] Error 1
#### make failed to build some targets (02:47 (mm:ss)) ####
using my kernel
Good day everyone!
Recently I have decided to try to compile PixelExperience myself, but I ran into some problems.
I have downloaded the ROM source according to the wiki (branch is twelve at https://github.com/PixelExperience/manifest). Everything went according to plan until I tried building the source with mka bacon -j8.
Here's the output of the command from above (using -j1 instead of -j8 in the command above gives the same error):
Code:
21:21:00 ************************************************************
21:21:00 You are building on a machine with 15.6GB of RAM
21:21:00
21:21:00 The minimum required amount of free memory is around 16GB,
21:21:00 and even with that, some configurations may not work.
21:21:00
21:21:00 If you run into segfaults or other errors, try reducing your
21:21:00 -j value.
21:21:00 ************************************************************
vendor/aosp/config/bootanimation.mk:9: warning: "TARGET_BOOT_ANIMATION_RES is undefined, assuming 1080p"
build/make/core/soong_config.mk:199: warning: BOARD_PLAT_PUBLIC_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS instead.
build/make/core/soong_config.mk:200: warning: BOARD_PLAT_PRIVATE_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS instead.
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=12
CUSTOM_VERSION=PixelExperience_raphael-12.1-20220811-1921-UNOFFICIAL
TARGET_PRODUCT=aosp_raphael
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.17.5-xanmod1-x86_64-Gentoo-Linux
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=SQ3A.220705.004
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=vendor/xiaomi/raphael device/xiaomi/raphael hardware/xiaomi hardware/qcom-caf/sm8150 vendor/qcom/opensource/commonsys/display vendor/qcom/opensource/commonsys-intf/display vendor/qcom/opensource/display vendor/qcom/opensource/data-ipa-cfg-mgr vendor/qcom/opensource/dataservices vendor/qcom/opensource/commonsys/packages/apps/Bluetooth vendor/qcom/opensource/commonsys/system/bt/conf vendor/qcom/opensource/commonsys/system/bt/main hardware/nxp hardware/qcom-caf/common/fwk-detect
============================================
[100% 1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
cd "$(dirname "out/soong/.bootstrap/bin/soong_build")" && BUILDER="$PWD/$(basename "out/soong/.bootstrap/bin/soong_build")" && cd
/ && env -i "$BUILDER" --top "$TOP" --out "out/soong" -n "out" -d "out/soong/build.ninja.d" -t -l out/.module_paths/Android.bp.list -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja --available_env out/soong/soong.environment.available --used_env out/soong/soong.environment.used Android.bp
error: frameworks/base/boot/Android.bp:44:1: "platform-bootclasspath" depends on undefined module "WfdCommon"
21:21:50 soong bootstrap failed with: exit status 1
From what I can gather "WfdCommon" is missing or is not registered. After a bit of digging I found out that maybe there should be a file called WfdCommon.jar, so I ran find -name WfdCommon.jar but it didn't find anything.
I want to build for my Xiaomi Mi 9T Pro (codenamed raphael) on Gentoo Linux (x86_64) by the way. I have an Intel Core i5 4590 running on 3.7 Ghz and 16 Gb of DDR3 RAM. Also an additional 149 Gb free space on the source partition (formatted as ext4).
What should I do? Why is it missing? Can I get this file from somewhere else?