[Q] Take screenshots from Recovery - Xperia Z1 Compact Q&A, Help & Troubleshooting

I want to take take screenshots from Recovery
It was work on my nexus 5 but not work my xperia z1 Compact
I enter this command to get my raw framebuffer file
HTML:
adb pull /dev/graphics/fb0 "/home/sharonliu//Downloads/ffmpeg.static.64bit.latest/screenshot_01.raw"
I used ffmpeg to convert raw-png, nexus 5 I enter this command and everything is fine.
HTML:
./ffmpeg -loglevel debug -hide_banner -f rawvideo -vcodec rawvideo -pix_fmt rgb565 -s 1088x1920 -i "/home/sharonliu//Downloads/ffmpeg.static.64bit.latest/screenshot_01.raw" -vf crop=1080:1920:0:0 -y "//home/sharonliu//Downloads/ffmpeg.static.64bit.latest/screenshot_01.png"
but for xperia z1 Compact I get a error png
HTML:
./ffmpeg -loglevel debug -hide_banner -f rawvideo -vcodec rawvideo -pix_fmt rgb565 -s 720x1280 -i "/home/sharonliu//Downloads/ffmpeg.static.64bit.latest/screenshot_02.raw" -vf crop=720:1280:0:0 -y "/home/sharonliu//Downloads/ffmpeg.static.64bit.latest/screenshot_02.png"
Can someone help me?

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/

Galaxy Nexus -- Frame Buffer pixel format?

Hi there,
I'm trying to create screenshots on command line with the Galaxy Nexus. I'm able to pull the frame buffer (fb0) to a local file and am trying to convert it to a PNG file [1]. This yields an empty PNG file though. Does the Galaxy Nexus's frame buffer use RGB32? Anyone familiar with this?
[1] ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 720x1080 -i fb0 -f image2 -vcodec png image.png
AaronMT said:
Hi there,
I'm trying to create screenshots on command line with the Galaxy Nexus. I'm able to pull the frame buffer (fb0) to a local file and am trying to convert it to a PNG file [1]. This yields an empty PNG file though. Does the Galaxy Nexus's frame buffer use RGB32? Anyone familiar with this?
[1] ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 720x1080 -i fb0 -f image2 -vcodec png image.png
Click to expand...
Click to collapse
Just to learn the functions?
You probably know this, but you can hold down "volume down + power button" to take screen shots.
Sent from my Galaxy Nexus using Tapatalk

