Post Reply

[TOOL][WIN] Take screenshots of Recovery and Aroma

OP makers_mark

18th January 2014, 09:53 PM   |  #1  
makers_mark's Avatar
OP Member
Flag Kings Mountain
Thanks Meter: 146
 
98 posts
Join Date:Joined: Sep 2013
More
Support has ended, due to the possibility of pixel formats changing from each recovery update you receive.
But I did make a better Recovery Screenshot that handles this problem, and it can be found here or below.
http://forum.xda-developers.com/show...php?p=50029759


This is a tool to get screenshots from Recovery or the Aroma Installer!

It's no big secret in the XDA community that you can use ffmpeg to convert your framebuffer to an image on some devices. I've found the ffmpeg values for the Nexus 7 2013, and made a batch script that lets you save as many screenshots as you would like in recovery or the aroma installer. This should work on all versions of Windows. I have only tested in Windows 7 and running the modified TWRP for multirom, which is based off of TWRP 2.6.3.1. It should work with regular TWRP as well as other recoveries. Please let me know if it works or not and what set up you have!!!

Why would anyone use this or do this?

Most people have actually no use for it whatsoever. It's pretty much useful for tutorials, showing anomalies, and showing off custom recovery themes. I needed to do it one time to show what I thought was an error in my recovery, but hadn't seen anyone post how to do it on the Nexus 7 2013, or any 1200x1920 device for that matter. While searching how to do this I came across this thread by @Whiskey103 I learned a lot of useful information.

You have to have the adb drivers installed before you can do anything. Go here for more information.

This rar file contains the programs adb and ffmpeg. This ffmpeg is the newest 32-bit version from their downloads page. You must have adb.exe, ffmpeg.exe, and the two dll files for adb in the same directory as this batch when you run it. The easiest thing to do is just extract the rar to a new directory, then run the file named RUNrs.bat. The screenshots will be saved in the same folder you unzip everything as 'timestamp'.png.


Download Recovery Screenshot.rar




To see whats in the batch script hit the show more content button below. I don't recommend viewing it if you've ever used the phrase "cat your buffer" before
Code:
@ECHO OFF
CLS
TITLE Recovery Screenshot
MODE CON:COLS=54 LINES=40
COLOR 0B
SET TS=0
set "ffshowb=-hide_banner"
set "ffdebug=-loglevel fatal"
if "%~1"=="-d" (
	REM @ECHO ON
	set "ffdebug=-loglevel debug"
	set "ffshowb=%"
	MODE CON:COLS=140 LINES=250
	COLOR 07
	ECHO __________________________________________________________________
	ECHO DEBUG INFO
	ECHO __________________________________________________________________
	)
