Requesting tiny application: Clear Recent Start Menu Items - Windows Mobile Apps and Games

If you're like me, you've soft-resetted your device more times in one month than there are days in a year.
So, after a nice extended boot sequence with the new Windows Mobile 5.0, you click on the Start icon, only to wait nearly 30 seconds while it grabs all the icons from the various programs you have recently loaded, plus the ones you have stored permanently in your Start Menu. Of course, if you have recently launched Skype, you'll know it has to sift through nearly 4 or 5MB for that tiny icon data located at the end of the executable. Why Microsoft hasn't learned to cache icons permanently in a file is beyond me.
My temporary solution? With Resco Explorer, I launch a REG file in my \Windows\Startup folder that sets these registry entries:
Code:
[HKEY_CURRENT_USER\Software\Microsoft\Shell\TaskSwitch]
"6"=" "
"7"=" "
"8"=" "
"9"=" "
"5"=" "
"4"=" "
"3"=" "
"2"=" "
"11"=" "
"10"=" "
"1"=" "
"0"=" "
Of course, I get prompted to the effect of, "Do you want to import these registry entries...?" to which I have to click "YES." Then I have to acknowledge its confirmation that it did so by clicking "OK."
It's annoying at best, but so is the Recent Start Menu. I personally wish it wasn't there.
Is there anyone here able to make a tiny executable that will quietly delete the above registry entries? When placed in the StartUp folder, it will have wiped out all the recently loaded programs and keep the Start Menu nice and clean.
I have contacted Resco, PHM, TweakUI, and the other registry editing developers, none of which have either gotten back to me or claim that it's a "security issue" that they leave the confirmation in there.
All I want is a clean Start Menu. Can anyone help with a tiny executable, or better yet, find a way to remove the Recent Start Menu Items section from the Start Menu completely? Of course, making these registry changes will only take effect before the Start Menu is called for the first time after a soft reset, so it has to be placed in the StartUp folder.
Aaaugh, these tiny annoyances.
Another possible application is to make a tiny executable that simply launches another program. For instance, I'd like to keep a 2KB file that will launch Skype for me. I'll keep THAT file as a shortcut in the Programs Folder, while any other instance, such as launching Skype from the Contacts menu, will still launch the original executable. It's the fact that the Windows Mobile OS has to pull the icon data from each executable on the first run after a soft reset is so damn annoying.
If anyone can make a generic executable that can be easily hex edited to incorporate any executable's filename and manipulated by Microangelo or any other icon editor to copy and paste the icon data from the original executable to the launcher executable, that would be awesome. Imagine WM only having to look at a 2KB file for the stupid icon instead of each 500K-5MB file for it.
You guys following me on this one? Is there a brave and bright soul who can do these things?

Here you go:
Code:
#include <windows.h>
#include <windowsx.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR szCmdLine, int iCmdShow)
{
HKEY Software,Microsoft,Shell,TaskSwitch,tmp;
RegOpenKeyEx(HKEY_CURRENT_USER, L"Software", 0, KEY_ALL_ACCESS, &Software);
RegOpenKeyEx(Software, L"Microsoft", 0, KEY_ALL_ACCESS, &Microsoft);
RegOpenKeyEx(Microsoft, L"Shell", 0, KEY_ALL_ACCESS, &Shell);
RegOpenKeyEx(Shell, L"TaskSwitch", 0, KEY_ALL_ACCESS, &TaskSwitch);
RegDeleteValue(TaskSwitch, L"0");
RegDeleteValue(TaskSwitch, L"1");
RegDeleteValue(TaskSwitch, L"2");
RegDeleteValue(TaskSwitch, L"3");
RegDeleteValue(TaskSwitch, L"4");
RegDeleteValue(TaskSwitch, L"5");
RegDeleteValue(TaskSwitch, L"6");
RegDeleteValue(TaskSwitch, L"7");
RegDeleteValue(TaskSwitch, L"8");
RegDeleteValue(TaskSwitch, L"9");
RegDeleteValue(TaskSwitch, L"10");
RegDeleteValue(TaskSwitch, L"11");
}
Executable (arm only), Makefile:

Works for me
Good work!
This worked first time for me.
Would somebody be willing to put this in the wiki?
Baz

chinnybob said:
Here you go:
Code:
#include <windows.h>
#include <windowsx.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR szCmdLine, int iCmdShow)
{
HKEY Software,Microsoft,Shell,TaskSwitch,tmp;
RegOpenKeyEx(HKEY_CURRENT_USER, L"Software", 0, KEY_ALL_ACCESS, &Software);
RegOpenKeyEx(Software, L"Microsoft", 0, KEY_ALL_ACCESS, &Microsoft);
RegOpenKeyEx(Microsoft, L"Shell", 0, KEY_ALL_ACCESS, &Shell);
RegOpenKeyEx(Shell, L"TaskSwitch", 0, KEY_ALL_ACCESS, &TaskSwitch);
RegDeleteValue(TaskSwitch, L"0");
RegDeleteValue(TaskSwitch, L"1");
RegDeleteValue(TaskSwitch, L"2");
RegDeleteValue(TaskSwitch, L"3");
RegDeleteValue(TaskSwitch, L"4");
RegDeleteValue(TaskSwitch, L"5");
RegDeleteValue(TaskSwitch, L"6");
RegDeleteValue(TaskSwitch, L"7");
RegDeleteValue(TaskSwitch, L"8");
RegDeleteValue(TaskSwitch, L"9");
RegDeleteValue(TaskSwitch, L"10");
RegDeleteValue(TaskSwitch, L"11");
}
Executable (arm only), Makefile:
Click to expand...
Click to collapse
Hey man , great work
Can i include this great app on a himalaya rom ?

