Change icon theme
(safe method)
1. Get a copy of the desired application's folder from the system (for example the Contact app):
adb pull /system/b2g/webapps/contact.gaiamobile.org
2. Extract the application.zip, search the path of the icons (by reading the manifest.webapp file) and replace the icon with a custom one.
3. Push the app and its folder on the data partition, exactly in /data/local/webapps using a temporary root access:
adb push contact.gaiamobile.org /data/local/webapps
4. Get the webapps.json file:
adb pull /data/local/webapps/webapps.json
And change the value of the contact.gaiamobile.org app
"basePath": "/system/b2g/webapps",
in this way
"basePath": "/data/local/webapps",
Use the JSONLint website to verify that the format is correct for any json file you want to modify.
5. Afther this change push the webapps.json file in its place and reboot the phone:
adb push webapps.json /data/local/webapps/
adb reboot
After rebooting you will se the new icon theme on your app. You can do the same in bulk, by apply the changes in the whole folder. All the changes will be restored after a factory reset or after the update.
(improved by Vivek)