TWRP Theme Porter [ Android ]

Search This thread
M

Modding.MyMind

Guest
I have put together a script called, TWRPPORTER, that will port both the images and the ui.xml file from one specified resolution to another specified resolution.

The ui porter will not port the keyboardtemplate so it must be dealt with manually, and it will not touch the font size since that tends to be a preference amongst different devices, but it will handle everything else.

The images known to be used for TWRP themes are .jpg, and .png so the script will search for the given extensions based on where you point it to and then determine the original width and height of each image. It will resize them accordingly and write back to that same image to prevent duplicates.

After the script has been ran and you adjust the font size, then manually port the keyboardtemplate, all you are required to do is zip it up and name it, ui.zip.

Inside your TWRP folder will be another foldered named, theme (lowercase). Place the ui.zip inside the theme folder and boot in to your TWRP Recovery. Voila.

Please, keep in mind, that if you come across a TWRP theme which you later port and some things are still slightly off it could be due to a few causes:

1. The original theme developer was sloppy with his own work so you must fix his mistakes.

2. You grabbed a Theme designed for a Tablet to use on a regular device or vice versa. - ( Please use common sense)

Both scripts require the use of busybox applets which have been symlinked.

The script also requires the use of GraphicsMagick (gm) when porting images. Which overall the utility is mainly known for being a Linux utility but I was able to cross compile it from source. GM has been embedded into the TWRPPORTER script. When you run the script it will give you the option to install GM if your device is found not to have it. Later, the script will also give you the option to uninstall it if you so choose to do so.

The TWRPPORTER script will save a person HOURS of their time while porting TWRP Themes, but don't be fooled as the user will still be expected to have some personal experience porting such themes. The TWRPUI script WILL have to echo on to your screen certain values which can be located within "variable names" inside the ui.xml file. These special case values are to be determined by the human mind whether they resemble width or height and at which the user will type and enter, w/W or h/H. These special case values cannot be automatically determined simply due to the fact that any given themer can call these variable names whatever they want if they deem it necessary to do so. However, I have implemented some checks in to the script to help reduce this as much as possible.

However, the script WILL hunt down all x=, y=, w=, h=, width=, and height= values then automatically modify them according to the base and port resolution given as info to the script.

Once the script finishes you will find a file called, PORT_UI.xml.

To get access to this TWRP Theme Porter you can find it on my repo provided within the below link. The README.md file will provide a little more information.

https://github.com/ModdingMyMind/TWRP_IMAGE_PORTER

TWRPIMAGE
ty8u3asu.jpg


TWRPUI
vy2a4a4y.jpg
 
Last edited:

ezknives

Senior Member
Jul 21, 2013
680
255
Looks interesting... Now just to figure out how to use it... No PC here desperately trying to theme and mod via device only...

Sent from my XT907 using XDA Premium 4 mobile app
 
M

Modding.MyMind

Guest
This will work from the device but unless you have some sort of experience porting TWRP Themes then this script may not help you.

This will save someone hours of work.

Sent from my C525c using Tapatalk
 
M

Modding.MyMind

Guest
The gm binary in my repo is to be used in conjunction with the TWRPIMAGE script. Place the binary in /system/bin then set permissions to either 755 or 777 (your choice), though good practice would be 755.

777 = rwx-rwx-rwx
755 = rwx-r-x-r-x

Sent from my C525c using Tapatalk
 

ezknives

Senior Member
Jul 21, 2013
680
255
I've been reading a lot about it that's how I came across this... Few more nights of reading and I'm sure I'll get it

Sent from my XT907 using XDA Premium 4 mobile app
 
M

Modding.MyMind

Guest
I've been reading a lot about it that's how I came across this... Few more nights of reading and I'm sure I'll get it

Sent from my XT907 using XDA Premium 4 mobile app

The best way to learn is to do one manually ;). After a successful port or two you will get the gist of it pretty quick. Then, when you use my work from here you will see how much of a relief it is lol.

Sent from my C525c using Tapatalk
 

spanish33

Senior Member
May 26, 2012
567
307
Port of Spain
OnePlus 8
The best way to learn is to do one manually ;). After a successful port or two you will get the gist of it pretty quick. Then, when you use my work from here you will see how much of a relief it is lol.

Sent from my C525c using Tapatalk
yes this script is big relief compared to the manual way! great work @Modding.MyMind can't thank you enough.
 
  • Like
Reactions: mauam
M

Modding.MyMind

Guest
How to Manually Port a TWRP Theme

Holofied Black originally from resolution 720x1280 by @z31s1g which has been ported to resolution 480x800. What is being displayed below is how you would go about porting such a theme and what all it entails for porting a TWRP Theme in most cases. Feel free to study it and learn. This is how you would go about it manually.

