[Android General] the_pirate_predator:
Here, I present you the quick guide on porting my project (codename: OTX) which is capable of removing bloatwares that are selectable by the user in the aroma-installer. You may think that this script has already been made for your device. But you can notice a new thing in my project that it is user selectable. Nobody has made it till now. I think it is because of the limitations in the aroma installer that made people stop working on this very type of project. I too had the same feel when I was working on it. I asked my friends, posted on facebook, asked a question on aroma-installer thread but no support came from any of them. So I figured it out myself and made the project. And now, let me not make you feel bored and start the work.

Download the file from my original thread. Link: Click here to view thread

If you use Samsung Galaxy Y, you can directly download and use it. I have made this guide for other devices.

Extract the zip named "signed_OTX_BLOAT.zip" and look into its contents.

Now go to META-INF > com > google > android > place_holder

In the aroma-config, you will see something like this:

###################
#Install Select box
###################

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox.prop",
"Select what you want", "", 2,
"<b>Alert Recipients</b>","", 0,
"<b>AxT9IME</b>","", 0,
"<b>Bluetooth</b>","", 0,
"<b>Bluetooth Pbap</b>","", 0,
"<b>Bluetooth Test Mode</b>","", 0,
"<b>Browser</b>","", 0,
"<b>Calculator</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox1.prop",
"Select what you want", "", 2,
"<b>Calendar</b>","", 0,
"<b>Calendar Provider</b>","", 0,
"<b>Clock Widget</b>","", 0,
"<b>Default Container Service</b>","", 0,
"<b>Desk Clock</b>","", 0,
"<b>Dual Clock</b>","", 0,
"<b>Email</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox2.prop",
"Select what you want", "", 2,
"<b>Email Widget</b>","", 0,
"<b>Factory Test</b>","", 0,
"<b>Fm Radio</b>","", 0,
"<b>Fotaclient</b>","", 0,
"<b>Gallery 3D</b>","", 0,
"<b>Genie Widget</b>","", 0,
"<b>Gmail</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox3.prop",
"Select what you want", "", 2,
"<b>Google Backup Transport</b>","", 0,
"<b>Google Calendar Sync Adapter</b>","", 0,
"<b>Google Contacts Sync Adapter</b>","", 0,
"<b>Google Feedback</b>","", 0,
"<b>Google Quick Search Box</b>","", 0,
"<b>Google Services Framework</b>","", 0,
"<b>HTML Viewer</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox4.prop",
"Select what you want", "", 2,
"<b>Job Manager</b>","", 0,
"<b>lcdtest</b>","", 0,
"<b>Live Wallpapers Picker</b>","", 0,
"<b>Maps</b>","", 0,
"<b>Market Updater</b>","", 0,
"<b>Media Uploader</b>","", 0,
"<b>Memo</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox5.prop",
"Select what you want", "", 2,
"<b>Mobile Tracker Engine Two</b>","", 0,
"<b>Music</b>","", 0,
"<b>My Files</b>","", 0,
"<b>Network Location</b>","", 0,
"<b>PCWClientS</b>","", 0,
"<b>Phonesky</b>","", 0,
"<b>PicoTts</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox6.prop",
"Select what you want", "", 2,
"<b>PopupuiReceiver</b>","", 0,
"<b>PowerOnOffTest</b>","", 0,
"<b>Protips</b>","", 0,
"<b>Quickoffice</b>","", 0,
"<b>Samsung Apps</b>","", 0,
"<b>Samsung Apps UNA2</b>","", 0,
"<b>Samsung Apps UNA3</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox7.prop",
"Select what you want", "", 2,
"<b>Samsung Widget_ProgramMonitor</b>","", 0,
"<b>Samsung Widget_StockClock</b>","", 0,
"<b>Samsung Widget_WeatherClock</b>","", 0,
"<b>Screen Capture Service</b>","", 0,
"<b>Security Provider</b>","", 0,
"<b>SelfTest</b>","", 0,
"<b>Share App</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox8.prop",
"Select what you want", "", 2,
"<b>signin</b>","", 0,
"<b>SnsAccount</b>","", 0,
"<b>SnsProvider</b>","", 0,
"<b>Stk</b>","", 0,
"<b>Street</b>","", 0,
"<b>Swype</b>","", 0,
"<b>syncmldm</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox9.prop",
"Select what you want", "", 2,
"<b>syncmlds</b>","", 0,
"<b>TalkorHangouts</b>","", 0,
"<b>talkback</b>","", 0,
"<b>TtsService</b>","", 0,
"<b>TwWallpaperChooser</b>","", 0,
"<b>UnifiedInbox</b>","", 0,
"<b>UserDictionaryProvider</b>","", 0
);