:START
ECHO[
ECHO ______________________________________________________
ECHO   This will pull a screenshot from your Nexus 7 2013
ECHO   and save it to the directory that you ran this bat
ECHO   file in. Connect USB ^& reboot into your recovery.
ECHO ______________________________________________________
ECHO         Thanks to Whiskey103 for the idea!!
ECHO               Written by makers_mark
ECHO ______________________________________________________
IF NOT EXIST ffmpeg.exe GOTO NOFILES
IF NOT EXIST adb.exe GOTO NOFILES
ADB kill-server -d >nul 2>&1
IF %TS%=="NOGOOD" GOTO SKIPPEDthatPause
ECHO Press any key when you are ready.
PAUSE >nul

:SKIPPEDthatPause
ECHO[
ECHO Pulling framebuffer from /dev/graphics/fb0
adb pull /dev/graphics/fb0 frmbfr >nul
IF ERRORLEVEL 1 (cls
	SET TS="NOGOOD"
	ECHO ______________________________________________________
	ECHO Adb is not properly connected.
	ECHO Try "Safely Removing" your N7 from your computer
	ECHO Then unplug your usb cable, and reinsert it.
	ECHO ______________________________________________________
	ECHO[
	ECHO[
	ECHO Press any key to try again.
	ECHO[
	ECHO[
	PAUSE >nul
	CLS
	GOTO START
	)
SET TS=%DATE:/=%_%TIME::=_%
SET TS=%TS:.=%
SET TS=%TS: =%.png
FFMPEG %ffdebug% %ffshowb% -f rawvideo -vcodec rawvideo -pix_fmt rgb565 -s 1216x1920 -i frmbfr -vf crop=1200:1920:0:0 -vframes 1 -y %TS%
IF NOT EXIST %TS% GOTO ERRNE
DEL frmbfr >nul
ECHO ______________________________________________________
ECHO   Screenshot saved as %TS% 
ECHO ______________________________________________________
ECHO Press 1 or 2
ECHO 1 - Save another screenshot
ECHO 2 - Exit
ECHO ______________________________________________________
CHOICE /C:12 >nul
IF ERRORLEVEL 1 SET K=1
IF ERRORLEVEL 2 SET K=2
IF %K%==1 GOTO SKIPPEDthatPause
IF %K%==2 GOTO FINISH

:NOFILES

CLS
ECHO The directory that you are running this script in is:
ECHO %~dp0
ECHO[
ECHO You must run this script in the same directory as
ECHO adb.exe and ffmpeg.exe. Press any key to exit 
PAUSE >nul
EXIT

:ERRNE
CLS
MODE CON:COLS=108 LINES=200
COLOR 07
FFMPEG -loglevel debug -f rawvideo -vcodec rawvideo -pix_fmt rgb565  -s 1216x1920 -i frmbfr -vf crop=1200:1920:0:0 -vframes 1 -y %TS%
ECHO ____________________________________________________________________________________________________________
ECHO There was a problem converting the framebuffer to a png file.
ECHO[ 
ECHO To capture the screen of the cmd window, hold down the alt key and press PrtSc on your keyboard.  This
ECHO will save an image of the current window in memory on your clipboard.  Then open paint or photoshop or
ECHO whatever program you use and hit ctrl+N to open a new file, then ctrl+V to paste an image.  Save it and
ECHO please message me it or post in the XDA forum thread.
ECHO[
ECHO[
ECHO If you got to this screen and are not using a Nexus 7 2013, congratulations for successfully pulling
ECHO the framebuffer.  To figure out the resolution to use, try adding 4,8,16, or 32 to your native width to
ECHO make room for the extra data, ioctrls?, at the end of each pixel row.  Experiment with different pixel
ECHO formats also.
ECHO[
ECHO To see a list of all of the pix_fmts supported by ffmpeg, run ffmpeg -pix_fmts
ECHO[
ECHO Press 1 or 2
ECHO 1 - Show available pixel formats
ECHO 2 - Exit
CHOICE /C:12
IF ERRORLEVEL 1 SET K=1
IF ERRORLEVEL 2 SET K=2
IF %K%==1 (cls
	MODE CON:COLS=52 LINES=200
	ffmpeg -hide_banner -pix_fmts
	pause
	GOTO FINISH)
IF %K%==2 GOTO FINISH


:FINISH
ADB kill-server -d
EXIT
Last edited by makers_mark; 29th May 2014 at 02:49 AM. Reason: Add link to RSv1.5
The Following 6 Users Say Thank You to makers_mark For This Useful Post: [ View ]
19th January 2014, 02:28 AM   |  #2  
Flashalot's Avatar
Recognized Contributor
Flag Chicago
Thanks Meter: 2,338
 
2,343 posts
Join Date:Joined: Jun 2012
More
Thanks make my like easy now lol
28th January 2014, 12:43 PM   |  #3  
rootSU's Avatar
Senior Member
Flag Oxenhope, West Yorkshire, UK
Thanks Meter: 12,150
 
23,139 posts
Join Date:Joined: Aug 2010
More
sorry, wrong thread
1st February 2014, 07:31 AM   |  #4  
tashik19's Avatar
Senior Member
Flag Dhaka
Thanks Meter: 45
 
137 posts
Join Date:Joined: Oct 2012
More
Thanks!!
Post Reply Subscribe to Thread

Tags
ddms, ffmpeg, recovery screenshot, rgb565
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Top Threads in Nexus 7 (2013) Android Development by ThreadRank