All "-" symbols means it was removed and all "+" symbols means it was added. I have them all color coded between red and green but it appears XDA made a change to the "code" format on here so I apologize for that.

To port width based values the following is applied:
720/$=$.$
480/$.$=$.$$
Round up or down based on .5 to the nearest integer.

Above logic is used with height equivalent values as well AND to include porting the actual images.

I believe the above is pretty self explanatory.

x, w, and width values are based on width.

y, h, and height values are based on height.

Inside the ui.xml files are <variable names> which will be conducted of a mixture of those mentioned above - such values I like to call special case values. ( Watch out for them )

Code:
--- /home/moddingmymind/Desktop/theme/2.7.1.x_Holofied_Black/720_black/ui.xml
+++ /home/moddingmymind/Desktop/theme/2.7.1.x_Holofied_Black/ui.xml
@@ -2,7 +2,7 @@
 
 <recovery>
 	<details>
[COLOR="Red"]-		<resolution width="720" height="1280" />[/COLOR]
[COLOR="Green"]+		<resolution width="480" height="800" />[/COLOR]
 		<author>z31s1g</author>
 		<title>TWRP Holofied black</title>
 		<description>Holofied black theme for TWRP recovery</description>
@@ -11,10 +11,10 @@
 
 	<resources>
 		
[COLOR="Red"]-		<resource name="font" type="font" filename="Roboto-Regular-25" />[/COLOR]
[COLOR="Green"]+		<resource name="font" type="font" filename="Roboto-Regular-20" />[/COLOR]
 		<resource name="font_small" type="font" filename="Roboto-Regular-20" />
[COLOR="Red"]-		<resource name="font_medium" type="font" filename="Roboto-Regular-30" />[/COLOR]
[COLOR="Red"]-		<resource name="font_big" type="font" filename="Roboto-Regular-40" />[/COLOR]
[COLOR="Green"]+		<resource name="font_medium" type="font" filename="Roboto-Regular-20" />[/COLOR]
[COLOR="Green"]+		<resource name="font_big" type="font" filename="Roboto-Regular-20" />[/COLOR]
 		
 		<resource name="statusbar" type="image" filename="statusbar" />
 		<resource name="navbar" type="image" filename="navbar" />
@@ -273,103 +273,103 @@
 		<variable name="location_addfile" value="/sdcard/Download" persist="1" />
 		<variable name="location_themes" value="/sdcard/Download" persist="1" />
 
[COLOR="Red"]-		<variable name="screen_w" value="720" />[/COLOR]
[COLOR="Red"]-		<variable name="screen_h" value="1280" />[/COLOR]
[COLOR="Green"]+		<variable name="screen_w" value="480" />
+		<variable name="screen_h" value="800" />[/COLOR]
 		<variable name="indent" value="0" /> <!--for elements 720 wide (0 if 720, 24 if 768, 40 if 800 screen width)-->
