Hiemdel issue - Galaxy Tab 3 Q&A, Help & Troubleshooting

I have managed to brick my tab 3. Today i have tried to use heimdel to fix it.
I have it plugged into my MAC and it is in download mode. When I go to utilities and click detect. I get the following output. Any ideas on whats gone wrong? Thanks
Unknown action "detect"
Heimdall v1.2.0, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
Usage: heimdall <action> <arguments> [--verbose] [--no-reboot] [--delay <ms>]
action: flash
arguments:
--repartition --pit <filename> [--factoryfs <filename>]
[--cache <filename>] [--dbdata <filename>] [--primary-boot <filename>]
[--secondary-boot <filename>] [--param <filename>] [--kernel <filename>]
[--modem <filename>] [--normal-boot <filename>] [--system <filename>]
[--user-data <filename>] [--fota <filename>] [--hidden <filename>]
[--movinand <filename>] [--data <filename>] [--ums <filename>]
[--emmc <filename>] [--<partition identifier> <filename>]
or:
[--factoryfs <filename>] [--cache <filename>] [--dbdata <filename>]
[--primary-boot <filename>] [--secondary-boot <filename>]
[--secondary-boot-backup <filename>] [--param <filename>]
[--kernel <filename>] [--recovery <filename>] [--efs <filename>]
[--modem <filename>] [--normal-boot <filename>] [--system <filename>]
[--user-data <filename>] [--fota <filename>] [--hidden <filename>]
[--movinand <filename>] [--data <filename>] [--ums <filename>]
[--emmc <filename>] [--<partition identifier> <filename>]
description: Flashes firmware files to your phone.
WARNING: If you're repartitioning it's strongly recommended you specify
all files at your disposal, including bootloaders.
action: close-pc-screen
description: Attempts to get rid off the "connect phone to PC" screen.
action: dump
arguments: --chip-type <NAND | RAM> --chip-id <integer> --output <filename>
description: Attempts to dump data from the phone corresponding to the
specified chip type and chip ID.
NOTE: Galaxy S phones don't appear to properly support this functionality.
action: print-pit
description: Dumps the PIT file from the connected device and prints it in
a human readable format.
action: help
description: Display this dialogue.

Related

Updated: expand initramfs ramdisc from zImage kernel, supports gzip, lzma, bzip2 (?)

If you are interested in building your own kernels (from the Samsung-released open-source code, or any other source), you may need to extract initramfs ramdiscs from existing kernels.
There is a well-known script to achieve that goal, but it only supports uncompressed and gzip'ed kernels, and it doesn't unpack the CPIO archive for further inspection of the actual initramfs "source code" (the output trace is also not easy to debug when working with "weird" zImages). The original script is explained in the XDA wiki: http://forum.xda-developers.com/wiki/index.php?title=Extract_initramfs_from_zImage.
For my personal convenience, I tweaked the original bash script so I thought I'd share it with the XDA devs. I added support for lzma-compressed initramfs ramdiscs (thanks to koxudaxi for reminding me of the lzma "magic string"), please let me know if you know the "magic string" for bzip2 archives (EDIT: "0x314159265359" 6 bytes "start of block", 4 bytes header at the beginning...experimental untested support is now available in the script below).
Note that the latest Samfirmware ROMs include encrypted boot.bin and Sbl.bin bootloaders, but I'm not sure how the zImage kernels are encoded...so this script may not work.
Also note that zImage files patched with z4mod require further decoding work, see the XDA wiki page mentioned above for instructions.
Code:
#!/bin/bash
zImage=$1
read -rp "Enter any text to skip extraction (assumes /tmp/kernel2.img already exists): " input
if [ ${input}" " = " " ]; then
echo "==> deleting /tmp/kernel1.img"
rm /tmp/kernel1.img
echo "==> deleting /tmp/kernel2.img"
rm /tmp/kernel2.img
echo "==> searching for gzip header in $zImage"
skip=`grep -P -a -b -m 1 --only-matching $'\x1F\x8B\x08' $zImage | cut -f 1 -d :`
echo "==> found gzip header at $skip"
echo "==> unzipping $zImage to /tmp/kernel1.img"
dd if=$zImage bs=1 skip=$skip | gunzip > /tmp/kernel1.img
echo "==> searching for gzip header in /tmp/kernel1.img"
poszip=`grep -P -a -b -m 1 --only-matching $'\x1F\x8B\x08' /tmp/kernel1.img | cut -f 1 -d :`
if [ ! $poszip = "" ]; then
echo "==> gzip header at $poszip in /tmp/kernel1.img"
echo "==> extracting /tmp/kernel2.img from /tmp/kernel1.img using gunzip"
dd if=/tmp/kernel1.img bs=1 skip=$poszip | gunzip > /tmp/kernel2.img
else
echo "==> no gzip header in /tmp/kernel1.img"
echo "==> searching for lzma header in /tmp/kernel1.img"
poslzma=`grep -P -a -b -m 1 --only-matching '\x{5D}\x{00}\x..\x{FF}\x{FF}\x{FF}\x{FF}\x{FF}\x{FF}' /tmp/kernel1.img | cut -f 1 -d :`
if [ ! $poslzma = "" ]; then
echo "==> lzma header at $poslzma in /tmp/kernel1.img"
echo "==> extracting /tmp/kernel2.img from /tmp/kernel1.img using lzma"
dd if=/tmp/kernel1.img bs=1 skip=$poslzma | unlzma > /tmp/kernel2.img
else
echo "==> no lzma header in /tmp/kernel1.img"
echo "==> searching for bzip2 header in /tmp/kernel1.img"
posbzip2=`grep -P -a -b -m 1 --only-matching $'\x{42}\x{5A}\x{68}\x{39}\x{31}\x{41}\x{59}\x{26}\ x{53}\x{59}' /tmp/kernel1.img | cut -f 1 -d :`
if [ ! $posbzip2 = "" ]; then
echo "==> bzip2 header at $posbzip2 in /tmp/kernel1.img"
posbzip2=$((posbzip2 - 4))
echo "==> adjusted bzip2 header with -4 bytes offset: $posbzip2"
echo "==> extracting /tmp/kernel2.img from /tmp/kernel1.img using bzip2"
dd if=/tmp/kernel1.img bs=1 skip=$posbzip2 | bunzip2 > /tmp/kernel2.img
else
echo "==> no bzip2 header in /tmp/kernel1.img"
echo "==> assuming no compression for /tmp/kernel1.img, copying to /tmp/kernel2.img"
cp /tmp/kernel1.img /tmp/kernel2.img
fi
fi
fi
fi
# '070701' == $'\x30\x37\x30' == '\x{30}\x{37}\x{30}'
echo "==> searching for cpio header in /tmp/kernel2.img"
start=`grep -a -b -m 1 --only-matching '070701' /tmp/kernel2.img | head -1 | cut -f 1 -d :`
echo "==> cpio header at $start in /tmp/kernel2.img"
echo "==> searching for cpio footer in /tmp/kernel2.img"
end=`grep -a -b -m 1 --only-matching 'TRAILER!!!' /tmp/kernel2.img | head -1 | cut -f 1 -d :`
echo "==> cpio footer at $end in /tmp/kernel2.img"
# 14 bytes = length of "TRAILER!!!" (zero-terminated string) + padding => fixes premature end of file warning in CPIO
end=$((end + 14))
echo "==> adjusted cpio footer with 14 bytes offset: $end"
count=$((end - start))
echo "==> cpio size is $count bytes ($end - $start)"
if (($count < 0)); then
echo "==> error in cpio positions, aborting"
exit
fi
cpio_file="initramfs.cpio"
cpio_dir=`echo "${cpio_file}.expanded"`
cpio_ls=`echo "${cpio_file}.ls"`
echo "==> deleting ${zImage}_${cpio_file}"
rm ${zImage}_${cpio_file}
echo "==> deleting ${zImage}_${cpio_dir}"
rm -r ${zImage}_${cpio_dir}
echo "==> deleting ${zImage}_${cpio_ls}"
rm -r ${zImage}_${cpio_ls}
echo "==> extracting initramfs ramdisc from /tmp/kernel2.img to ${zImage}_${cpio_file}"
dd if=/tmp/kernel2.img bs=1 skip=$start count=$count > ${zImage}_${cpio_file}
echo "==> expanding ${zImage}_${cpio_file} into ${zImage}_${cpio_dir} directory"
mkdir ${zImage}_${cpio_dir}
curdir=`pwd`
(cd ${zImage}_${cpio_dir} && cpio --quiet -id --no-absolute-filenames < ${curdir}/${zImage}_${cpio_file})
echo "==> generating ls-like file list in ${zImage}_${cpio_ls}"
cpio --quiet -tvnF ${zImage}_${cpio_file} > ${zImage}_${cpio_ls}
echo "==> DONE."
- heads-up - nice rewrite/cleanup by Mistadman:
https://github.com/mistadman/Extract-Kernel-Initramfs/