checkbox("","<b>Bloatware Remover</b>",
"@alert",
"checkbox10.prop",
"Select what you want", "", 2,
"<b>VoiceRecorder</b>","", 0,
"<b>VoiceSearch</b>","", 0,
"<b>VpnServices</b>","", 0,
"<b>wipereceiver</b>","", 0,
"<b>WlanTest</b>","", 0,
"<b>wssyncmlnps</b>","", 0,
"<b>YouTube</b>","", 0
);

In aroma-config, change the names of the applications that you want to include as bloatware and make sure these apps are safe to be removed and does not cause any stability issues to the device.

I have declared more separate checkboxes for giving the selection. It is because of the limitation in aroma-installer. You will surely think that it has more number of pages are there for selection. But it is far better than typing one by one that you want to delete. I have made 7 selection per checkbox concept. After I made the script and published, I heard that there is upto 10 selection per checkbox option. I don't know whether it is true or not because I haven't tried it yet. You can try it out and if it works, then great. Make a note of the order of the applications written here because correspondingly you are going to delete the bloatwares. Also give separate names for these checkboxes. I have just named it checkbox1.prop, checkbox2.prop, ..., etc. Youi can give any name. But make sure you remember it.

After making changes, just save the file and exit.

In the file updater-script, you will see something like this:

if
file_getprop("/tmp/aroma-data/checkbox.prop","item.1.1") == "1"
then
show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

delete("/system/app/AlertRecipients.apk");
delete("/system/app/AlertRecipients.odex");
ui_print("-> Done");
endif;

if
file_getprop("/tmp/aroma-data/checkbox.prop","item.1.2") == "1"
then
show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

delete("/system/app/AxT9IME.apk");
delete("/system/app/AxT9IME.odex");
ui_print("-> Done");
endif;

if
file_getprop("/tmp/aroma-data/checkbox.prop","item.1.3") == "1"
then
show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

delete("/system/app/Bluetooth.apk");
delete("/system/app/Bluetooth.odex");
ui_print("-> Done");
endif;

if
file_getprop("/tmp/aroma-data/checkbox.prop","item.1.4") == "1"
then
show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

delete("/system/app/BluetoothPbap.apk");
delete("/system/app/BluetoothPbap.odex");
ui_print("-> Done");
endif;

if
file_getprop("/tmp/aroma-data/checkbox.prop","item.1.5") == "1"
then
show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

delete("/system/app/BluetoothTestMode.apk");
delete("/system/app/BluetoothTestMode.odex");
ui_print("-> Done");
endif;

if
file_getprop("/tmp/aroma-data/checkbox.prop","item.1.6") == "1"
then
show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

delete("/system/app/Browser.apk");
delete("/system/app/Browser.odex");
ui_print("-> Done");
endif;

if
file_getprop("/tmp/aroma-data/checkbox.prop","item.1.7") == "1"
then
show_progress(0.1, 0);
package_extract_file("busybox", "/tmp/busybox");
set_perm(0, 0, 0777, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");

delete("/system/app/Calculator.apk");
delete("/system/app/Calculator.odex");
ui_print("-> Done");
endif;

show_progress(0.100000, 0);

ui_print("The process is complete. Reboot the system to use");
ui_print(" ");
ui_print("Made by: the_pirate_predator");

In updater-script, give the names of the checkboxes inside if-loop condition and using item number to check on the selectable options which are inside these checkboxes. Due to limitation of aroma-installer, the item numbers are from item.1.1 to item.1.7. If the limitation is 10, you can try to implement it. Also I recommend using busybox for running this script. You can place it along with META-INF folder at the beginning by creating a folder with a name called tmp. I have made a mistake in my package by not putting it inside the tmp folder, but you should do it. But for me, it still works.

After making changes, just save the file and exit.

Now a important part comes to play in making this project suitable for your device. As I have used update-binary for my device (obtained from hells kernel for sgy) it runs perfectly on my device. If you can find a previously made program which uses aroma for your device, you can copy that. If you dont have such files, then try to get the file from aroma installer itself http://xdaforums.com/devdb/project/?id=330#downloads by extracting the zip and replacing that file in the project. Just try it out. Till then I will search for any alternative (if required).

Now after doing everything, repack the zip properly and sign it using dsixda's android kitchen and check everything is proper and error less.

Now test your device and if it works, just give a credit. Report problems and I will try my level best to correct it. I think I have explained everything clearly.