[COLOR="Red"]-		<variable name="center_x" value="360" />[/COLOR]
[COLOR="Red"]-		<variable name="col1_x" value="32" /> <!--for elements 656 wide (main buttons, filelists)--> (40 if 720, 56 if 768, 72 if 800 screen width)[/COLOR]
[COLOR="Red"]-		<variable name="col1_x_indent" value="64" />
-		<variable name="col2_x" value="361" /> <!--for elements 359 wide (right one of two tabs)-->
-		<variable name="backup_col_x" value="250" />
-		<variable name="restore_col_x" value="250" />
-		<variable name="flash_col_x" value="180" />
-		<variable name="flash_col_x2" value="210" />
-		<variable name="timezone_col_x" value="315" />
-		<variable name="version_x" value="15" /> <!--position of twrp version number on body_home template-->
-		<variable name="battery_x" value="545" /> <!--AM/PM-->
-		<variable name="time_x" value="705" /> <!--left align -->
-		<variable name="battery_x_m" value="600" /> <!--Military Time-->
-		<variable name="settings_x" value="624" /> <!--position of settings button on body_home template-->
-		<variable name="timezone_x" value="528" /> <!--position of timezone button on settings page-->
-		<variable name="theme_x" value="528" /> <!--position of timezone button on body_home page-->
-		<variable name="bookmark_x" value="432" />
-		<variable name="settings_y" value="50" /> <!--position of settings button on body_home template-->
-		<variable name="status_info_y" value="4" />
-		<variable name="tabbar_y" value="146" />
-		<variable name="tabbar_4_y" value="194" />
-		<variable name="stripe_y" value="142" />
-		<variable name="clr_col1_x" value="32" />
-		<variable name="clr_col2_x" value="197" />
-		<variable name="clr_col3_x" value="362" />
-		<variable name="clr_col4_x" value="527" />
-		
-		<variable name="row-1_y" value="160" />
-		<variable name="row0_y" value="204" />
-		<variable name="row1_y" value="253" />
-		<variable name="row2_y" value="302" />
-		<variable name="row3_y" value="351" />
-		<variable name="row4_y" value="400" />
-		<variable name="row5_y" value="449" />
-		<variable name="row6_y" value="498" />
-		<variable name="row7_y" value="547" />
-		<variable name="row8_y" value="596" />
-		<variable name="row9_y" value="645" />
-		<variable name="row10_y" value="694" />
-		<variable name="row11_y" value="743" />
-		<variable name="row12_y" value="792" />
-		<variable name="row13_y" value="841" />
-		<variable name="row14_y" value="890" />
-		<variable name="row15_y" value="939" />
-		<variable name="row16_y" value="988" />
-		<variable name="row17_y" value="1037" />
-		<variable name="row18_y" value="1086" />
-		<variable name="row19_y" value="1135" />
-		<variable name="row20_y" value="1184" />
-		
-		<variable name="div0" value="202" />
-		<variable name="div1" value="251" />
-		<variable name="div2" value="300" />
-		<variable name="div3" value="349" />
-		<variable name="div4" value="398" />
-		<variable name="div5" value="447" />
-		<variable name="div6" value="496" />
-		<variable name="div7" value="545" />
-		<variable name="div8" value="594" />
-		<variable name="div9" value="643" />
-		<variable name="div10" value="692" />
-		<variable name="div11" value="741" />
-		<variable name="div12" value="790" />
-		<variable name="div13" value="839" />
-		<variable name="div14" value="888" />
-		<variable name="div15" value="937" />
-		<variable name="div16" value="986" />
-		<variable name="div17" value="1035" />
-		<variable name="div18" value="1084" />
-		<variable name="div19" value="1133" />
-		<variable name="div20" value="1182" />[/COLOR]
[COLOR="Green"]+		<variable name="center_x" value="240" />
+		<variable name="col1_x" value="21" /> <!--for elements 656 wide (main buttons, filelists)--> (40 if 720, 56 if 768, 72 if 800 screen width)
+		<variable name="col1_x_indent" value="43" />
+		<variable name="col2_x" value="241" /> <!--for elements 359 wide (right one of two tabs)-->
+		<variable name="backup_col_x" value="167" />
+		<variable name="restore_col_x" value="167" />
+		<variable name="flash_col_x" value="120" />
+		<variable name="flash_col_x2" value="140" />
+		<variable name="timezone_col_x" value="210" />
+		<variable name="version_x" value="10" /> <!--position of twrp version number on body_home template-->
+		<variable name="battery_x" value="363" /> <!--AM/PM-->
+		<variable name="time_x" value="470" /> <!--left align -->
+		<variable name="battery_x_m" value="400" /> <!--Military Time-->
+		<variable name="settings_x" value="416" /> <!--position of settings button on body_home template-->
+		<variable name="timezone_x" value="352" /> <!--position of timezone button on settings page-->
+		<variable name="theme_x" value="352" /> <!--position of timezone button on body_home page-->
+		<variable name="bookmark_x" value="288" />
+		<variable name="settings_y" value="31" /> <!--position of settings button on body_home template-->
+		<variable name="status_info_y" value="3" />
+		<variable name="tabbar_y" value="91" />
+		<variable name="tabbar_4_y" value="121" />
+		<variable name="stripe_y" value="89" />
+		<variable name="clr_col1_x" value="21" />
+		<variable name="clr_col2_x" value="131" />
+		<variable name="clr_col3_x" value="241" />
+		<variable name="clr_col4_x" value="351" />
+		
+		<variable name="row-1_y" value="100" />
+		<variable name="row0_y" value="128" />
+		<variable name="row1_y" value="158" />
+		<variable name="row2_y" value="189" />
+		<variable name="row3_y" value="219" />
+		<variable name="row4_y" value="250" />
+		<variable name="row5_y" value="281" />
+		<variable name="row6_y" value="311" />
+		<variable name="row7_y" value="342" />
+		<variable name="row8_y" value="373" />
+		<variable name="row9_y" value="403" />
+		<variable name="row10_y" value="434" />
+		<variable name="row11_y" value="464" />
+		<variable name="row12_y" value="495" />
+		<variable name="row13_y" value="526" />
+		<variable name="row14_y" value="556" />
+		<variable name="row15_y" value="587" />
+		<variable name="row16_y" value="617" />
+		<variable name="row17_y" value="648" />
+		<variable name="row18_y" value="679" />
+		<variable name="row19_y" value="709" />
+		<variable name="row20_y" value="740" />
+		
+		<variable name="div0" value="126" />
+		<variable name="div1" value="157" />
+		<variable name="div2" value="188" />
+		<variable name="div3" value="218" />
+		<variable name="div4" value="249" />
+		<variable name="div5" value="279" />
+		<variable name="div6" value="310" />
+		<variable name="div7" value="341" />
+		<variable name="div8" value="371" />
+		<variable name="div9" value="402" />
+		<variable name="div10" value="433" />
+		<variable name="div11" value="463" />
+		<variable name="div12" value="494" />
+		<variable name="div13" value="524" />
+		<variable name="div14" value="555" />
+		<variable name="div15" value="586" />
+		<variable name="div16" value="616" />
+		<variable name="div17" value="647" />
+		<variable name="div18" value="678" />
+		<variable name="div19" value="708" />
+		<variable name="div20" value="739" />[/COLOR]
 		
 		<variable name="col_progressbar_x" value="0" />