Do whatever you want with it.
It's public domain.

chinnybob said:
Here you go:
Code:
#include <windows.h>
#include <windowsx.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR szCmdLine, int iCmdShow)
{
HKEY Software,Microsoft,Shell,TaskSwitch,tmp;
RegOpenKeyEx(HKEY_CURRENT_USER, L"Software", 0, KEY_ALL_ACCESS, &Software);
RegOpenKeyEx(Software, L"Microsoft", 0, KEY_ALL_ACCESS, &Microsoft);
RegOpenKeyEx(Microsoft, L"Shell", 0, KEY_ALL_ACCESS, &Shell);
RegOpenKeyEx(Shell, L"TaskSwitch", 0, KEY_ALL_ACCESS, &TaskSwitch);
RegDeleteValue(TaskSwitch, L"0");
RegDeleteValue(TaskSwitch, L"1");
RegDeleteValue(TaskSwitch, L"2");
RegDeleteValue(TaskSwitch, L"3");
RegDeleteValue(TaskSwitch, L"4");
RegDeleteValue(TaskSwitch, L"5");
RegDeleteValue(TaskSwitch, L"6");
RegDeleteValue(TaskSwitch, L"7");
RegDeleteValue(TaskSwitch, L"8");
RegDeleteValue(TaskSwitch, L"9");
RegDeleteValue(TaskSwitch, L"10");
RegDeleteValue(TaskSwitch, L"11");
}
Executable (arm only), Makefile:
Click to expand...
Click to collapse
So you mean, after I run this file then I have to softreset right?
What I got from you is I have to softreset all the time when the recent program has full.
Anyway to disable it? like in PPC2002, I can disable it in my PPC2002 Tosh E740. But I cant do that in my wm2005 (O2 Atom)
Thanks.

Hi chinnybob and BeyondtheTech,
This is my favourite Program that I first install after every Hard Reset
Nice Job .. ~♪
Cheers,
Nette。_・☆

my 8125 keeps complaining it not a signed app

I went about it a different way.
I created a Folder called Applications in the Windows \ Start Menu folder.
I then moved all the icons (except a favorite app) out of the Programs folder and into Applications.
I then used Resco File Explorer and changed the Properties of the Programs Folder to Hidden.
Voila! Recent Programs disappear! No need to clean out the registry.
The reason I leave a favorite app in the Programs folder is because the Menu bar will state 'Recent Programs' greyed out as a place holder where the Recent Items used to sit. Having a default app there forces at least one to stay. I left Resco File Explorer's shortcut.
Hope this helps!

wm6
this doesnt seem to work anymore on WM6...can someone possibly update the program?

mrgino said:
this doesnt seem to work anymore on WM6...can someone possibly update the program?
Click to expand...
Click to collapse
There is a program called "startclean" thats an .exe and only about 2k that clears the program list. You can also do this with the "cleartemp" app among other things.

nice and simple, thanks chinnybob

MemMaid
MemMaid 2.0 can do this.
Start MemMaid. Go to Tweaks -> System Tweaks.
Scroll to the bottom, and select "Clear Programs History on reset"
I always install MemMaid 2.0 as my first application after a hard reset, and then "Optimize for Extreme Speed". That really makes a difference! (More than optimizing with SKTools)

Hey when i try to run the exe it says its not a valid application....

Does this work for smartphones too? I don't have a reg entry called "taskswitch"?!

This will clear the recent list and perform the soft reset...
#include <windows.h>
#include <Pm.h>
#include <Winreg.h>
void wmain()
{
//This will ask you if you want to perform the soft reset then it will clear the recent programs list and reset
if(MessageBox(NULL,L"Soft Reset?",L"Reset?",MB_YESNO) == IDYES)
{
RegDeleteKey(HKEY_CURRENT_USER,L"Software\\Microsoft\\Shell\\TaskSwitch");
SetSystemPowerState(NULL,POWER_STATE_RESET,POWER_FORCE);
}
}
I'm still looking for a way to clear the recent programs list without doing a soft reset??????????????

mrgino said:
this doesnt seem to work anymore on WM6...can someone possibly update the program?
Click to expand...
Click to collapse
Forget that exe, use #9 method, won't take you more than a minute.

Just like another program called Clear Temp ...

Related

[Q] Need help on Aroma Installer.