[INFO][DEV] Wildfire S (marvel) partition information/recovery commands

Hello all,
Upon porting sense 4 I needed to mount a certain partition via a command that needed the exact dev block, so I decided to find out using adb and post my results here for other devs to see:
Filesystem........................Size......Used........Available......Use%........Mounted on
tmpfs...........................209.0M......48.0K.........209.0M...........0%................/dev
/dev/block/mmcblk0p1....861.1M....739.5M.........121.6M.........86%............/sdcard <-- May vary
/dev/block/mtdblock4.......35.0M.......1.3M...........33.7M...........4%............./cache
/dev/block/mmcblk0p2..1003.6M....330.8M..........672.8M.........33%............/sd-ext <-- May vary
/dev/block/mtdblock3.....269.4M....165.0M..........104.4M.........61%.........../system
/dev/block/mtdblock5.....150.0M.......1.5M..........148.5M...........1%............../data
I hope somebody finds this helpful. I was going to post this is general, but since it is not a question and is directed for developers like myself (and this is where I would look for this info TBH) I posted it here.
Okay guys, have fun
Here is a list of commands you can use in recovery/installation scripts.
[ flash_lock mesg setserial
[[ flash_unlock mkdir setsid
adbd flashcp mkdosfs sh
adjtimex flock mke2fs sha1sum
arp fold mkfifo sha256sum
ash free mkfs.ext2 sha512sum
awk freeramdisk mkfs.vfat sleep
base64 fs mknod sort
basename fsync mkswap split
bbconfig ftpget mktemp stat
bbinstall.sh ftpput modinfo strings
blkid fuser modprobe stty
blockdev getopt more sum
brctl grep mount swapoff
bunzip2 groups mountpoint swapon
busybox gunzip mpstat sync
bzcat gzip mv sysctl
bzip2 halt nanddump tac
cal head nandwrite tail
cat hexdump nbd-client tar
catv htcbatt nc taskset
chattr htcdumlock netstat teamwin
chgrp id nice tee
chmod ifconfig nohup telnet
choice_fn insmod nslookup telnetd
chown install ntpd test
chroot iostat od tftp
clear ip offmode_charging tftpd
cmp kill parted time
comm killall patch timeout
cp killall5 pgrep top
cpio less pidof touch
crond libbmlutils.so pigz tr
crontab libc.so ping traceroute
cut libcutils.so pipe_progress true
date libdl.so pkill ttysize
dc libext2_blkid.so pmap tune2fs
dd libext2_com_err.so power_test ueventd
depmod libext2_e2p.so poweroff umount
detect_key libext2_profile.so printenv uname
devmem libext2_uuid.so printf uncompress
df libext2fs.so ps unexpand
diff libflashutils.so pstree uniq
dirname liblog.so pwd unix2dos
dmesg libm.so pwdx unlzma
dnsd libmmcutils.so rdev unlzop
dos2unix libstdc++.so readlink unpigz
du libstlport.so realpath unxz
dump_image libz.so reboot unzip
e2fsck linker recovery uptime
echo ln renice usleep
ed losetup reset uudecode
egrep ls resize uuencode
env lsattr rev vi
erase_image lsmod rm watch
expand lsof rmdir wc
expr lsusb rmmod wget
false lzcat route which
fbsplash lzma run-parts whoami
fdisk lzop rx xargs
fgrep lzopcat sdparted xz
find man sed xzcat
fix_permissions.sh md5check.sh seq yes
flash_image md5sum setconsole zcat

Classpath error while building LineageOS

I've been trying to build LineageOS on my laptop, but I get this error:
Code:
Fatal Error: Unable to find package java.lang in classpath or bootclasspath
Here is a part of the log:
Code:
including vendor/cm/vendorsetup.sh
Looking for dependencies in device/xiaomi/kenzo
Looking for dependencies in device/xiaomi/msm8956-common
Looking for dependencies in device/qcom/common
Dependencies file not found, bailing out.
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=7.1.2
LINEAGE_VERSION=14.1-20170819-UNOFFICIAL-kenzo
TARGET_PRODUCT=lineage_kenzo
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53.a57
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.12.4-1-ARCH-x86_64-with-glibc2.2.5
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=NJH47F
OUT_DIR=/home/vinayak/android/lineage/out
============================================
make: Entering directory '/home/vinayak/android/lineage'
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=7.1.2
LINEAGE_VERSION=14.1-20170819-UNOFFICIAL-kenzo
TARGET_PRODUCT=lineage_kenzo
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53.a57
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.12.4-1-ARCH-x86_64-with-glibc2.2.5
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=NJH47F
OUT_DIR=/home/vinayak/android/lineage/out
============================================
Running kati to generate build-lineage_kenzo.ninja...
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=7.1.2
LINEAGE_VERSION=14.1-20170819-UNOFFICIAL-kenzo
TARGET_PRODUCT=lineage_kenzo
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53.a57
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.12.4-1-ARCH-x86_64-with-glibc2.2.5
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=NJH47F
OUT_DIR=/home/vinayak/android/lineage/out
============================================
build/core/binary.mk:37: camera.msm8952 uses kernel headers, but does not depend on them!
build/core/binary.mk:1253: external/deqp/Android.mk: libdeqp: Unused source files: \
build/core/binary.mk:1253: external/deqp/Android.mk: libdeqp: Unused source files: \
build/core/binary.mk:1253: external/pdfium/third_party/pdfiumbigint.mk: libpdfiumbigint: Unused source files: bigint/BigInteger.cc bigint/BigIntegerUtils.cc bigint/BigUnsigned.cc bigint/BigUnsignedInABase.cc
build/core/binary.mk:1253: external/pdfium/third_party/pdfiumbigint.mk: libpdfiumbigint: Unused source files: bigint/BigInteger.cc bigint/BigIntegerUtils.cc bigint/BigUnsigned.cc bigint/BigUnsignedInABase.cc
./external/speex/Android.mk:56: TODOArm64: enable neon in libspeex
build/core/package_internal.mk:143: Empty argument supplied to find-subdir-assets
build/core/package_internal.mk:143: Empty argument supplied to find-subdir-assets
Starting build with ninja
ninja: Entering directory `.'
[ 0% 6/49508] Aidl: framework <= frameworks/base/telephony/java/com/android/internal/telephony/ISmsSecurityAgent.aidl
[ 0% 7/49508] Aidl: framework <= frameworks/base/telephony/java/com/android/internal/telephony/ISmsSecurityService.aidl
[ 0% 8/49508] Aidl: org.cyanogenmod.platform.sdk <= vendor/cmsdk/sdk/src/java/cyanogenmod/themes/IThemeProcessingListener.aidl
[ 0% 9/49508] Aidl: org.cyanogenmod.platform.sdk <= vendor/cmsdk/sdk/src/java/cyanogenmod/weather/IRequestInfoListener.aidl
[ 0% 10/49508] Aidl: org.cyanogenmod.platform.internal <= vendor/cmsdk/sdk/src/java/org/cyanogenmod/internal/themes/IIconCacheManager.aidl
[ 0% 11/49508] Aidl: org.cyanogenmod.platform.sdk <= vendor/cmsdk/sdk/src/java/cyanogenmod/themes/IThemeService.aidl
[ 0% 12/49508] Aidl: org.cyanogenmod.platform.sdk <= vendor/cmsdk/sdk/src/java/cyanogenmod/media/ICMAudioService.aidl
[ 0% 13/49508] Aidl: org.cyanogenmod.platform.sdk <= vendor/cmsdk/sdk/src/java/cyanogenmod/weather/ICMWeatherManager.aidl
[ 0% 14/49508] target Java: framework-protos (/home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes)
FAILED: /bin/bash -c "(rm -f /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes-full-debug.jar ) && (rm -rf /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes ) && (mkdir -p /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/ ) && (mkdir -p /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes ) && (for f in /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/libprotobuf-java-nano_intermediates/javalib.jar; do if [ ! -f \$f ]; then echo Missing file \$f; exit 1; fi; unzip -qo \$f -d /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes; done ) && (rm -rf /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/META-INF ) && (rm -f /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list ) && (touch /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list ) && (if [ -d \"/home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/src\" ]; then find /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/src -name '*.java' -and -not -name '.*' >> /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list; fi ) && (tr ' ' '\\n' < /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list | build/tools/normalize_path.py | sort -u > /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list-uniq ) && (if [ -s /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list-uniq ] ; then javac -J-Xmx1024M -Xmaxerrs 9999999 -encoding UTF-8 -bootclasspath \"\" -classpath /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jar:/home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/core-oj_intermediates/classes.jar:/home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/libprotobuf-java-nano_intermediates/javalib.jar -extdirs \"\" -d /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes -g -source 1.8 -target 1.8 \\@/home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list-uniq || ( rm -rf /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes ; exit 41 ) fi ) && (rm -f /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list ) && (rm -f /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes/java-source-list-uniq ) && (jar -cf /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes-full-debug.jar -C /home/vinayak/android/lineage/out/target/common/obj/JAVA_LIBRARIES/framework-protos_intermediates/classes . )"
Fatal Error: Unable to find package java.lang in classpath or bootclasspath
[ 0% 14/49508] host C: libexpat <= external/expat/lib/xmltok.c
[ 0% 14/49508] host C: libexpat <= external/expat/lib/xmlparse.c
[ 0% 14/49508] host Java: rmtypedefs (/home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/rmtypedefs_intermediates/classes)
[ 0% 14/49508] host Java: jarjar (/home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/jarjar_intermediates/classes)
[ 0% 14/49508] host Java: doclava (/home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes)
FAILED: /bin/bash -c "(rm -f /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar ) && (rm -rf /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes ) && (mkdir -p /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/ ) && (mkdir -p /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes ) && (for f in /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/tagsouplib_intermediates/javalib.jar; do if [ ! -f \$f ]; then echo Missing file \$f; exit 1; fi; unzip -qo \$f -d /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes; done ) && (rm -rf /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/META-INF ) && (rm -f /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list ) && (touch /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list ) && (echo -n 'external/doclava/src/com/google/doclava/AnnotationInstanceInfo.java external/doclava/src/com/google/doclava/AnnotationValueInfo.java external/doclava/src/com/google/doclava/AtLinksNavTree.java external/doclava/src/com/google/doclava/AttrTagInfo.java external/doclava/src/com/google/doclava/AttributeInfo.java external/doclava/src/com/google/doclava/ClassInfo.java external/doclava/src/com/google/doclava/ClearPage.java external/doclava/src/com/google/doclava/CodeTagInfo.java external/doclava/src/com/google/doclava/Comment.java external/doclava/src/com/google/doclava/ContainerInfo.java external/doclava/src/com/google/doclava/Converter.java external/doclava/src/com/google/doclava/DocFile.java external/doclava/src/com/google/doclava/DocInfo.java external/doclava/src/com/google/doclava/Doclava.java external/doclava/src/com/google/doclava/Doclava2.java external/doclava/src/com/google/doclava/DoclavaDiff.java external/doclava/src/com/google/doclava/Errors.java external/doclava/src/com/google/doclava/FederatedSite.java external/doclava/src/com/google/doclava/FederationTagger.java external/doclava/src/com/google/doclava/FieldInfo.java external/doclava/src/com/google/doclava/Hierarchy.java external/doclava/src/com/google/doclava/InfoBuilder.java external/doclava/src/com/google/doclava/InheritedTags.java external/doclava/src/com/google/doclava/JarUtils.java external/doclava/src/com/google/doclava/KeywordEntry.java external/doclava/src/com/google/doclava/LinkReference.java external/doclava/src/com/google/doclava/LiteralTagInfo.java external/doclava/src/com/google/doclava/MemberInfo.java external/doclava/src/com/google/doclava/MethodInfo.java external/doclava/src/com/google/doclava/NavTree.java external/doclava/src/com/google/doclava/PackageInfo.java external/doclava/src/com/google/doclava/PageMetadata.java external/doclava/src/com/google/doclava/ParamTagInfo.java external/doclava/src/com/google/doclava/ParameterInfo.java external/doclava/src/com/google/doclava/ParsedTagInfo.java external/doclava/src/com/google/doclava/Proofread.java external/doclava/src/com/google/doclava/Resolution.java external/doclava/src/com/google/doclava/Resolvable.java external/doclava/src/com/google/doclava/SampleCode.java external/doclava/src/com/google/doclava/SampleTagInfo.java external/doclava/src/com/google/doclava/Scoped.java external/doclava/src/com/google/doclava/SeeTagInfo.java external/doclava/src/com/google/doclava/SinceTagger.java external/doclava/src/com/google/doclava/Sorter.java external/doclava/src/com/google/doclava/SourcePositionInfo.java external/doclava/src/com/google/doclava/Stubs.java external/doclava/src/com/google/doclava/TagInfo.java external/doclava/src/com/google/doclava/TextTagInfo.java external/doclava/src/com/google/doclava/ThrowsTagInfo.java external/doclava/src/com/google/doclava/TodoFile.java external/doclava/src/com/google/doclava/TypeInfo.java external/doclava/src/com/google/doclava/apicheck/AbstractMethodInfo.java external/doclava/src/com/google/doclava/apicheck/ApiCheck.java external/doclava/src/com/google/doclava/apicheck/ApiFile.java external/doclava/src/com/google/doclava/apicheck/ApiInfo.java external/doclava/src/com/google/doclava/apicheck/ApiParseException.java external/doclava/src/com/google/doclava/apicheck/XmlApiFile.java external/doclava/src/com/google/doclava/parser/JavaLexer.java external/doclava/src/com/google/doclava/parser/JavaParser.java ' >> /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list ) && (if [ -d \"/home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/src\" ]; then find /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/src -name '*.java' -and -not -name '.*' >> /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list; fi ) && (tr ' ' '\\n' < /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list | build/tools/normalize_path.py | sort -u > /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list-uniq ) && (if [ -s /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list-uniq ] ; then javac -J-Xmx1024M -Xmaxerrs 9999999 -encoding UTF-8 -classpath /home/vinayak/android/lineage/out/host/linux-x86/framework/antlr-runtime.jar:/home/vinayak/android/lineage/out/host/linux-x86/framework/guavalib.jar:/home/vinayak/android/lineage/out/host/linux-x86/framework/jsilver.jar:/home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/tagsouplib_intermediates/javalib.jar:/usr/lib/jvm/java-8-openjdk/bin/../lib/tools.jar -extdirs \"\" -d /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes -g -source 1.8 -target 1.8 \\@/home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list-uniq || ( rm -rf /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes ; exit 41 ) fi ) && (rm -f /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list ) && (rm -f /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes/java-source-list-uniq ) && (jar -cf /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar -C /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes . ) && (rm -f /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar.jar-arg-list ) && (touch /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar.jar-arg-list ) && (echo -n '-C \"external/doclava/res\" \"assets/customizations/assets/customizations.css\" -C \"external/doclava/res\" \"assets/customizations/assets/customizations.js\" -C \"external/doclava/res\" \"assets/customizations/customizations.cs\" -C \"external/doclava/res\" \"assets/templates/assets/doclava-developer-core.css\" -C \"external/doclava/res\" \"assets/templates/assets/doclava-developer-docs.css\" -C \"external/doclava/res\" \"assets/templates/assets/doclava-developer-docs.js\" -C \"external/doclava/res\" \"assets/templates/assets/doclava-developer-reference.js\" -C \"external/doclava/res\" \"assets/templates/assets/images/bg_fade.jpg\" -C \"external/doclava/res\" \"assets/templates/assets/images/bg_logo.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/body-gradient-tab.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/body-gradient.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/grad-rule-qv.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/hr_gray_main.jpg\" -C \"external/doclava/res\" \"assets/templates/assets/images/hr_gray_side.jpg\" -C \"external/doclava/res\" \"assets/templates/assets/images/left_off.jpg\" -C \"external/doclava/res\" \"assets/templates/assets/images/left_on.jpg\" -C \"external/doclava/res\" \"assets/templates/assets/images/preliminary.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/resizable-e.gif\" -C \"external/doclava/res\" \"assets/templates/assets/images/resizable-e2.gif\" -C \"external/doclava/res\" \"assets/templates/assets/images/resizable-eg.gif\" -C \"external/doclava/res\" \"assets/templates/assets/images/resizable-s.gif\" -C \"external/doclava/res\" \"assets/templates/assets/images/resizable-s2.gif\" -C \"external/doclava/res\" \"assets/templates/assets/images/resizable-sg.gif\" -C \"external/doclava/res\" \"assets/templates/assets/images/right_off.jpg\" -C \"external/doclava/res\" \"assets/templates/assets/images/right_on.jpg\" -C \"external/doclava/res\" \"assets/templates/assets/images/sidenav-rule.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/spacer.gif\" -C \"external/doclava/res\" \"assets/templates/assets/images/triangle-closed-small.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/triangle-closed.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/triangle-opened-small.png\" -C \"external/doclava/res\" \"assets/templates/assets/images/triangle-opened.png\" -C \"external/doclava/res\" \"assets/templates/assets/jquery-history.js\" -C \"external/doclava/res\" \"assets/templates/assets/jquery-resizable.min.js\" -C \"external/doclava/res\" \"assets/templates/assets/prettify.js\" -C \"external/doclava/res\" \"assets/templates/assets/search_autocomplete.js\" -C \"external/doclava/res\" \"assets/templates/assets/style.css\" -C \"external/doclava/res\" \"assets/templates/assets/triangle-none.gif\" -C \"external/doclava/res\" \"assets/templates/at_links_navtree.cs\" -C \"external/doclava/res\" \"assets/templates/class.cs\" -C \"external/doclava/res\" \"assets/templates/classes.cs\" -C \"external/doclava/res\" \"assets/templates/components.cs\" -C \"external/doclava/res\" \"assets/templates/components/api_filter.cs\" -C \"external/doclava/res\" \"assets/templates/components/left_nav.cs\" -C \"external/doclava/res\" \"assets/templates/components/masthead.cs\" -C \"external/doclava/res\" \"assets/templates/components/search_box.cs\" -C \"external/doclava/res\" \"assets/templates/data.hdf\" -C \"external/doclava/res\" \"assets/templates/designpage.cs\" -C \"external/doclava/res\" \"assets/templates/diff.cs\" -C \"external/doclava/res\" \"assets/templates/docpage.cs\" -C \"external/doclava/res\" \"assets/templates/doctype.cs\" -C \"external/doclava/res\" \"assets/templates/footer.cs\" -C \"external/doclava/res\" \"assets/templates/head_tag.cs\" -C \"external/doclava/res\" \"assets/templates/header.cs\" -C \"external/doclava/res\" \"assets/templates/hierarchy.cs\" -C \"external/doclava/res\" \"assets/templates/index.cs\" -C \"external/doclava/res\" \"assets/templates/jd_lists.cs\" -C \"external/doclava/res\" \"assets/templates/jd_lists_unified.cs\" -C \"external/doclava/res\" \"assets/templates/keywords.cs\" -C \"external/doclava/res\" \"assets/templates/lists.cs\" -C \"external/doclava/res\" \"assets/templates/macros.cs\" -C \"external/doclava/res\" \"assets/templates/navtree_data.cs\" -C \"external/doclava/res\" \"assets/templates/nosidenavpage.cs\" -C \"external/doclava/res\" \"assets/templates/package-list.cs\" -C \"external/doclava/res\" \"assets/templates/package.cs\" -C \"external/doclava/res\" \"assets/templates/packages.cs\" -C \"external/doclava/res\" \"assets/templates/sample.cs\" -C \"external/doclava/res\" \"assets/templates/sampleindex.cs\" -C \"external/doclava/res\" \"assets/templates/timestamp.cs\" -C \"external/doclava/res\" \"assets/templates/todo.cs\" -C \"external/doclava/res\" \"assets/templates/trailer.cs\" -C \"external/doclava/res\" \"assets/templates/yaml_navtree.cs\" ' >> /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar.jar-arg-list ) && (jar uf /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar @/home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar.jar-arg-list ) && (rm -f /home/vinayak/android/lineage/out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes-full-debug.jar.jar-arg-list )"
external/doclava/src/com/google/doclava/AnnotationInstanceInfo.java:19: error: package com.google.clearsilver.jsilver.data does not exist
import com.google.clearsilver.jsilver.data.Data;
^
external/doclava/src/com/google/doclava/ClassInfo.java:19: error: package com.google.clearsilver.jsilver.data does not exist
import com.google.clearsilver.jsilver.data.Data;
^
external/doclava/src/com/google/doclava/DocInfo.java:19: error: package com.google.clearsilver.jsilver.data does not exist
import com.google.clearsilver.jsilver.data.Data;
^
external/doclava/src/com/google/doclava/AnnotationInstanceInfo.java:127: error: cannot find symbol
public static void makeLinkListHDF(Data data, String base, AnnotationInstanceInfo[] annotations) {
^
symbol: class Data
location: class AnnotationInstanceInfo
external/doclava/src/com/google/doclava/TypeInfo.java:19: error: package com.google.clearsilver.jsilver.data does not exist
import com.google.clearsilver.jsilver.data.Data;
.
.
.
.
.
symbol: class BitSet
location: class JavaParser
external/doclava/src/com/google/doclava/TodoFile.java:67: error: cannot find symbol
Data data = Doclava.makeHDF();
^
symbol: class Data
location: class TodoFile
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
10844 errors
ninja: build stopped: subcommand failed.
make: Leaving directory '/home/vinayak/android/lineage'
#### make failed to build some targets (53 seconds) ####
va6996 said:
I've been trying to build LineageOS on my laptop, but I get this error...
Click to expand...
Click to collapse
The following link reflects a possible solution that is similar to your error within it.
https://forum.xda-developers.com/showthread.php?t=2259929&page=3
Good Luck!
~~~~~~~~~~~~~~~
I Am The Egg Man,
They Are The Egg Men.
I Am The Walrus!
Coo Coo Cachoo!
Ibuprophen said:
The following link reflects a possible solution that is similar to your error within it.
https://forum.xda-developers.com/showthread.php?t=2259929&page=3
Good Luck!
~~~~~~~~~~~~~~~
I Am The Egg Man,
They Are The Egg Men.
I Am The Walrus!
Coo Coo Cachoo!
Click to expand...
Click to collapse
Thanks a lot! I also realized I had to make clean because it wasn't removing the regenerated files.
va6996 said:
Thanks a lot! I also realized I had to make clean because it wasn't removing the regenerated files.
Click to expand...
Click to collapse
There's also a bunch of threads out there that are very helpful for building ROM's.
Here's just a few of them that could help you out too in case the other link may not work out for you.
[NEW][GUIDE] How-to build LineageOS 14.1 [SIMPLE][USER-FRIENDLY] by FSadino
[HOW TO] Beginners Guide to Android ROM Development by isidromxz
[GUIDE][COMPLETE] Android ROM Development From Source To End by jackeagle
To be honest, I've got an understanding on ROM development but, I've never, personally, developed any. I've only really stuck to developing apps.
Good Luck!
~~~~~~~~~~~~~~~
I Am The Egg Man,
They Are The Egg Men.
I Am The Walrus!
Coo Coo Cachoo!
Ibuprophen said:
There's also a bunch of threads out there that are very helpful for building ROM's.
Here's just a few of them that could help you out too in case the other link may not work out for you.
[NEW][GUIDE] How-to build LineageOS 14.1 [SIMPLE][USER-FRIENDLY] by FSadino
[HOW TO] Beginners Guide to Android ROM Development by isidromxz
[GUIDE][COMPLETE] Android ROM Development From Source To End by jackeagle
To be honest, I've got an understanding on ROM development but, I've never, personally, developed any. I've only really stuck to developing apps.
Good Luck!
~~~~~~~~~~~~~~~
I Am The Egg Man,
They Are The Egg Men.
I Am The Walrus!
Coo Coo Cachoo!
Click to expand...
Click to collapse
Thanks a lot! I was finally able to build it. However, I see that ccache isn't working for me for some reason. The ccache directory size is just 56MB. The build takes the same amount of time ~5hr(on my laptop). I've even set the cache size as 70GB. However, my out directory is 55.7GB. What am I doing wrong?
Probable relevant parts:
Code:
[ 99% 40898/40912] Target cache fs ima...age/out/target/product/kenzo/cache.img
BuildImage: in_dir = /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache, out_file = /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache.img
fs type is not ext4
Running: mkuserimg.sh -s /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache.img ext4 cache 268435456 -D /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system -L cache /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin
make_ext4fs -s -T -1 -S /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin -L cache -l 268435456 -a cache /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache.img /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system
Creating filesystem with parameters:
Size: 268435456
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 1024
Label: cache
Blocks: 65536
Block groups: 2
Reserved block group size: 15
Created filesystem with 11/16384 inodes and 2089/65536 blocks
Running ['mkuserimg.sh', '-s', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache.img', 'ext4', 'cache', '268435456', '-D', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system', '-L', 'cache', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin'] command, exit code = 0
/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/cache.img maxsize=273985536 blocksize=135168 total=6398184 reserve=2838528
[ 99% 40904/40912] Construct recovery from boot
failed to reconstruct target deflate chunk 1 [(null)]; treating as normal
chunk 0: type 0 start 0 len 9041930
chunk 1: type 2 start 9041930 len 4148992
chunk 2: type 0 start 10711741 len 1347
Construct patches for 3 chunks...
patch 0 is 205 bytes (of 9041930)
patch 1 is 5082118 bytes (of 1669811)
patch 2 is 152 bytes (of 1347)
chunk 0: normal ( 0, 9041930) 205
chunk 1: deflate ( 9041930, 7662273) 5082118 (null)
chunk 2: normal ( 16704203, 1333) 152
[ 99% 40904/40912] Target userdata fs .../out/target/product/kenzo/userdata.img
BuildImage: in_dir = /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/data, out_file = /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/userdata.img
fs type is not ext4
Running: mkuserimg.sh -s /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/data /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/userdata.img ext4 data 26838785024 -D /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system -L data /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin
make_ext4fs -s -T -1 -S /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin -L data -l 26838785024 -a data /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/userdata.img /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/data /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system
Creating filesystem with parameters:
Size: 26838781952
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 32768
Label: data
Blocks: 6552437
Block groups: 200
Reserved block group size: 1024
Created filesystem with 38/1638400 inodes and 150074/6552437 blocks
Running ['mkuserimg.sh', '-s', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/data', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/userdata.img', 'ext4', 'data', '26838785024', '-D', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system', '-L', 'data', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin'] command, exit code = 0
/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/userdata.img maxsize=27400671936 blocksize=135168 total=155432808 reserve=276824064
[ 99% 40908/40912] Target system fs im...G/systemimage_intermediates/system.img
BuildImage: in_dir = /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system, out_file = /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/obj/PACKAGING/systemimage_intermediates/system.img
fs type is not ext4
Running: mkuserimg.sh -s /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/obj/PACKAGING/systemimage_intermediates/system.img ext4 system 2684354560 -D /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system -L system /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin
make_ext4fs -s -T -1 -S /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin -L system -l 2684354560 -a system /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/obj/PACKAGING/systemimage_intermediates/system.img /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system
Creating filesystem with parameters:
Size: 2684354560
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 10240
Label: system
Blocks: 655360
Block groups: 20
Reserved block group size: 159
Created filesystem with 3340/163840 inodes and 292571/655360 blocks
Running ['mkuserimg.sh', '-s', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/obj/PACKAGING/systemimage_intermediates/system.img', 'ext4', 'system', '2684354560', '-D', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system', '-L', 'system', '/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/root/file_contexts.bin'] command, exit code = 0
[ 99% 40909/40912] Install system fs i...ge/out/target/product/kenzo/system.img
/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/system.img+/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=2740531200 blocksize=135168 total=1160426351 reserve=27709440
[ 99% 40910/40912] Package target file...eage_kenzo-target_files-d4b338b746.zip
using prebuilt recovery.img from BOOTABLE_IMAGES...
using prebuilt boot.img from BOOTABLE_IMAGES...
putting script in bin/install-recovery.sh
running: unzip -o -q /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/obj/PACKAGING/target_files_intermediates/lineage_kenzo-target_files-d4b338b746.zip -d /tmp/targetfiles-cmkmqI
++++ boot ++++
using prebuilt boot.img from BOOTABLE_IMAGES...
++++ recovery ++++
using prebuilt recovery.img from BOOTABLE_IMAGES...
++++ recovery (two-step image) ++++
building image from target_files RECOVERY...
running: mkbootfs -f /tmp/targetfiles-cmkmqI/META/recovery_filesystem_config.txt /tmp/targetfiles-cmkmqI/RECOVERY/RAMDISK
running: minigzip
running: /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/bin/mkbootimg --kernel /tmp/targetfiles-cmkmqI/RECOVERY/kernel --cmdline androidboot.hardware=qcom ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 ramoops_memreserve=4M buildvariant=userdebug --base 0x80000000 --pagesize 2048 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 --os_version 7.1.2 --os_patch_level 2017-08-05 --ramdisk /tmp/tmpFzhpAo --output /tmp/tmpBQOvrL
++++ system ++++
creating system.img...
BuildImage: in_dir = /tmp/targetfiles-cmkmqI/system, out_file = /tmp/system-d7Wo62.img
fs type is not ext4
Running: mkuserimg.sh -s /tmp/targetfiles-cmkmqI/system /tmp/system-d7Wo62.img ext4 system 2684354560 -T 1230748200 -C /tmp/targetfiles-cmkmqI/META/filesystem_config.txt -B /tmp/system-blocklist-OsEPwM.map -L system /tmp/targetfiles-cmkmqI/META/file_contexts.bin
make_ext4fs -s -T 1230748200 -S /tmp/targetfiles-cmkmqI/META/file_contexts.bin -C /tmp/targetfiles-cmkmqI/META/filesystem_config.txt -B /tmp/system-blocklist-OsEPwM.map -L system -l 2684354560 -a system /tmp/system-d7Wo62.img /tmp/targetfiles-cmkmqI/system
loaded 3332 fs_config entries
Creating filesystem with parameters:
Size: 2684354560
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 10240
Label: system
Blocks: 655360
Block groups: 20
Reserved block group size: 159
Created filesystem with 3342/163840 inodes and 292951/655360 blocks
Running ['mkuserimg.sh', '-s', '/tmp/targetfiles-cmkmqI/system', '/tmp/system-d7Wo62.img', 'ext4', 'system', '2684354560', '-T', '1230748200', '-C', '/tmp/targetfiles-cmkmqI/META/filesystem_config.txt', '-B', '/tmp/system-blocklist-OsEPwM.map', '-L', 'system', '/tmp/targetfiles-cmkmqI/META/file_contexts.bin'] command, exit code = 0
++++ userdata ++++
creating userdata.img...
BuildImage: in_dir = /tmp/tmpbdwQbq/data, out_file = /tmp/tmpucca6X
fs type is not ext4
Running: mkf2fsuserimg.sh /tmp/tmpucca6X 26838785024
in mkf2fsuserimg.sh PATH=/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/bin/:/usr/lib/jvm/java-8-openjdk/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/development/scripts:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/devtools/tools:/run/media/vinayak/6FA49F144DC575A7/android/lineage/external/selinux/prebuilts/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/android-emulator/linux-x86_64:/home/vinayak/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
make_f2fs -l 26838785024 /tmp/tmpucca6X
Info: zone aligned segment0 blkaddr: 512
Info: Overprovision ratio = 1.250%
Info: Overprovision segments = 323 (GC reserved = 167)
Running ['mkf2fsuserimg.sh', '/tmp/tmpucca6X', '26838785024'] command, exit code = 0
userdata size (14) is 0.00% of limit (26838785024)
++++ extrauserdata ++++
++++ cache ++++
creating cache.img...
BuildImage: in_dir = /tmp/tmpQp6j5q/cache, out_file = /tmp/tmpPUYQ9G
fs type is not ext4
Running: mkf2fsuserimg.sh /tmp/tmpPUYQ9G 268435456
in mkf2fsuserimg.sh PATH=/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/bin/:/usr/lib/jvm/java-8-openjdk/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/development/scripts:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/devtools/tools:/run/media/vinayak/6FA49F144DC575A7/android/lineage/external/selinux/prebuilts/bin:/run/media/vinayak/6FA49F144DC575A7/android/lineage/prebuilts/android-emulator/linux-x86_64:/home/vinayak/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
make_f2fs -l 268435456 /tmp/tmpPUYQ9G
Info: zone aligned segment0 blkaddr: 512
Info: Overprovision ratio = 15.000%
Info: Overprovision segments = 35 (GC reserved = 21)
Running ['mkf2fsuserimg.sh', '/tmp/tmpPUYQ9G', '268435456'] command, exit code = 0
cache size (14) is 0.00% of limit (268435456)
done.
[ 99% 40911/40912] Package OTA: /run/m...kenzo/lineage_kenzo-ota-d4b338b746.zip
unzipping target target-files...
running: unzip -o -q /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/obj/PACKAGING/target_files_intermediates/lineage_kenzo-target_files-d4b338b746.zip -d /tmp/targetfiles-Rnr8Wy
--- target info ---
blockimgdiff_versions = (str) 1,2,3,4
blocksize = (int) 131072
boot_size = (int) 67108864
build.prop = (dict) {'persist.audio.dirac.speaker': 'true', 'ro.sys.sdcardfs': 'true', 'persist.audio.fluence.speaker': 'true', 'bluetooth.hfp.client': '1', 'audio.safx.pbe.enabled': 'true', 'dalvik.vm.isa.arm.variant': 'cortex-a53.a57', 'ro.product.cpu.abilist': 'arm64-v8a,armeabi-v7a,armeabi', 'debug.enable.sglscale': '1', 'ro.build.product': 'kenzo', 'persist.data.iwlan.enable': 'true', 'ro.build.id': 'NJH47F', 'ro.hwui.gradient_cache_size': '1', 'dalvik.vm.stack-trace-file': '/data/anr/traces.txt', 'ro.product.cpu.abilist32': 'armeabi-v7a,armeabi', 'ro.build.selinux': '1', 'ro.qc.sdk.audio.fluencetype': 'fluence', 'tunnel.audio.encode': 'false', 'ro.frp.pst': '/dev/block/bootdevice/by-name/config', 'af.fast_track_multiplier': '1', 'dalvik.vm.lockprof.threshold': '500', 'ro.build.fingerprint': 'Xiaomi/kenzo/kenzo:6.0.1/MMB29M/V8.2.1.0.MHOCNDL:user/release-keys', 'ro.product.manufacturer': 'Xiaomi', 'dalvik.vm.isa.arm64.features': 'default', 'audio.offload.pcm.24bit.enable': 'false', 'persist.radio.cs_srv_type': '1', 'ro.hwui.layer_cache_size': '48', 'ro.build.description': 'kenzo-user 6.0.1 MMB29M V8.2.1.0.MHOCNDL release-keys', 'ro.bootimage.build.fingerprint': 'Xiaomi/lineage_kenzo/kenzo:7.1.2/NJH47F/d4b338b746:userdebug/test-keys', 'ro.product.cpu.abi': 'arm64-v8a', 'ro.sys.fw.dex2oat_thread_count': '4', 'ro.product.brand': 'Xiaomi', 'wifi.interface': 'wlan0', 'ro.cm.build.version.plat.sdk': '7', 'ro.product.model': 'Redmi Note 3', 'persist.radio.redir_party_num': '0', 'media.camera.ts.monotonic': '1', 'ro.cmlegal.url': 'https://lineageos.org/legal', 'persist.audio.fluence.voicecall': 'true', 'persist.cne.feature': '1', 'media.msm8956hw': '1', 'audio.offload.multiple.enabled': 'false', 'persist.demo.hdmirotationlock': 'false', 'ro.build.host': 'skynet', 'ro.build.version.security_patch': '2017-08-05', 'telephony.lteOnCdmaDevice': '1', 'media.sf.extractor-plugin': 'libffmpeg_extractor.so', 'ro.product.locale': 'en-US', 'audio.offload.min.duration.secs': '30', 'ro.btconfig.vendor': 'qcom', 'persist.audio.fluence.voicerec': 'true', 'audio.offload.video': 'false', 'dalvik.vm.isa.arm64.variant': 'generic', 'mmp.enable.3g2': 'true', 'persist.radio.NO_STAPA': '1', 'persist.hwc.downscale_threshold': '1.15', 'persist.sys.dalvik.vm.lib.2': 'libart.so', 'persist.loc.nlp_name': 'com.qualcomm.location', 'ro.board.platform': 'msm8952', 'voice.playback.conc.disabled': 'true', 'persist.data.qmi.adb_logmask': '0', 'ro.product.cpu.abilist64': 'arm64-v8a', 'audio.playback.mch.downsample': 'true', 'net.tcp.2g_init_rwnd': '10', 'ro.vendor.extension_library': 'libqti-perfd-client.so', 'persist.radio.multisim.config': 'dsds', 'persist.rild.nitz_long_ons_3': '', 'persist.rild.nitz_long_ons_2': '', 'persist.rild.nitz_long_ons_1': '', 'persist.rild.nitz_long_ons_0': '', 'ro.build.flavor': 'lineage_kenzo-userdebug', 'dalvik.vm.isa.arm.features': 'default', 'audio.deep_buffer.media': 'true', 'rild.libargs': '-d /dev/smd0', 'ro.gps.agps_provider': '1', 'persist.rild.nitz_short_ons_0': '', 'ro.build.version.release': '7.1.2', 'ro.build.version.codename': 'REL', 'DEVICE_PROVISIONED': '1', 'audio.offload.disable': '1', 'net.bt.name': 'Android', 'persist.data.netmgrd.qos.enable': 'true', 'ro.hwui.text_large_cache_width': '2048', 'persist.audio.fluence.audiorec': 'false', 'persist.radio.VT_HYBRID_ENABLE': '1', 'ro.opengles.version': '196610', 'use.voice.path.for.pcm.voip': 'true', 'persist.rild.nitz_plmn': '', 'ro.hwui.text_small_cache_height': '1024', 'ro.build.display.id': 'lineage_kenzo-userdebug 7.1.2 NJH47F d4b338b746 test-keys', 'audio.offload.pcm.16bit.enable': 'false', 'persist.radio.hw_mbn_update': '0', 'ro.config.ringtone': 'Orion.ogg', 'persist.radio.force_on_dc': 'true', 'persist.gps.qc_nlp_in_use': '1', 'debug.egl.hw': '0', 'ro.storage_manager.enabled': 'true', 'ro.carrier': 'unknown', 'ro.product.board': 'msm8952', 'ro.build.version.preview_sdk': '0', 'ro.com.google.clientidbase': 'android-xiaomi', 'persist.radio.start_ota_daemon': '1', 'ro.cm.build.version.plat.rev': '0', 'persist.timed.enable': 'true', 'ro.build.date': 'Tue Aug 22 13:26:20 IST 2017', 'ro.use_data_netmgrd': 'true', 'persist.radio.sib16_support': '1', 'qcom.bluetooth.soc': 'smd', 'ro.build.date.utc': '1503388580', 'audio.offload.buffer.size.kb': '64', 'keyguard.no_require_sim': 'true', 'ro.qc.sdk.audio.ssr': 'false', 'voice.conc.fallbackpath': 'deep-buffer', 'persist.dpm.feature': '5', 'ro.cm.display.version': '14.1-20170822-UNOFFICIAL-kenzo', 'ro.build.version.all_codenames': 'REL', 'mm.enable.smoothstreaming': 'true', 'ro.btconfig.if': 'smd', 'persist.dbg.vt_avail_ovr': '1', 'dev.pm.dyn_samplingrate': '1', 'ro.build.type': 'userdebug', 'ro.hwui.text_small_cache_width': '1024', 'voice.record.conc.disabled': 'false', 'ro.cm.version': '14.1-20170822-UNOFFICIAL-kenzo', 'persist.radio.sw_mbn_update': '0', 'ro.product.name': 'lineage_kenzo', 'ro.hwui.drop_shadow_cache_size': '6', 'ro.build.version.base_os': '', 'ro.telephony.call_ring.multiple': 'false', 'voice.voip.conc.disabled': 'true', 'persist.data.mode': 'concurrent', 'media.sf.omx-plugin': 'libffmpeg_omx.so', 'ro.expect.recovery_id': '0x22ab51ee62435272df9ab420618c4be9c94727ed000000000000000000000000', 'ro.telephony.default_network': '22,20', 'ro.wifi.channels': '', 'ro.hwui.r_buffer_cache_size': '8', 'persist.camera.HAL3.enabled': '1', 'ro.modversion': '14.1-20170822-UNOFFICIAL-kenzo', 'ro.build.characteristics': 'default', 'debug.mdpcomp.logs': '0', 'audio.offload.gapless.enabled': 'true', 'ro.build.version.incremental': 'd4b338b746', 'ro.config.alarm_alert': 'Hassium.ogg', 'ro.hwui.text_large_cache_height': '1024', 'rild.libpath': '/vendor/lib64/libril-qc-qmi-1.so', 'ro.build.tags': 'test-keys', 'ro.sf.lcd_density': '480', 'ro.build.version.sdk': '25', 'ro.cm.releasetype': 'UNOFFICIAL', 'audio.dolby.ds2.enabled': 'true', 'persist.audio.fluence.spk.mono': 'true', 'ril.subscription.types': 'RUIM', 'persist.dpm.nsrm.bkg.evt': '3955', 'ro.build.user': 'vinayak', 'persist.dbg.volte_avail_ovr': '1', 'ro.hwui.path_cache_size': '32', 'ro.product.device': 'kenzo', 'debug.sf.hw': '0', 'persist.rild.nitz_short_ons_1': '', 'persist.rild.nitz_short_ons_2': '', 'persist.rild.nitz_short_ons_3': '', 'persist.radio.rat_on': 'combine', 'ro.btconfig.dev': '/dev/smd3', 'ro.hwui.texture_cache_flushrate': '0.4', 'ro.hwui.texture_cache_size': '72', 'ro.cm.device': 'kenzo', 'audio_hal.period_size': '192', 'ro.btconfig.chip': 'WCN3680', 'ro.telephony.default_cdma_sub': '0', 'persist.radio.apm_sim_not_pwdn': '1', 'persist.hwc.mdpcomp.enable': 'true', 'persist.radio.custom_ecc': '1', 'persist.sys.dun.override': '0', 'ro.config.notification_sound': 'Argon.ogg', 'audio.offload.track.enable': 'false', 'media.aac_51_output_enabled': 'true'}
cache_fs_type = (str) ext4
cache_size = (int) 268435456
default_system_dev_certificate = (str) build/target/product/security/testkey
device_type = (str) MMC
extfs_sparse_flag = (str) -s
extra_recovery_keys = (str) vendor/cm/build/target/product/security/lineage
fs_type = (str) ext4
fstab = (dict) {'/cache': <common.Partition object at 0x7f2d76e445d0>, '/boot': <common.Partition object at 0x7f2d76e44050>, '/system': <common.Partition object at 0x7f2d76e44950>, '/dsp': <common.Partition object at 0x7f2d76e44210>, '/frp': <common.Partition object at 0x7f2d76e44110>, '/persist': <common.Partition object at 0x7f2d76e44810>, '/recovery': <common.Partition object at 0x7f2d76e44750>, '/firmware': <common.Partition object at 0x7f2d76e44610>, '/data': <common.Partition object at 0x7f2d76e44550>, '/misc': <common.Partition object at 0x7f2d76e44790>}
fstab_version = (int) 2
mkbootimg_args = (str) --ramdisk_offset 0x01000000 --tags_offset 0x00000100
mkbootimg_version_args = (str) --os_version 7.1.2 --os_patch_level 2017-08-05
multistage_support = (str) 1
ota_override_device = (str) kate,kenzo
recovery_api_version = (int) 3
recovery_as_boot = (str)
recovery_mount_options = (str) ext4=max_batch_time=0,commit=1,data=ordered,barrier=1,errors=panic,nodelalloc
recovery_size = (int) 67108864
selinux_fc = (str) /tmp/targetfiles-Rnr8Wy/META/file_contexts.bin
squashfs_sparse_flag = (str) -s
system_size = (int) 2684354560
tool_extensions = (str) device/xiaomi/kenzo/../common
update_rename_support = (str) 1
use_set_metadata = (str) 1
userdata_size = (int) 26838785024
unable to load device-specific module; assuming none
using prebuilt recovery.img from BOOTABLE_IMAGES...
using system.img from target-files
Total of 655360 4096-byte output blocks in 6263 input chunks.
Finding transfers...
Generating digraph...
Finding vertex sequence...
Reversing backward edges...
0/0 dependencies (0.00%) were violated; 0 source blocks stashed.
Improving vertex order...
Revising stash size...
Total 0 blocks (0 bytes) are packed as new blocks due to insufficient cache size.
Reticulating splines...
1156825088 1156825088 (100.00%) new __DATA
max stashed blocks: 0 (0 bytes), limit: 214748364 bytes (0.00%)
using prebuilt boot.img from BOOTABLE_IMAGES...
boot size (10713088) is 15.96% of limit (67108864)
running: openssl pkcs8 -in build/target/product/security/testkey.pk8 -inform DER -nocrypt
running: java -Xmx2048m -Djava.library.path=/run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/lib64 -jar /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp/tmpOsziEC /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/lineage_kenzo-ota-d4b338b746.zip
done.
[100% 40912/40912] build bacon
Package Complete: /run/media/vinayak/6FA49F144DC575A7/android/lineage/out/target/product/kenzo/lineage-14.1-20170822-UNOFFICIAL-kenzo.zip
make: Leaving directory '/run/media/vinayak/6FA49F144DC575A7/android/lineage'
#### make completed successfully (04:59:23 (hh:mm:ss)) ####

[GUIDE] OTA Tools LPUnpack

Please see this URL https://android.googlesource.com/platform/build.git/+/eec4a7cba4face3370acb6293ab357879920b467 and this for more information.
Hi everyone. I'm surprised I havent seen a thread about ota tools yet and lpunpack. This zip file contains a lot of useful tools for modifying super.img and making super.img as well as other tools found in other toolkits. This was just compiled using aosp master. The most useful function is the lpunpack tool which can extract a super.img into system, vendor, odm and product images.
Browse individual files
Download HERE
Extract super.img from device
Code:
adb shell
Code:
su
Code:
dd if=/dev/block/by-name/super of=/sdcard/super.img
Code:
exit
Code:
exit
Code:
adb pull /sdcard/super.img
Extract super.img with lpunpack
Usage on PC(linux):
Code:
./lpunpack - command-line tool for extracting partition images from super
Usage:
./lpunpack [options...] SUPER_IMAGE [OUTPUT_DIR]
Options:
-p, --partition=NAME Extract the named partition. This can
be specified multiple times.
-S, --slot=NUM Slot number (default is 0).
**Make sure <output_directory> already exists as this tool will not create a directory for you and will error if not found.**
**If you run this command with no slot specified, it will output 0 byte empty b images.
To extract all A images:
Code:
./lpunpack --slot=0 <path-to-super.img> <output_dir>
To extract all B images:
Code:
./lpunpack --slot=1 <path-to-super.img> <output_dir>
This program can take a couple minutes to run. After it is complete, your $output_dir will contain vendor, system, product and odm with either _a or _b.
Thanks for reading!
ALL CREDIT GOES TO HANETZER @ntzrmtthihu777 FOR ALL OF THIS INFORMATION
He taught me, I just wrote this!​
We are waiting for good dev support to build twrp, custom roms and kernel.
manan001 said:
We are waiting for good dev support to build twrp, custom roms and kernel.
Click to expand...
Click to collapse
Most kernels already support 7T/Pro. (Except Smurf)
Not that much on the ROM side but some are there.
Sent from my OnePlus7TPro using XDA Labs
manan001 said:
We are waiting for good dev support to build twrp, custom roms and kernel.
Click to expand...
Click to collapse
I agree. I just felt like a lot of people don't know about lpmake/lpunpack and wanted to share it. Think its a pretty cool tool.
Bit of a clarification. If you call lpunpack without any flags, it will extract
{odm,product,system,vendor}_a.img properly without issue, but will create 'empty'
0 byte images for {odm,product,system,vendor}_b.img. In order to get the b-sides,
you must call it again like so:
Code:
./lpunpack --slot=1 super.img
@bynarie
hello @All
How to repack super.img file from Odm.img.Product.img, system.img, vender.img
Pls help me , Thanks !
Any idea how I could build an arm version of lpunpack ?
oslo83 said:
build an arm version of lpunpack ?
Click to expand...
Click to collapse
For android?
You can take the build tree from my github (I cannot post external links due to the small number of posts).
holedinh said:
hello @All
How to repack super.img file from Odm.img.Product.img, system.img, vender.img
Pls help me , Thanks !
Click to expand...
Click to collapse
+1
I did not understand: this tool can extract .img partition or only extract them from phone?
Example: I want to extract product.img partition to edit it and then reconvert to .img and then flash it to phone. Is this possible?
Hitman478™ said:
I did not understand: this tool can extract .img partition or only extract them from phone?
Example: I want to extract product.img partition to edit it and then reconvert to .img and then flash it to phone. Is this possible?
Click to expand...
Click to collapse
you need to convert it using simg2img then mount the img to edit it then when done use img2simg to convert back into android sparse img then can b flashed
Invalid sparse file format at header magic, how to fix this?
Code:
./lpmake --metadata-size 65536 --super-name super --metadata-slots 2 --device super:4294967296 --group main:2647101440 --partition system:readonly:1962512384:main --image system=./system.img --partition vendor:readonly:680239104:main --image vendor=./vendor.img --partition odm:readonly:4349952:main --image odm=./odm.img --sparse --output ./super.img
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition system will resize from 0 bytes to 1962512384 bytes
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition vendor will resize from 0 bytes to 680239104 bytes
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition odm will resize from 0 bytes to 4349952 bytes
Invalid sparse file format at header magic
Invalid sparse file format at header magic
VladSector said:
Invalid sparse file format at header magic, how to fix this?
Code:
./lpmake --metadata-size 65536 --super-name super --metadata-slots 2 --device super:4294967296 --group main:2647101440 --partition system:readonly:1962512384:main --image system=./system.img --partition vendor:readonly:680239104:main --image vendor=./vendor.img --partition odm:readonly:4349952:main --image odm=./odm.img --sparse --output ./super.img
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition system will resize from 0 bytes to 1962512384 bytes
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition vendor will resize from 0 bytes to 680239104 bytes
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition odm will resize from 0 bytes to 4349952 bytes
Invalid sparse file format at header magic
Invalid sparse file format at header magic
Click to expand...
Click to collapse
It is not an error
VladSector said:
Invalid sparse file format at header magic, how to fix this?
Code:
./lpmake --metadata-size 65536 --super-name super --metadata-slots 2 --device super:4294967296 --group main:2647101440 --partition system:readonly:1962512384:main --image system=./system.img --partition vendor:readonly:680239104:main --image vendor=./vendor.img --partition odm:readonly:4349952:main --image odm=./odm.img --sparse --output ./super.img
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition system will resize from 0 bytes to 1962512384 bytes
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition vendor will resize from 0 bytes to 680239104 bytes
lpmake I 08-24 00:29:52 598 598 builder.cpp:1012] [liblp]Partition odm will resize from 0 bytes to 4349952 bytes
Invalid sparse file format at header magic
Invalid sparse file format at header magic
Click to expand...
Click to collapse
can you upload lpmake ! i cant find it anywhere
download link is broken, can you reupload it again bro?
mohamedfaky said:
download link is broken, can you reupload it again bro?
Click to expand...
Click to collapse
My bad, link is fixed in post. - https://drive.google.com/file/d/1h4sGXNI1Al5Y_Te9T8xMWrp3mHw1tke-/view?usp=sharing
M.sapry said:
can you upload lpmake ! i cant find it anywhere
Click to expand...
Click to collapse
Here is a link to a shared folder containing all of the ota tools. LPMake is located under bin/lpmake
https://drive.google.com/drive/folders/1BmBmFuYZXbISAncrnrMybQ0uQk0-cZXl?usp=sharing
can't get it to work... it always says "bash: ./lpunpack: Permission denied"
can someone help?
trying to run it in mint4kitchen with all updates
Sir, can you please expand on super image repack?
osahitzelgsngar said:
can't get it to work... it always says "bash: ./lpunpack: Permission denied"
can someone help?
trying to run it in mint4kitchen with all updates
Click to expand...
Click to collapse
Probably need to chmod it..
Code:
chmod +x lpunpack
OR
Code:
chmod 755 lpunpack

How To Guide Create your own super.img for your own Alioth fastboot / MiFlash custom ROM package

What you need is the following:
bash command line (if you have windows you can install ubuntu linux bash)
a working lpmake executable (you can use https://github.com/asura99/lpunpack_and_lpmake install the plugins, and run the make shell script)
Your set of images that came for your Custom Rom, it should be similar to the following set:
system.img
system_ext.img
product.img
vendor.img
odm.img
Steps:
1. Boot on a custom recovery that has ADB access e.g. TWRP and execute the following on windows CMD:
Code:
adb shell lpdump --slot 0 /dev/block/bootdevice/by-name/super
The command will print all the sector allocations but we're after the natural file size of your super.img based on how stock ROM sized it. That will be our basis to size the image. Get the exact number of the super image file size in bytes. You should see a number within the ballpark of 9126805504. Save that number for later step.
2. Extract the attached file into the same location where your images above are placed. This represents the _b partitions (which is 0 bytes by default on the original MIUI super.img)
3. Get the file sizes of the image files above in bytes. It will be best to get them using "ls -l" command on bash command prompt so that you can get the precise sizes. Store the values somewhere.
4. Redirect your bash command prompt to the directory where the images are located. Execute the following command:
Code:
./lpmake --metadata-size 65536 --super-name super --metadata-slots 2 --device super:<the super file size from step 1> --group main:<sum of all images in bytes> --partition system_a:readonly:<system image size>:main --image system_a=./system.img --partition system_b:readonly:0:main --image system_b=./system_b.img --partition system_ext_a:readonly:<system_ext image size>:main --image system_ext_a=./system_ext.img --partition system_ext_b:readonly:0:main --image system_ext_b=./system_ext_b.img --partition product_a:readonly:<product image size>:main --image product_a=./product.img --partition product_b:readonly:0:main --image product_b=./product_b.img --partition vendor_a:readonly:<vendor image size>:main --image vendor_a=./vendor.img --partition vendor_b:readonly:0:main --image vendor_b=./vendor_b.img --partition odm_a:readonly:<odm image size>:main --image odm_a=./odm.img --partition odm_b:readonly:0:main --image odm_b=./odm_b.img --sparse --output ./super.new.img
Below is an example of the command using the format above:
Code:
./lpmake --metadata-size 65536 --super-name super --metadata-slots 2 --device super:9126805504 --group main:7815139328 --partition system_a:readonly:2308665344:main --image system_a=./system.img --partition system_b:readonly:0:main --image system_b=./system_b.img --partition system_ext_a:readonly:1509330944:main --image system_ext_a=./system_ext.img --partition system_ext_b:readonly:0:main --image system_ext_b=./system_ext_b.img --partition product_a:readonly:2656813056:main --image product_a=./product.img --partition product_b:readonly:0:main --image product_b=./product_b.img --partition vendor_a:readonly:1307881472:main --image vendor_a=./vendor.img --partition vendor_b:readonly:0:main --image vendor_b=./vendor_b.img --partition odm_a:readonly:32448512:main --image odm_a=./odm.img --partition odm_b:readonly:0:main --image odm_b=./odm_b.img --sparse --output ./super.new.img
Notice that this has a different partition structure compared to this thread. This is because MIUI has a different structure and strategy on how _a and _b partitions are split. I guess the ROM knows that _b partitions are only needed to be resized when you do the recovery or seamless updates.
Hope this helps anyone who want to create a super.img file. This has helped me a lot.

Categories

Resources