[COLOR="Red"]-		<variable name="row_progressbar_y" value="147" />
-		<variable name="col_progressbar_x_low" value="32" />
-		<variable name="row_progressbar_y_low" value="839" />
-		
-		<variable name="breadcrumb_x" value="37" /> <!--menu label in actionbar-->
-		<variable name="breadcrumb_y" value="67" />
-		<variable name="bc_x" value="40" /> <!--menu label in actionbar-->
-		<variable name="bc_y" value="50" />
-
-		<variable name="of_x" value="414" />
-		<variable name="of_y" value="146" />
-		<variable name="of_button_x" value="422" />
-		<variable name="of_button1_y" value="153" />
-		<variable name="of_button2_y" value="251" />
-
-		<variable name="home_button_x" value="254" /> <!--buttons in navbar-->
-		<variable name="home_button_y" value="1184" />
-		<variable name="back_button_x" value="30" />
-		<variable name="back_button_y" value="1184" />
-		<variable name="slideout_button_x" value="478" />
-		<variable name="slideout_button_y" value="1184" />[/COLOR]
[COLOR="Green"]+		<variable name="row_progressbar_y" value="92" />
+		<variable name="col_progressbar_x_low" value="21" />
+		<variable name="row_progressbar_y_low" value="524" />
+		
+		<variable name="breadcrumb_x" value="25" /> <!--menu label in actionbar-->
+		<variable name="breadcrumb_y" value="42" />
+		<variable name="bc_x" value="27" /> <!--menu label in actionbar-->
+		<variable name="bc_y" value="31" />
+
+		<variable name="of_x" value="276" />
+		<variable name="of_y" value="91" />
+		<variable name="of_button_x" value="281" />
+		<variable name="of_button1_y" value="96" />
+		<variable name="of_button2_y" value="157" />
+
+		<variable name="home_button_x" value="169" /> <!--buttons in navbar-->
+		<variable name="home_button_y" value="740" />
+		<variable name="back_button_x" value="20" />
+		<variable name="back_button_y" value="740" />
+		<variable name="slideout_button_x" value="319" />
+		<variable name="slideout_button_y" value="740" />[/COLOR]
 		
 		<variable name="background" value="#000000FF" />
 		<variable name="background_light" value="#000000FF" />
@@ -387,82 +387,82 @@
 		<variable name="fileselector_highlight_color" value="#414141FF" />
 		<variable name="linecolor" value="#222222FF" />
 		
[COLOR="Red"]-		<variable name="tab_button_y" value="146" /> <!--for tab bar and tab buttons-->[/COLOR]
[COLOR="Green"]+		<variable name="tab_button_y" value="91" /> <!--for tab bar and tab buttons-->[/COLOR]
 		<variable name="tab3_col1_x" value="0" /> <!--for elements 238 wide (left one of three tabs)-->
[COLOR="Red"]-		<variable name="tab3_col2_x" value="241" /> <!--for elements 238 wide (middle one of three tabs)-->
-		<variable name="tab3_col3_x" value="482" /> <!--for elements 238 wide (right one of three tabs)-->
-		<variable name="tab3_div3_x" value="504" />
-		<variable name="tab3_div_cis_x" value="472" />
-		<variable name="tab3_btn_cis_x" value="474" />[/COLOR]
[COLOR="Green"]+		<variable name="tab3_col2_x" value="161" /> <!--for elements 238 wide (middle one of three tabs)-->
+		<variable name="tab3_col3_x" value="321" /> <!--for elements 238 wide (right one of three tabs)-->
+		<variable name="tab3_div3_x" value="336" />
+		<variable name="tab3_div_cis_x" value="315" />
+		<variable name="tab3_btn_cis_x" value="316" />[/COLOR]
 		
 		<variable name="tab4_col1_x" value="0" /> <!--for elements 178 wide (left one of four tabs)-->