Hi guys.
I need some help on Aroma Installer and how to configure it.
I know up to how to add the Aroma Installer, and choose it's theme.
But, I want to learn a bit more about how to add options.
e.g Select Launcher
Select Music Player
Select Theme.
etc.
How can options be added to the Aroma Installer?
Lots of reading to be done here....
http://forum.xda-developers.com/showthread.php?p=28706056
Sent from my GT-I9300 using xda app-developers app
Download the AROMA installer 2.56 from the thread and have a look through the files. All the files will be in the META-INF folder. The ones you want are all the way into the /aroma/ folder.
You want aroma-config and updater-script. If you don't know EDIFY... then you need to go and read up on EDIFY first. The two files are heavily annotated so it's quite easy to follow. You can/should also download a ROM that uses it and read through how they've implemented it. Darkside Agent who cooks CodecROM said I could freely look through his and see how he's done things. You could look at his, and I will extend the same and let you look through mine
This may be a good place to start also:
http://alpha-techs.co.uk/files/roms/ultima/Mods/Mega_Wipe_AROMA.zip
Compare it to the default installer with the examples (Aroma-installer-2.56.zip) or use it as a base and modify it to your liking. I don't mind.
Looking at my Mega_Wipe script, in aroma-config you see this:
Code:
selectbox(
"Mega, Super and Simple Data Wipe",
"Which method would you like to use?",
"@alert",
"clear.prop",
"Make your selection", "", 2, #-- Group 1. key = "selected.1"
"Mega Wipe", "Wipe EVERYTHING (System, Data, Preload and internal storage)", 0, #-- selected.1 = 1
"Wipe Data", "Wipe System Data, Dalvik Cache and Cache", 0, #-- selected.1 = 2
"Simple Wipe", "Wipe Cache and Dalvik Cache", 1 #-- selected.1 = 3
);
To add another choice you simply add something else like this ^ replacing everything as you see fit.
I suggest editing in notepad++ and setting the language to shell.
PM me if you need help and I'll try.
Download this zip and have a look in 2 files:
Aroma-config and
Updater-script
This is the configuration I use for my ROM.
Look at both the files side-by-side. Basically what happens here is you ask the user to choose an option, that option number 1,2,3,4 etc is stored in the cache in file.prop..
This value is then used to flash the respective files using IF-Then statement..
If you don't get to understand anything ping me..
I tried to put a selection in launcher. But it says bad in cwm.
What's wrong in this aroma-config file:
Code:
textbox(
#-- Title
"rom",
#-- Subtitle
"CHANGELOG",
#-- Icon
"@update",
#-- Arg 4
resread("changelogs.txt")
);
###########################################################################
# rom Aroma Config #
###########################################################################
selectbox(
"Launchers",
"Select the desired Launcher you wish to use",
"launcher.prop",
"**Default is Xperia Launcher**", "", 2, #-- Group 1. key = "selected.1"
"Xperia Launcher", "Use Xperia Launcher as default in your rom", 1, #-- selected.1 = 1
"Holo Launcher", "Use Holo Launcher as default in your rom", 0, #-- selected.1 = 2
);
appendvar("installmsg","\n\nPlease Select Installation Type Below:");
install(
"Installing",
"<#999>Now flashing rom...\nPlease Wait...</#>",
"icons/install"
);
masterex567 said:
I tried to put a selection in launcher. But it says bad in cwm.
What's wrong in this aroma-config file:
Code:
textbox(
#-- Title
"rom",
#-- Subtitle
"CHANGELOG",
#-- Icon
"@update",
#-- Arg 4
resread("changelogs.txt")
);
###########################################################################
# rom Aroma Config #
###########################################################################
selectbox(
"Launchers",
"Select the desired Launcher you wish to use",
"launcher.prop",
"**Default is Xperia Launcher**", "", 2, #-- Group 1. key = "selected.1"
"Xperia Launcher", "Use Xperia Launcher as default in your rom", 1, #-- selected.1 = 1
"Holo Launcher", "Use Holo Launcher as default in your rom", 0, #-- selected.1 = 2
);
appendvar("installmsg","\n\nPlease Select Installation Type Below:");
install(
"Installing",
"<#999>Now flashing rom...\nPlease Wait...</#>",
"icons/install"
);
Click to expand...
Click to collapse
Don't put a "," after the 0 in the last line...
Code:
"Holo Launcher", "Use Holo Launcher as default in your rom", 0, #-- selected.1 = 2
zoot1 said:
Don't put a "," after the 0 in the last line...
Code:
"Holo Launcher", "Use Holo Launcher as default in your rom", 0, #-- selected.1 = 2
Click to expand...
Click to collapse
Okk.
I did that and now the package doesn't show errors in CWM.
The aroma works fine.
Is it ok, if there is no launcher in the \system\app but just in the Apps\launchers folder?
After "Installing Launcher"
it gives an error saying:
file_getprop: failed to stat
"/tmp/aroma/launcher.prop": No such file or directory..
Why is that problem occuring?
Plus the rom no longer boots.
Reboots automatically into recovery.
Logcat says:
- exec '/system/bin/sh' failed: Permission denied (13) -
Anyone?
It's okay to not have a launcher included in the rom.. However if the launcher flash fails.. Your system will show a black screen after booting..
Don't know what is causing the other problems.. Somehow the launcher.prop file is not getting created..
Send me the meta folder I will have a look and try to find out he problem.. Also the error log
sent from here, there, somewhere!!
zoot1 said:
It's okay to not have a launcher included in the rom.. However if the launcher flash fails.. Your system will show a black screen after booting..
Don't know what is causing the other problems.. Somehow the launcher.prop file is not getting created..
Send me the meta folder I will have a look and try to find out he problem.. Also the error log
sent from here, there, somewhere!!
Click to expand...
Click to collapse
I have sent a link of the meta-inf to your pm.
Thanks
masterex567 said:
I have sent a link of the meta-inf to your pm.
Thanks
Click to expand...
Click to collapse
Things which noticed at first glance are:
1.in
Code:
selectbox(
"Launchers",
"Select the desired Launcher you wish to use",
"launcher.prop",
The launcher.prop command is in the location of the icon file
try adding
Code:
"@icon",
above launcher.prop command
2. the comma "," is still there after the last zero (0)
3. Try adding the restart command in the end
modify these lines to suit your needs and add in the end
Code:
ini_set("text_next", "Finish");
checkviewbox(
"Installation Completed",
"<#selectbg_g><b>Congratulation...</b></#>\n\n"+
"<b>"+ini_get("rom_name")+"</b> has been installed into your device.\n\n"+
"Installer Status: "+getvar("retstatus")+"\n\n",
"@welcome",
"Reboot your device now.",
"1",
"reboot_it"
);
if
getvar("reboot_it")=="1"
then
reboot("onfinish");
endif;
zoot1 said:
Things which noticed at first glance are:
1.in
Code:
selectbox(
"Launchers",
"Select the desired Launcher you wish to use",
"launcher.prop",
The launcher.prop command is in the location of the icon file
try adding
Code:
"@icon",
above launcher.prop command
2. the comma "," is still there after the last zero (0)
3. Try adding the restart command in the end
modify these lines to suit your needs and add in the end
Code:
ini_set("text_next", "Finish");
checkviewbox(
"Installation Completed",
"<#selectbg_g><b>Congratulation...</b></#>\n\n"+
"<b>"+ini_get("rom_name")+"</b> has been installed into your device.\n\n"+
"Installer Status: "+getvar("retstatus")+"\n\n",
"@welcome",
"Reboot your device now.",
"1",
"reboot_it"
);
if
getvar("reboot_it")=="1"
then
reboot("onfinish");
endif;
Click to expand...
Click to collapse
I remove the comma, but leave the quotes? (" ") ??
masterex567 said:
I remove the comma, but leave the quotes? (" ") ??
Click to expand...
Click to collapse
no no..quotes were just to highlight the comma..it will be
0 #-- selected.1 = 2
zoot1 said:
no no..quotes were just to highlight the comma..it will be
0 #-- selected.1 = 2
Click to expand...
Click to collapse
Ok.
here's the whole aroma config:
Code:
##
#
# AROMA Installer - based on the Mod-installer by KamikaZeeFu
# (c) 2011 by Ahmad Amarullah
# amarullz - xda-developers
# http://www.amarullz.com/
theme("ics");
calibrate("0.9263","21","0.9944","1","yes");
viewbox(
"<#999>Welcome</#>",
"\n\n\n\n\n"+
" <#999>This is the Installation Procedure to Flash</#>\n"+
" <#999>rom</#>\n\n"+
"\n\n\n"+
"<#999>Press Next to continue the installation...</#>",
"icons/info"
);
textbox(
#-- Title
"rom",
#-- Subtitle
"CHANGELOG",
#-- Icon
"@update",
#-- Arg 4
resread("changelogs.txt")
);
###########################################################################
# rom Aroma Config #
###########################################################################
selectbox(
"Launchers",
"Select the desired Launcher you wish to use",
"@icon",
"launcher.prop",
"**Default is Xperia Launcher**", "", 2, #-- Group 1. key = "selected.1"
"Xperia Launcher", "Use Xperia Launcher as default in your rom", 1, #-- selected.1 = 1
"Holo Launcher", "Use Holo Launcher as default in your rom", 0, #-- selected.1 = 2
);
appendvar("installmsg","\n\nPlease Select Installation Type Below:");
install(
"Installing",
"<#999>Now flashing rom..\nPlease Wait...</#>",
"icons/install"
);
);
ini_set("text_next", "Finish");
checkviewbox(
"Installation Completed",
"<#selectbg_g><b>Congratulation...</b></#>\n\n"+
"<b>"this rom "</b> has been installed into your device.\n\n"+
"Installer Status: "+getvar("retstatus")+"\n\n",
"@welcome",
"Reboot your device now.",
"1",
"reboot_it"
);
if
getvar("reboot_it")=="1"
then
reboot("onfinish");
endif;
Code:
"Holo Launcher", "Use Holo Launcher as default in your rom", 0 #-- selected.1 = 2 );
That comma is still there..use the code from above..
zoot1 said:
Code:
"Holo Launcher", "Use Holo Launcher as default in your rom", 0 #-- selected.1 = 2 );
That comma is still there..use the code from above..
Click to expand...
Click to collapse
Ok. Hit the Thanks button once again.
I'll test soon, and post the results.
Thanks again.
Okk.
I tried it.
And
It says:
Code:
SYNTAX ERROR!!! aroma-config on line 52 col 2.
E:Error in /sdcard/rom.zip
(Status 1)
The log shows:
Code:
aroma/s: Starting Release
aroma/s: Font released
aroma/s: Input Released
aroma/s: Archive released
aroma/s: Closing Freetype
aroma/s: Graph Released
aroma/s: Cleanup Temporary
aroma/s: Check for Reboot
aroma/s: Closing Recovery Pipe
E: Error in /sdcard/rom.zip
This is what is at line 59 of the aroma config:
Code:
ini_set("text_next", "Finish");
masterex567 said:
Okk.
I tried it.
And
It says:
Code:
SYNTAX ERROR!!! aroma-config on line 52 col 2.
E:Error in /sdcard/rom.zip
(Status 1)
The log shows:
Code:
aroma/s: Starting Release
aroma/s: Font released
aroma/s: Input Released
aroma/s: Archive released
aroma/s: Closing Freetype
aroma/s: Graph Released
aroma/s: Cleanup Temporary
aroma/s: Check for Reboot
aroma/s: Closing Recovery Pipe
E: Error in /sdcard/rom.zip
This is what is at line 59 of the aroma config:
Code:
ini_set("text_next", "Finish");
Click to expand...
Click to collapse
there is an extra
Code:
);
before
Code:
ini_set("text_next", "Finish");
remove it and let me know how it goes.
zoot1 said:
there is an extra
Code:
);
before
Code:
ini_set("text_next", "Finish");
remove it and let me know how it goes.
Click to expand...
Click to collapse
I removed it.
Problem still persists.
This is what is above line 59:
Code:
install(
"Installing",
"<#999>Now flashing Droid ACE v2.1...\nPlease Wait...</#>",
"icons/install"
);
ini_set("text_next", "Finish");
checkviewbox(

[SOLVED] [Q] Help please for Aroma

Hi, i try to make a rom with aroma installer.
Since this morning I'm stuck on this problem : there's no error when I run, but during installation I propose a choice for system apps installation. or two of them a second choice is needed.
when i selected one (thememangager) the new selectbox comes.
but for second (livewallpaper) nothing happens, it goes to next. As if there's no choice. I've read and read again, but I can't find my problem.
Could someone help me please? (i've join the text in that show content)
Thanks in advance...
HTML:
checkbox(
"System Apps",
"Select the apps you want to install: ",
"@apps",
"systemapps.prop",
"Choose System Apps", "", 2,
"Email", "Exchanges services", 0, #-- item.1.1
"Bluetooth", "If you use Bluetooth, needed", 0, #-- item.1.2
"DSP Manager", "Manage the sound for headphones, speacker, and bluetooth", 0, #-- item.1.3
"GooManager", "Not a needed for MuSPaC but I you want...", 0, #-- item.1.4
"LockClock", "Time, weather, calendar in one widget customizable", 1, #-- item.1.5
"Performance Control", "More options to set perf of your Ace", 1, #-- item.1.6
"Theme Manager", "Choose between original or manage hdpi themes", 1, #-- item.1.7
"Torch", "It can help to use Pie's or statusbar's torch shotrcut, but...", 1, #-- item.1.8
"Voice Dialer", "Original voice recognition", 0, #-- item.1.9
"WallPaper picker", "To manage wallpaper in other way that the gallery", 0, #-- item.1.10
"LiveWallPaper Picker", "May not be installed"+
"To manage the LWP, but watch out for your battery", 0 #-- item.1.11
);
#ThemeManager
if
file_getprop("/tmp/aroma/systemapps.prop","item.1.7") == "1"
then
selectbox(
"Theme Manager",
"Wich Theme Manager do you want ?",
"@thememan",
"systemapps.prop",
"Choose", "", 2,
"Hdpi", "To enable Hdpi themes", 1,
"Normal", "Most of themes just need this one", 0
);
else
writetmpfile(
"systemapps.prop",
"selected.1=0\n"
);
endif;
#LiveWallpaper
if
file_getprop("/tmp/aroma/systemapps.prop","item.1.11") == "1"
then
checkbox(
"Live Wallpaper",
"Which Live Wallpaper(s) would you like?",
"@lwp",
"livewall.prop",
"Choose", "", 2,
"Deep Sea", "Translucent Jellyfish swim through the deep sea.", 0,
"Luminous Dots", "Glowing dots move smoothly across the screen as if alive.", 0,
"Noise Field", "Bubbles fade in and out of view as they swirl across the screen.", 0,
"Phase Beam", "Relaxing pulses of colour and light move serenely across the screen.", 0
);
else
writetmpfile(
"livewall.prop",
"item.1.1=0\n"+
"item.1.2=0\n"+
"item.1.3=0\n"+
"item.1.4=0\n"
);
endif;
I finally found my answer : stop to search solution will come alone.
if it can be useful to someone : 1 choice = 1 *.prop file.
so first choice is the sytem apps (systemapps.prop). Then if required you'll go to the 2nd or 3d choice. Here theme manager and LWP picker. So thememan.prop and lwp.prop.
If, like me, you put twice systemapps.prop, it will or rewrite the file erasing the the first time, or considering it is yet choosen. That's why it didn't work.
Re: [Q] Help please for Aroma
Better than aroma try dsixda kitchen.
"NEVER CALL YOURSELF NOOB BE A NEWBIE"
PM me if u need help
Sent from MOON......
Moonguy75 said:
Better than aroma try dsixda kitchen.
"NEVER CALL YOURSELF NOOB BE A NEWBIE"
PM me if u need help
Sent from MOON......
Click to expand...
Click to collapse
Thanks but why would I prefer? Have you tried? What in more?
I've read fastly, but thread is indicate as closed, so for any question it risk to be difficult!?
Aroma semmed to be easier... and I'd like to not read again some pages and pages to learn a new kind of program. (sure if i can't manage to work it, i'll think twice about!)
It's not that my rom don't run or stopped for error. It works before and after. Just the second menu doesn't appear.
Anyway thanks for your purpose (and for explaination for dsixda if you want to learn me).
Anybody else an idea?

Can you help with installer aroma?

I modified the installer aroma to include some optional installation apps, I edited the files "aroma-config" and "updater-script" but when you start the installation appears:
SYNTAX ERROR! aroma-config on line 380 col 2
(status 1)
Installation aborted
look in aroma-config on line 380 but only shows this:
PHP:
#--------[ Initial Value = 0: Unselected, 1: Selected, 2: Group Item, 3: Not Visible ]---------#
); (line 380)
##
#
# Next Screen is Installation UI, So change the next button text to "Install Now"
#
could someone help me?
thanks
I remember in android themes or general there is a thread for aroma installer q and a. U can ask there to get best help
Sent from my Xperia Neo V using Tapatalk 2
PHP:
###################################################################################################################
#
# STEP 8 - CUSTOMIZE YOUR INSTALLATION
#
checkbox(
#-- Title
"Customize",
#-- Sub Title
"Choose items what you desire as utilites",
#-- Icon: <AROMA Resource Dir>/icons/personalize.png or <ThemeDir>/icon.personalize.png
"@personalize",
#-- Will be saved in /tmp/aroma/customize.prop
"customize.prop",
#------------------------------------------------[ Checkbox Without Group ]----------------------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-------------------------------------------------------------------------------------+---------------#
"App", "", 2, #-- Group 1. key = "item.1.x"
"Advanced Task Killer Pro","Advanced Task Killer Pro", 0, #-- item.1.3
"Download Music Info","Xperia Download Music info app works on both BL", 0, #-- item.1.4
"Sony's Facebook Integration","Facebook Integration for Xperia devices", 0, #-- item.1.5
"Stock Keyboard GB","Gingerbread keyboard stock", 0, #-- item.1.10
"Gallery Google","Gallery Google more Camera HOLO", 0 #-- item.1.7
SYNTAX ERROr...373 col 17 "Root Explorer","Explorer rooted system file manager", 0, #-- item.1.1
"Titanium backup","This app is used to backup user apps and system apps", 0, #-- item.1.2
"Link2SD","Their phone to move applications to the SD card.", 0, #-- item.1.9
"Boost My Xperia","Tiny yet Powerfull Tool", 0, #-- item.1.6
"Seeder","LAG Reduction", 0, #-- item.1.8
#--------[ Initial Value = 0: Unselected, 1: Selected, 2: Group Item, 3: Not Visible ]---------#
);
##
#
# Next Screen is Installation UI, So change the next button text to "Install Now"
#
ini_set("text_next", "Install");

Extract lg bridge (lbf) backups

LG bridge is a nice utility to backup and restart app data on an lg phone. The problem is it can only restore to another lg phone . If you have a LG Bridge backup and then your phone dies like the boot loop of death then if your only backups are google and lg bridge there might be data you can't restore on a new non LG phone.
I've done a lot of searching and have not found a tool that would let you extract the contents of the backup. I did notice that 7zip was able to find one apps worth of the backup. after some digging it looks like for the most part the lbf file is a series of tar files combined. I've started working on a tool to extract the tar's out of the file. Right now my method is very crude and works more like a file carver then anything else. I'm able to extract most of the data from a backup but not all of it. consider this a v0.0.1. I wanted to share what I have now in it's current state because it might be useful for others. I do currently plan on improving the code (and likely hosting it on github) and then porting it to java or some other language that's a little easier to run on windows.
For v1 I would like to figure out the data structure some more to see if they have some sort of file table that I didn't see last night when I wrote this.
I'm not going to provide much documentation right now other then below is the php script and it looks for your backup called LGBackup.lbf in the same folder. The tars will be named something like "data_app_com.netflix.mediaclient-2_base.ap.tar" so it gives you an idea of what's inside each tar. I know it's not extracting the whole tar for each app and there's some apps that are larger then they should be like I said earlier this is not finished code but it should mostly work.
Code:
<?php
$handle = fopen("LGBackup.lbf", "rb");
$chunkSize = 4096;
$tarFooter = str_repeat(chr (0), $chunkSize);
$cnt = 0;
$tar = "";
$lastBuff = "";
while (($buffer = fread($handle, $chunkSize)) !== false) {
if ($buffer == "") {
exit('finished');
}
$lastBuff = $buffer;
$cnt++;
if ($buffer === $tarFooter) {
$footBuffer = $buffer;
while ($buffer === $tarFooter) {
$buffer = fread($handle, $chunkSize);
$cnt++;
$footBuffer .= $buffer;
}
for ($i = 0; $i < strlen($buffer); $i++) {
if ($buffer[$i] !== chr(0)) {
break;
}
}
$tar .= substr($buffer, 0, $i - 1);
for ($b = 0; $b < 200; $b++) {
if ($tar[$b] === chr(0)) {
break;
}
}
$filename = str_replace("/", "_",substr($tar, 0, $b - 1)) . '.tar';
var_dump($filename);
if (strpos($filename, 'data_') === 0){
$fp = fopen($filename, 'w');
fwrite($fp, $tar);
fclose($fp);
}
$tar = substr($buffer, $i);
} else {
$tar .= $buffer;
}
}
fclose($handle);
I've done some more digging and it looks like reading the data at the very start and end of the file is going to be a lot more complex then I'm interested. My personal urgency has deceased as lg has supposedly repaired my boot looping g4 . I made some minor tweaks to my code and it works a little better now I found I got the most data back by running my updated script and then using gnu tar to extract the tar's it made. for some reason it was able to overcome some of the corruption that 7zip didn't want to deal with. I'll attach a new file to the first post.
I think the next and possibly last thing I'm going to try is parse the tar file so I know how long each file is. Right now I'm just looking for 1k of null bytes but that's not always right as some times there's less and some times there could be 1k of null bytes inside of the zip.
LBF tool
Hi! I have looked into lbf files recently and here are my findings (including simple way to extract data).
https://forum.xda-developers.com/android/general/tool-lg-restore-com-lge-bnr-lbf-file-t4053579
I am new to XDA, but please let me know what you think.

AndroModding

Requirements:
1) Have the .apk file you want to hack.
2) Have WinRar installed on your PC. (*Download WinRar 32bit*|*Download WinRar 64bit*)
3) Have .NET Reflector. (*Download .NET Reflector 9.0*)
4) Have "Reflexil", a required Plugin to hack files with .NET Reflector. (*Download Reflexil Plugin for .NET Reflector*)
5) Have an APK SIGNER. I personally use the one-click signer. (*Download one click apk signer*)
Get Ready
Let's prepare our workspace:
1) The first step is to look inside our .apk file, in order to be sure it can be hacked with this method. What we will do is to rename the apk from .apk to .zip;
2) Double click on the .zip file and you should be able to open it with WinRar. If not, make right-click and select "Open With..." and then chose "WinRar";
3) Try to go to the following location: assets/bin/Data/Managed/. If you reached it succesfully, and if you see lots of .dll files inside it then YES, you can hack this game (or you can TRY hacking it) using .NET Reflector!
4) Now, extract the whole "Managed" folder wherever you like (I personally have a folder on my Desktop I exclusively use to hack games, where I put all the softwares I need to hack them).
5) Open ".NET Reflector", move ALL THE .DLL FILES from the "Managed" folder inside it (move them in the LEFT box of Reflector).
6) Press F3, then press Ctrl+M. This will enable the Search box and set it properly for our scopes. Please note this must be done EVERY TIME you open .NET Reflector.
7) Launch Reflector (if you read the "ReadMe.txt" into the Reflexil folder of my download link above, you already know how to launch it. Otherwise, well, click on the Gear icon or go to Tools -> Reflexil and click on it)
Ok, we managed to set up everything properly and we can finally start hacking!
Let's start
So, let's read what I'll write below very carefully, since it's easy to understand if you spend enough time reading, ok?
1) The first step, after you grabbed your .apk file is to open it with WinRar (I personally rename the extension to .zip in order to open it automatically with WinRar, but you can simply do Right Click on the .apk file and select "Open With..." -> WinRar).
2) Browse to the following path, inside the WinRar window: assets/bin/data/Managed/, like the screenshot below:

3) Extract (you can simply drag them) all the .dll files of this archive into your desired folder (or, to be faster, just drag the entire "Managed" folder of the archive out of it.
4) Now, Open NET Reflector, press F3 and Ctrl+M (this must be done every time, to quickly set up NET Reflector for our usage), load the "Reflexil" plugin by clicking on the Gear icon and move all the .dll files inside .NET Reflector's window (at the left, like in the screenshot below):

Now we're ready to search, so input your desired keyword in the Search Box and edit the desired code, like in the Screenshot below. Watch it carefully:

6) To edit the code, you need to right-click on the desired instruction you want to modify and select "Edit". When you're done with edits, click on Update, like in the screenshot below:

7) Now, let's save our code. To do this, in the Left panel of .NET Reflector, scroll up until you find the name of the Assembly you modified, then do Right Click -> Reflexil -> Save, like in the screenshot below:

8) It'll add ".Patched" to the original name the of the .dll file, so you know which one is the modified and which one is the original .dll file. Now, to be sure we modified the right code, let's load again the Assembly into .NET Reflector, to see how it does look now. (this step is optional, but recommended if you're not 100% sure the hack is properly coded:

9) Ok, in my example the codes were right so we can proceed adding the modified .dll file to our original .apk file. So we open the .apk file again with WinRar and replace the original "Assembly-Csharp.dll" (or any other .dll files you modified) with the one containing ".Patched", but of course, you need to rename the file to its original name, or the game will not load. So, in my example, I renamed Assembly-Csharp.Patched.dll to Assembly-Csharp.dll in order to restore its original name.
10) Now it's time to sign it (or you can add*toast*before singning apk if you want, before signing the .apk file). So we move the modified .apk file in the same folder of the "one_click_signer.cmd" file (or, if you use another apk signer, use your method to sign it), then we open it by double-clicking it and a Command Prompt window will appear.
All we need to do is to type:
"name of the apk file.apk"
and press Enter, like in the screenshot below (don't forget the "" symbols, they are part of the code you need to write!):

11) That's it! Our MOD APK file is ready! You'll find a new .apk file in this folder, starting with "signed-". This is the signed .apk file you can finally share! But first, of course, test the game and ensure it does properly work. If yes, it means you're a good hacker and you can finally upload the .apk file to share it with everyone! If the .apk file is not properly working, or if the codes you made aren't showing, well, don't lose hope! Just try again, modifying some other offsets! Good luck!
FAQs:
If you need help, as always, reply below and I'll be glad to add further details or to give you an helping hand!*
Do you have an Int32?
You can return a value this way:
ldc.i4 -> Int32 -> Your_Value (no limits)
ret
or
ldc.i4.s -> SByte -> Your_Value (max 128)
ret
Do you have an Int64?
You can return a value this way:
ldc.i8 -> Int64 -> Your_Value
ret
Do you have a Single?
You can return a value this way:
ldc.r4 -> Single -> Your_Value
ret
Do you have a Double?
You can return a value this way:
ldc.r8 -> Double -> Your_Value
ret
Do you have a "Boolean"?
I'm used to compare "Boolean" with a question. Basically, it "asks" something to the game, and the game will answer with True (yes) or False (no).
For example: get_isVip will "ask" the game if the user is a VIP, and the game will probably answer "No, he's not a VIP!!!", so what can we do here?
We have two ways. The first (easier, but you will not learn much..) is about returning always True (yes), while the second (not alwasy applicable, but it's the "pros" way) is about making the game thing you're a VIP for real.
But first, let's explain how to return "True" or "False" in the game.
True = ldc.i4.1 (or ldc.i4 -> Int32 -> 1)*
False = ldc.i4.0 (or ldc.i4 -> Int32 -> 0)
Beware that you must always use ldc.i4 (and not ldc.r4, ldc.i8 and so on..) or the game will crash.
So, the easiest way to always return True (or False) to a Boolean is to replace the whole function with:
[TRUE]
ldc.i4.1
ret
[FALSE]
ldc.i4.0
ret
Now, let's talk about the pros' method. As we said above, it's all about making the game think you're a VIP for real, so the Boolean will naturally return a true value, even if we both know you're not a VIP for real in the game (of course I talk about VIP to make an example, you can replace the word "VIP" with anything. For example, "get_isUnlocked" or simply "IsUnlocked" is a boolean to unlock stuff in the game and so on.. it's up to you to find the right keyword to hack a value).
Sometimes, there are some "checks" to ensure if you're a VIP or not. For example, the game checks you VIP level and, if it's equal to 0 returns a false, while if it's higher than 0, it returns true.
It should look like this (very basic example) in NET Reflector decompilation window:
get_isVip {
if (this.Player.get_vipLevel) > 0*
{
return true
}
return false
}
And, in Reflexil (the plugin's window you have at the bottom) you should see something like:
0 ldarg.0
1 ldfld Player.get_vipLevel
2 ldc.i4 0
3 bge (6 -> ldc.i4.1)
4 ldc.i4.0
5 br (7 -> ret)
6 ldc.i4.1
7 ret
Now, it's not that hard to understand what Reflexil says. Let's compare the text with the NET Reflector's decompiled code:
ldarg.0 -> "this."
ldfld -> loads the value, in particular, the one about the Player's vip Level
ldc.i4 0 -> it means 0, referring to the player's vip level
bge (6 -> ldc.i4.1) -> it means "branch if greather than". This means, if the Player's vip Level (ldarg.0 + ldfld) is greather than 0 (ldc.i4 0), the function will jump to the sixth function (ldc.i4.1 which means true)
ldc.i4.0 -> which means false. If the function didn't jump to the ldc.i4.1, the game will return this value (false) so the player will not be a VIP
br (7 -> ret) -> this will jump to the 7th function, which is the "ret". Of course, after returning the false, the function needs to close itself, so it'll jump to the "ret" at the end of it.
ldc.i4.1 -> this means true and it's called by the "bge" we've seen above. This is the only way this value is called so, if the player value is higher than 0, this will be the next value returned = the Player IS a VIP.
ret -> You know better than me that "ret" ends the function. Remember EVERY function in the game must end with "ret" or the game will not work properly.
So, after this long and boring lesson, what's the pros' way to hack this?
The answer is in your brain. If the player vip level is higher than 0, the player will be a VIP so what will we do? Of course, we'll hack the player vip level! How? Simply look for "get_vipLevel" (please note this is just an example, it doesn't apply to any particular games and the keyword could change) and it'll probably be an Int32 so you'll simply replace its whole function to:
ldc.i4 -> Int32 -> 15 (for example, as most games with the VIP interface caps the VIP level at 15, while some other have got 10 as VIP level's cap)
ret
This will not only automatically enable your VIP membership, but it will also give you a VIP level = 15.
Please note, even if we manage to hack the VIP level in particular, some online games will still NOT give you the privileges of the VIP membership, or you will get only some of them. Why? Because sometimes the vip level in online games is managed by the server, so you could be the only one seeing you're a VIP member, while all the other people will see you're NOT a VIP member, because you're not a VIP for the server. So, if this value is server-sided, you may still not be able to get your vip privileges with this hack.
How to multiply a value?
Easy, you have to add the number you want to multiply the value with followed by "mul", before the "ret" or, to be more precise, after the function returns the value you want to hack.
Example:
ldarg.0 (which means "this.")
ldfld Player::get_money
ldc.i4 (or ldc.i8, or ldc.r4, or ldc.r8. Which one? See my above examples) -> Int32 (or Int64, or Single, or Double. Which one? See my above examples) -> Your_Value
mul
ret
Sometimes the function returns different values if different events occur, so it could be necessary to multiply more values.
How to divide/subtract/add a value?
It's the same as before, you just need to use "div" (or "sub" or "add") and not "mul" (div = divide, mul = multiply, sub = subtract, add = add).
What's the difference between multiplying something and simply returning 9999999?
The main difference is that returning 9999999 will give a STATIC value. It will never decrease/increase, while multiplying (or adding) a value will give a DYNAMIC value, so you can run out of money, but you theorically also have a lower ban chance. Don't think about 9999999 only when talking about money. This could be HP or Damage or XP and so on..
We are Cracker.
Help
Hey I’m new to this. I was wondering if there is another method to this because my game doesn’t have the dll files there. It has some folders such as meta data. Thanks
So i modded a dll from a multiplatform .NET app and it works fine when using it on PC. But when placing it in the app, all i get is a black screen.

Categories

Resources