[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

[Q] Odexing MIUIv4 or other ICS ROM

hello i trying to ODEX my MIUIv4 (ICS 4.0.4) but i had some troubles:
there is my script for odexing:
Code:
#/sbin/sh
D=/data
E=/sddata
S=/system
SD=/sdcard
bbcmd="busybox"
bbcat="$bbcmd cat"
bbgrep="$bbcmd grep"
bbsed="$bbcmd sed"
SYSTARGET="/system"
OPTTEMP="/tmp"
$bbcmd chmod 777 $OPTTEMP/{busybox,dexopt_wrapper,zip,zipalign}
mount -o rw /system
mount -o rw /data
mount -o rw /cache
local zip="$OPTTEMP/zip"
local zipalign="$OPTTEMP/zipalign"
local dexopt_wrapper="$OPTTEMP/dexopt_wrapper"
local bootclpath="/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar"
# change to system/framework and process EVERY jar IN ORDER OF BOOTCLASSPATH!
cd /system/framework
indir=$(pwd)
for filename in \
core.jar core-junit.jar miui-framework.jar bouncycastle.jar ext.jar framework.jar android.policy.jar services.jar apache-xml.jar filterfw.jar \
am.jar ime.jar android.test.runner.jar input.jar javax.obex.jar monkey.jar pm.jar svc.jar bmgr.jar com.android.location.provider.jar com.android.future.usb.accessory.jar com.google.android.maps.jar com.google.android.media.effects.jar com.google.widevine.software.drm.jar
do
name=${filename%.jar}
$bbcmd cp -f $filename $OPTTEMP/$filename
$dexopt_wrapper $filename $name.odex $bootclpath > /dev/null 2>&1
if [ $? -eq 0 ]
then
$zip -d $filename classes.dex > /dev/null 2>&1
$bbcmd cp -f $name.odex $OPTTEMP/$name.odex
echo "$filename - done."
else
$bbcmd rm *.odex
$bbcmd cp -f $OPTTEMP/*.jar $indir/
echo "Framework file $filename failled. Cannot Complete."
echo "System has been restored."
return 1;
fi
done
$zipalign 4 framework-res.apk framework-res.apk.align > /dev/null 2>&1
$bbcmd mv -f framework-res.apk.align framework-res.apk
$zipalign 4 framework-miui-res.apk framework-miui-res.align > /dev/null 2>&1
$bbcmd mv -f framework-miui-res.align framework-miui-res.apk
cd /system/app
indir=$(pwd)
# Process apks from system/app that are normally odexed
for filename in *.apk
do
name=${filename%.apk}
$dexopt_wrapper $filename $name.odex $bootclpath > /dev/null 2>&1
if [ $? -eq 0 ]
then
$zip -d $filename classes.dex > /dev/null 2>&1
$zipalign 4 $filename $filename.align > /dev/null 2>&1
$bbcmd mv -f $filename.align $filename
echo "$filename - done."
fi
done
$bbcmd find /system/framework -type f -exec chmod 644 {} \;
$bbcmd find /system/app -type f -exec chmod 644 {} \;
[ -d /cache/dalvik-cache ] && $bbcmd rm -rf /cache/dalvik-cache/*
[ -d /data/dalvik-cache ] && $bbcmd rm -rf /data/dalvik-cache/*
return 0;
and i had errors in android.policy, framework, services .odex files

LineageOS source compilation fails

I'm trying to build Lineage 14.1 for serranoltexx (for 5 days now).
When I started the compilation using "breakfast serranoltexx" an error appears after the 7 percent mark (~2minutes).
I followed this guide: wiki.lineageos. org/devices/serranoltexx/build
with a fresh Ubuntu 17.04 VM Box installation two times but that error always appears.
The only thing I still could mention is that pulled the proprietary blobs using my phone as stated in the instructions not with the stock Rom but Lineage 14.1 already installed.
Full console output:
(error at line #321) pastebin. com/vC06fV36
Error:
Code:
make: Leaving directory '/home/mrglue/android/lineage/kernel/samsung/msm8930-common'
[ 7% 2535/34256] Building Kernel
FAILED: /bin/bash -c "(make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" zImage ) && (if grep -q 'CONFIG_OF=y' /home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ/.config ; then echo \"Building DTBs\" ; make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" dtbs ; else echo \"DTBs not enabled\" ; fi ) && (if grep -q 'CONFIG_MODULES=y' /home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ/.config ; then echo \"Building Kernel Modules\" ; make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" modules && make -j4 CFLAGS_MODULE=\"-fno-pic\" -C kernel/samsung/msm8930-common O=/home/mrglue/android/lineage/out/target/product/serranoltexx/obj/KERNEL_OBJ INSTALL_MOD_PATH=../../system ARCH=arm CROSS_COMPILE=\"/home/mrglue/android/lineage/prebuilts/misc/linux-x86/ccache/ccache arm-linux-androidkernel-\" modules_install && mdpath=\`find /home/mrglue/android/lineage/out/target/product/serranoltexx/system/lib/modules -type f -name modules.order\`; if [ \"\$mdpath\" != \"\" ];then mpath=\`dirname \$mdpath\`; ko=\`find \$mpath/kernel -type f -name *.ko\`; for i in \$ko; do arm-linux-androidkernel-strip --strip-unneeded \$i; mv \$i /home/mrglue/android/lineage/out/target/product/serranoltexx/system/lib/modules/; done; fi && mdpath=\`find /home/mrglue/android/lineage/out/target/product/serranoltexx/system/lib/modules -type f -name modules.order\`; if [ \"\$mdpath\" != \"\" ];then mpath=\`dirname \$mdpath\`; rm -rf \$mpath; fi ; else echo \"Kernel Modules not enabled\" ; fi )"

Categories

Resources