[COLOR="Red"]-		<variable name="tab4_col2_x" value="181" /> <!--for elements 178 wide (leftmiddle one of four tabs)-->
-		<variable name="tab4_col3_x" value="361" /> <!--for elements 178 wide (rightmiddle one of four tabs)-->
-		<variable name="tab4_col4_x" value="542" /> <!--for elements 178 wide (right one of four tabs)-->
-		
-		<variable name="input_width" value="644" />
-		<variable name="input_height" value="54" />
-		<variable name="input_cursor_width" value="3" />
-		<variable name="input_cursor_x" value="38" />
-		<variable name="input_image_y" value="542" />
-		<variable name="input_image_terminal_y" value="638" />
-
-		<variable name="console_width" value="656" />
-		<variable name="console_height" value="782" />
-		<variable name="console_action_height" value="439" />
-		<variable name="console_background_height" value="1035" />
-		
-		<variable name="storage_width" value="656" />
-		<variable name="storage_heigt" value="490" />
-		<variable name="bg_storage_x" value="25" />
-		<variable name="bg_storage_y" value="438" />[/COLOR]
[COLOR="Green"]+		<variable name="tab4_col2_x" value="121" /> <!--for elements 178 wide (leftmiddle one of four tabs)-->
+		<variable name="tab4_col3_x" value="241" /> <!--for elements 178 wide (rightmiddle one of four tabs)-->
+		<variable name="tab4_col4_x" value="361" /> <!--for elements 178 wide (right one of four tabs)-->
+		
+		<variable name="input_width" value="429" />
+		<variable name="input_height" value="34" />
+		<variable name="input_cursor_width" value="2" />
+		<variable name="input_cursor_x" value="25" />
+		<variable name="input_image_y" value="339" />
+		<variable name="input_image_terminal_y" value="399" />
+
+		<variable name="console_width" value="437" />
+		<variable name="console_height" value="489" />
+		<variable name="console_action_height" value="274" />
+		<variable name="console_background_height" value="647" />
+		
+		<variable name="storage_width" value="437" />
+		<variable name="storage_heigt" value="306" />
+		<variable name="bg_storage_x" value="17" />
+		<variable name="bg_storage_y" value="274" />[/COLOR]
 		
 		<variable name="fileselector_x" value="0" />
[COLOR="Red"]-		<variable name="fileselector_y" value="242" />
-		<variable name="fileselector_part_x" value="250" />
-		<variable name="fileselector_width" value="720" />
-		<variable name="fileselector_part_width" value="470" />
-		<variable name="fileselector_install_height" value="842" />
-		<variable name="fileselector_part_height" value="194" />
-		<variable name="fileselector_backup_height" value="342" />
-		<variable name="fileselector_part_wipe_height" value="588" />
-		<variable name="fileselector_header_separatorheight" value="2" />[/COLOR]
[COLOR="Green"]+		<variable name="fileselector_y" value="151" />
+		<variable name="fileselector_part_x" value="167" />
+		<variable name="fileselector_width" value="480" />
+		<variable name="fileselector_part_width" value="313" />
+		<variable name="fileselector_install_height" value="526" />
+		<variable name="fileselector_part_height" value="121" />
+		<variable name="fileselector_backup_height" value="214" />
+		<variable name="fileselector_part_wipe_height" value="368" />
+		<variable name="fileselector_header_separatorheight" value="1" />[/COLOR]
 		<variable name="fileselector_separatorheight" value="1" />
[COLOR="Red"]-		<variable name="fileselector_spacing" value="36" />
-		<variable name="fileselector_part_spacing" value="8" />
-		<variable name="fileselector_wipe_spacing" value="39" />
-		
-		<variable name="fastscroll_w" value="60" />[/COLOR]
[COLOR="Green"]+		<variable name="fileselector_spacing" value="23" />
+		<variable name="fileselector_part_spacing" value="5" />
+		<variable name="fileselector_wipe_spacing" value="24" />
+		
+		<variable name="fastscroll_w" value="40" />[/COLOR]
 		<variable name="fastscroll_linew" value="1" />
[COLOR="Red"]-		<variable name="fastscroll_rectw" value="16" />
-		<variable name="fastscroll_recth" value="72" />
-		
-		<variable name="listbox_tz_height" value="693" />
-		<variable name="listbox_spacing" value="36" />
-		
-		<variable name="textbox_spacing" value="16" />
-		<variable name="textbox_separatorheight" value="2" />
-		
-		<variable name="terminal_console_width" value="656" />
-		<variable name="terminal_console_height" value="390" />
-		<variable name="terminal_button_divider_x" value="618" />
-		<variable name="terminal_button_divider_y" value="50" />
-		<variable name="terminal_button_x" value="620" />
-		<variable name="terminal_button_y" value="74" />
-		<variable name="terminal_path_x" value="250" />
-		
-		<variable name="slider_x" value="60" />
-		<variable name="slider_y" value="1037" />
-		<variable name="slider_text_y" value="1039" />
-		<variable name="slidervalue_w" value="656" />
-		<variable name="slidervalue_lineh" value="4" />
-		<variable name="slidervalue_padding" value="20" />
-		<variable name="slidervalue_sliderw" value="10" />
-		<variable name="slidervalue_sliderh" value="60" />[/COLOR]
[COLOR="Green"]+		<variable name="fastscroll_rectw" value="11" />
+		<variable name="fastscroll_recth" value="45" />
+		
+		<variable name="listbox_tz_height" value="433" />
+		<variable name="listbox_spacing" value="23" />
+		
+		<variable name="textbox_spacing" value="10" />
+		<variable name="textbox_separatorheight" value="1" />
+		
+		<variable name="terminal_console_width" value="437" />
+		<variable name="terminal_console_height" value="244" />
+		<variable name="terminal_button_divider_x" value="412" />
+		<variable name="terminal_button_divider_y" value="31" />
+		<variable name="terminal_button_x" value="413" />
+		<variable name="terminal_button_y" value="46" />
+		<variable name="terminal_path_x" value="167" />
+		
+		<variable name="slider_x" value="40" />
+		<variable name="slider_y" value="648" />
+		<variable name="slider_text_y" value="649" />
+		<variable name="slidervalue_w" value="437" />
+		<variable name="slidervalue_lineh" value="3" />
+		<variable name="slidervalue_padding" value="13" />
+		<variable name="slidervalue_sliderw" value="7" />
+		<variable name="slidervalue_sliderh" value="38" />[/COLOR]
 	</variables>
 
 	<mousecursor>
[COLOR="Red"]-		<placement w="15" h="15" />[/COLOR]
[COLOR="Green"]+		<placement w="9" h="9" />[/COLOR]
 		<background color="#FFFF00FF" resource="cursor" />
 		<speed multiplier="2.5" />
 	</mousecursor>
@@ -1847,37 +1847,37 @@
 		
 		<template name="keyboardtemplate">
 			<object type="keyboard">
[COLOR="Red"]-				<placement x="0" y="758" />[/COLOR]
[COLOR="Green"]+				<placement x="0" y="474" />[/COLOR]
 				<layout resource1="keyboard1" resource2="keyboard2" resource3="keyboard3" resource4="keyboard4" />
 				<highlight color="%highlight_color%" />
 				<capshighlight color="%highlight_color%" />
 				<layout1>
[COLOR="Red"]-					<keysize height="106" width="72" />[/COLOR]
[COLOR="Green"]+					<keysize height="66" width="48" />[/COLOR]
 					<row1 key01="q" long01="1" key02="w" long02="2" key03="e" long03="3" key04="r" long04="4" key05="t" long05="5" key06="y" long06="6" key07="u" long07="7" key08="i" long08="8" key09="o" long09="9" key10="p" long10="0" />
[COLOR="Red"]-					<row2 key01="108:a" long01="@" key02="s" long02="#" key03="d" long03="$" key04="f" long04="%" key05="g" long05="&" key06="h" long06="*" key07="j" long07="-" key08="k" long08="+" key09="108:l" long09="_"/>
-					<row3 key01="108:layout2" key02="z" long02="!" key03="x" key04="c" long04="'" key05="v" long05=":" key06="b" long06=";" key07="n" long07="/" key08="m" long08="?" key09="108:c:8" />
-					<row4 key01="108:layout3" key02="/" key03="360: " key04="." key05="108:a:action" />[/COLOR]
[COLOR="Green"]+					<row2 key01="68:a" long01="@" key02="s" long02="#" key03="d" long03="$" key04="f" long04="%" key05="g" long05="&" key06="h" long06="*" key07="j" long07="-" key08="k" long08="+" key09="68:l" long09="_"/>
+					<row3 key01="68:layout2" key02="z" long02="!" key03="x" key04="c" long04="'" key05="v" long05=":" key06="b" long06=";" key07="n" long07="/" key08="m" long08="?" key09="68:c:8" />
+					<row4 key01="68:layout3" key02="/" key03="240: " key04="." key05="68:a:action" />[/COLOR]
 				</layout1>
 				<layout2>
[COLOR="Red"]-					<keysize height="106" width="72" capslock="0" revert_layout="1"/>[/COLOR]
[COLOR="Green"]+					<keysize height="66" width="48" capslock="0" revert_layout="1"/>[/COLOR]
 					<row1 key01="Q" long01="1" key02="W" long02="2" key03="E" long03="3" key04="R" long04="4" key05="T" long05="5" key06="Y" long06="6" key07="U" long07="7" key08="I" long08="8" key09="O" long09="9" key10="P" long10="0" />
[COLOR="Red"]-					<row2 key01="108:A" long01="@" key02="S" long02="#" key03="D" long03="$" key04="F" long04="%" key05="G" long05="&" key06="H" long06="*" key07="J" long07="-" key08="K" long08="+" key09="108:L" long09="_"/>
-					<row3 key01="108:layout1" key02="Z" long02="!" key03="X" key04="C" long04="'" key05="V" long05=":" key06="B" long06=";" key07="N" long07="/" key08="M" long08="?" key09="108:c:8" />
-					<row4 key01="108:layout3" key02="/" key03="360: " key04="." key05="108:action" />[/COLOR]
[COLOR="Green"]+					<row2 key01="68:A" long01="@" key02="S" long02="#" key03="D" long03="$" key04="F" long04="%" key05="G" long05="&" key06="H" long06="*" key07="J" long07="-" key08="K" long08="+" key09="68:L" long09="_"/>
+					<row3 key01="68:layout1" key02="Z" long02="!" key03="X" key04="C" long04="'" key05="V" long05=":" key06="B" long06=";" key07="N" long07="/" key08="M" long08="?" key09="68:c:8" />
+					<row4 key01="68:layout3" key02="/" key03="240: " key04="." key05="68:action" />[/COLOR]
 				</layout2>
 				<layout3>
[COLOR="Red"]-					<keysize height="106" width="72" />[/COLOR]
[COLOR="Green"]+					<keysize height="66" width="48" />[/COLOR]
 					<row1 key01="1" key02="2" key03="3" key04="4" key05="5" key06="6" key07="7" key08="8" key09="9" key10="0" />
 					<row2 key01="@" key02="#" key03="$" key04="%" key05="&" key06="*" key07="-" key08="+" key09="(" key10=")" />
[COLOR="Red"]-					<row3 key01="108:layout4" key02="!" key03="72:c:34" key04="'" key05=":" key06=";" key07="/" key08="?" key09="108:c:8" />
-					<row4 key01="108:layout1" key02="," key03="360: " key04="." key05="108:action" />[/COLOR]
[COLOR="Green"]+					<row3 key01="68:layout4" key02="!" key03="48:c:34" key04="'" key05=":" key06=";" key07="/" key08="?" key09="68:c:8" />
+					<row4 key01="68:layout1" key02="," key03="240: " key04="." key05="68:action" />[/COLOR]
 				</layout3>
 				<layout4>
[COLOR="Red"]-					<keysize height="106" width="72" />
-					<row1 key01="~" key02="`" key03="|" key04="72:" key05="72:" key06="72:" key07="%" key08="72:" key09="{" key10="}" />
-					<row2 key01="72:" key02="72:" key03="72:" key04="72:" key05="72:" key06="^" key07="_" key08="=" key09="[" key10="]" />
-					<row3 key01="108:layout3" key02="72:" key03="72:" key04="72:" key05="72:" key06="\" key07="<" key08=">" key09="108:c:8" />
-					<row4 key01="108:layout1" key02="," key03="360: " key04="." key05="108:action" />[/COLOR]
[COLOR="Green"]+					<keysize height="66" width="48" />
+					<row1 key01="~" key02="`" key03="|" key04="48:" key05="48:" key06="48:" key07="%" key08="48:" key09="{" key10="}" />
+					<row2 key01="48:" key02="48:" key03="48:" key04="48:" key05="48:" key06="^" key07="_" key08="=" key09="[" key10="]" />
+					<row3 key01="68:layout3" key02="48:" key03="48:" key04="48:" key05="48:" key06="\" key07="<" key08=">" key09="68:c:8" />
+					<row4 key01="68:layout1" key02="," key03="240: " key04="." key05="68:action" />[/COLOR]
 				</layout4>
 			</object>
 		</template>
@@ -7388,7 +7388,7 @@
 				<colors line="%text_dark%" slider="%text_highlight%" />
 				<dimensions lineh="%slidervalue_lineh%" linepadding="%slidervalue_padding%" sliderw="%slidervalue_sliderw%" sliderh="%slidervalue_sliderh%" />
 				<text></text>
[COLOR="Red"]-				<data variable="tw_screen_timeout_secs" min="15" max="300" />[/COLOR]
[COLOR="Green"]+				<data variable="tw_screen_timeout_secs" min="15" max="200" />[/COLOR]
 			</object>
 
 			<object type="text" color="%text_highlight%">
@@ -7405,7 +7405,7 @@
 				<colors line="%text_dark%" slider="%text_highlight%" />
 				<dimensions lineh="%slidervalue_lineh%" linepadding="%slidervalue_padding%" sliderw="%slidervalue_sliderw%" sliderh="%slidervalue_sliderh%" />
 				<text></text>
[COLOR="Red"]-				<data variable="tw_brightness_pct" min="10" max="100" />[/COLOR]
[COLOR="Green"]+				<data variable="tw_brightness_pct" min="10" max="67" />[/COLOR]
 				<actions>
 					<action function="set">tw_brightness=%tw_brightness_max%</action>
 					<action function="compute">tw_brightness*%tw_brightness_pct%</action>
@@ -7499,7 +7499,7 @@
 				<placement x="col1_x" y="%row4_y%" w="%slidervalue_w%" />
 				<font resource="font_medium" color="%text%" />
 				<text></text>
[COLOR="Red"]-				<data variable="tw_button_vibrate" min="0" max="300" />[/COLOR]
[COLOR="Green"]+				<data variable="tw_button_vibrate" min="0" max="200" />[/COLOR]
 				<colors line="%text_dark%" slider="%text_highlight%" />
 				<dimensions lineh="%slidervalue_lineh%" linepadding="%slidervalue_padding%" sliderw="%slidervalue_sliderw%" sliderh="%slidervalue_sliderh%" />
 			</object>
@@ -7514,7 +7514,7 @@
 				<placement x="col1_x" y="%row9_y%" w="%slidervalue_w%" />
 				<font resource="font_medium" color="%text%" />
 				<text></text>
[COLOR="Red"]-				<data variable="tw_keyboard_vibrate" min="0" max="300" />[/COLOR]
[COLOR="Green"]+				<data variable="tw_keyboard_vibrate" min="0" max="200" />[/COLOR]
 				<colors line="%text_dark%" slider="%text_highlight%" />
 				<dimensions lineh="%slidervalue_lineh%" linepadding="%slidervalue_padding%" sliderw="%slidervalue_sliderw%" sliderh="%slidervalue_sliderh%" />
 			</object>
@@ -7529,7 +7529,7 @@
 				<placement x="col1_x" y="%row14_y%" w="%slidervalue_w%" />
 				<font resource="font_medium" color="%text%" />
 				<text></text>
[COLOR="Red"]-				<data variable="tw_action_vibrate" min="0" max="500" />[/COLOR]
[COLOR="Green"]+				<data variable="tw_action_vibrate" min="0" max="333" />[/COLOR]
 				<colors line="%text_dark%" slider="%text_highlight%" />
 				<dimensions lineh="%slidervalue_lineh%" linepadding="%slidervalue_padding%" sliderw="%slidervalue_sliderw%" sliderh="%slidervalue_sliderh%" />
 			</object>
 
M

Modding.MyMind

Guest
Hey, I failed to mention that the gm binary in my repo is cross compiled for ARM devices. If someone wishes to compile gm for MIPS or x86, please share with me so I may include it to my repo. I only have an ARM based device so there is no point in me compiling gm for MIPS or x86 since I have no way to test and confirm that they work.

Sent from my C525c using Tapatalk
 
M

Modding.MyMind

Guest
https://github.com/ModdingMyMind/TWRP_IMAGE_PORTER/commit/3ef72ac1a43671f64cd69062fa0518ad21e49a98

Overhaul Update:
- Merged TWRPIMAGE and TWRPUI into one script called, TWRPPORTER
- Still kept old method but moved over to OLD folder.
- Updated root of README.md to reflect changes and instructions.
- Script will check system for gm and busybox. The script will inform you if neither are installed and then abort the script.
- Updated script to read and accept directory/filenames with spaces. The old method did not do this.
- Script will port the TWRP Images, or the TWRP ui, or BOTH based on the user's selection while running TWRPPORTER.
 
M

Modding.MyMind

Guest
https://github.com/ModdingMyMind/TWRP_IMAGE_PORTER/commit/5df4977a68c0ad5de80ddcf8f3f1d37ced3efc30

NEW UPDATE:
- Bumped to version 3.0.
- GM binary has been embedded in to the TWRPPORTER script.
- TWRPORTER can install GM from extracting the embedded data itself as requested by the user.
- TWRPORTER can uninstall GM as requested by the user.
- If busybox is found not installed the script WILL abort after a quick warning to the user.
- Have added more checks to the script to keep it running smooth. Most is merely cosmetic work.
- At the end of the script is the GM binary data which has been embedded. DO NOT MESS WITH IT!
- GM will work for pre-jb devices and up. It is in compliance with Android L (current release). Initially compiled for ARM.
 
M

Modding.MyMind

Guest
GM is causing problems when compiling it as true static. So, unfortunately, I must revert back to it being partially static. This means your device must be ARM. It most likely will not be in compliance with Android L :(. Feel free to confirm this. Will push the update to my repo shortly.
 

mauam

Senior Member
Jan 26, 2011
7,375
12,949
Hi bud,
Sorry the stupid question but, where I put the theme (I grab the black 720x1280 to port to 480x800) to be ported!!? It's my first time, so be kind:laugh:
 

Top Liked Posts