Jump to content

how-to manual mod


Recommended Posts

Posted (edited)

I have learnt a lot from this forum and a few others. I think I should document where I am and how I have modified my firmware, if it helps others. I suppose this is the ethos of open source - learn from others, build on it, and pass it back.

This how-to is for a manual mod on my t-mobile uk 2.1 pulse firmware. In hindsight, I should have started out with the Swedish 2.1, as that is more vanilla. You could do the same with any firmware, any mod or possibly any android device. Rebuild your existing setup, or choose your favourite stable mod, put in on your phone, and start modding yourself. Only caution, I would advise, is to understand what you are about to do (or have a backup), before you make any change. I will list any detailed steps or commands required, where possible or asked for. As such, there are no downloads within this how-to. All downloads are from the android market and/or the android sdk. Ask if you can't find something...

I have done a lot of trial-and-error and subsequently found that many others have been there and done that, ending mostly at a stage better than me. I am still an android newbie comparatively, and by no means an expert or a programmer, though I have been using linux for a few years, and understand c and shell-scripting a little bit. What I list below is running fine on my pulse, and I have had no current issues whatsoever. What you do with your system is entirely your risk. At the very least, make backups at every stage. Don't be afraid of trying out anything. I haven't heard of any instances where a phone has gone totally ka-put!

My main vision was to clear out whatever I could from /system, and fill it up with what I needed, to reclaim /data and keep it as free as possible. The less there was to worry about, the easier it is to work with what is left.

The next goal was to bring it as close as possible to the vanilla firmware. My personal recommendation is to keep as close to upstream as possible, and any required changes to be pushed upstream! Focus for upstream is on generics, and for downstream is on specifics. And this goes for everything - os, kernel, apps, configs, etc. The farther we diverge from upstream with our changes, the more complicated and error-prone will be any further updates. And this increases exponentially with time and down the roadmap. If anyone from t-mobile/huawei (or any others for that matter) is reading this, please take note!!! :)

It seems t-mobile/huawei have gone all-out to customise their firmware so much that, I suspect, it is going to take them a lot of effort in bringing out new updates, which possibly means that any android updates would be very late in coming, at best. We can see this, with the adventure t-mobile are still having in releasing a 2.1 uk update, while the rest of the world are getting 2.2. Perhaps, t-mobile should consider stripping out all customisation and keeping as close to the vanilla firmware, as possible. This should certainly save them a lot of customer-aggro, time and money in releasing new updates. I suspect some t-mobile developers are making sure they keep their jobs... :lol:

Final goal was to tweak and make the firmware more efficient in terms of power, speed, basic phone call performance, etc.

What I have not considered is themes/eye-candy, etc. I am inherently a minimalist, and I prefer no distractions. I have removed all wallpapers, boot-animations, spurious/large ringtones, etc. This reclaims much space, some speed and power.

The quickest and easiest method that I preferred was to boot into recovery mode and use adb via usb. If you don't have (or want to use) the usb cable, adb can connect to your mobile via wi-fi too. I use linux and my laptop runs debian lenny.

Create a text file named "/etc/udev/rules.d/51-udev.rules" with contents

SUBSYSTEMS=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
adb (android debug bridge) is the only tool we need on our computer. You can find more info at http://developer.android.com/guide/developing/tools/adb.html. I will list what is required below. I have copied adb into ~/bin, and it is in my path. You need to do something similar, or prefix the whole path to adb each time. Starting the adb deamon as root, is the first step.
$ sudo adb start-server

* daemon not running. starting it now *

* daemon started successfully *
It seems, the adb deamon does not work if started as an unprivileged user. If it is already running you need to kill it first, before starting as root.
$ sudo adb kill-server
Now you can run all adb commands as a normal user, i.e.
$ adb devices

List of devices attached 

????????????	recovery
Ignore those question marks. For a long time, I assumed that they meant I had no connectivity, and it threw me off. If you don't see any lines, then you need to worry and start troubleshooting. Now, we need to mount the devices.
$ adb shell mount -a
Finally, we are ready to start playing (or hacking)... :(
$ adb shell ls -l /system/app

...

$ adb shell ls -l /data/app

...
Other commands that I've used are: cp, rm, push, pull, reboot and reboot recovery. Nothing too complicated. :-) One command I particularly find useful is "sort". I periodically list all app sizes and prune the bigger ones out, replacing them with smaller ones from the market. App size does matter, as it means the developer is particular about efficient coding, and it eliminates waste on your phone. Any time an app starts going bloatware, I stop using it and uninstall. I continously look for more efficient apps.
$ adb shell ls -l /system/app | sort -n -k5

...

$ adb shell ls -l /system/app | sort -n -k5

...

Apologies in advance, if people find these initial posts changing often. I will update all information here, rather than in a separate post each time, so we might not need to scour all the posts in this thread to find the last update. Also, all tips gratefully received. Please bear in mind that all the information here is credited to others, and I'm happy to mention names where required.

Edited by ve100
Posted (edited)

capacity & utilisation

It is very important to understand the capacity & utilisation! This is mine, with ~100 apps that I've added, including CoPilot Live. Previously, I couldn't even install the CoPilot, which was supplied included in my t-mobile contract. Now, I can install another similar humunguous app, and still have some free space... :lol:

$ adb shell df -h

Filesystem				Size	  Used Available Use% Mounted on

tmpfs					52.7M		 0	 52.7M   0% /dev

/dev/block/mtdblock3	 20.0M	 15.1M	  4.9M  76% /cache

/dev/block/mtdblock2	 90.3M	 64.4M	 25.8M  71% /data

/dev/block/mtdblock1	100.0M	 95.4M	  4.6M  95% /system

/dev/block/mmcblk0p1	  1.8G	  1.4G	455.3M  76% /sdcard
clearing out /system/app/ I have removed many supplied apps. This is because they were non-standard (i.e. t-mobile/huawei version), unnecessary or there were stock alternatives/updates available. See below for the apps I removed/replaced. I have removed Email.apk, and have had no problems at all, even though many seem to suggest otherwise. I leave your decision to you.
AlarmClock.apk			   MMITest_II.apk

CallLog.apk				  Maps.apk

Contacts.apk				 MobileTV.apk

ContactsProvider.apk		 Music.apk

CzechPack.apk				MusicShop.apk

Dialer.apk				   MyCalendar.apk

DMClient.apk				 MyBookmarks.apk

DocumentToGo.apk			 MyEvent.apk

DrmProvider.apk			  NotePad.apk

DutchPack.apk				PolishPack.apk

Email.apk					RoadSync.apk

EmotionClockWidget.apk	   SFP.apk

FileManager.apk			  SetupWizardEx.apk

Gallery.apk				  StaticPhotoFrame.apk

GermanPack.apk			   Street.apk

HTMLViewer.apk			   TopApps_1.2.0.apk

HuaweiSyncClient.apk		 VisualizationWallpapers.apk

HWDrmApp.apk				 TouchPal.apk

HWTheme_Work.apk
clearing out /system/bin/ all sync* and debuggered
sync

syncat

syncbt

syncctl

syncobex

syncpcuiu

syncsdr

debuggerd
clearing out /system/media/ I basically cleared out almost everything therein. clearing out /system/cust/ I can't remember what I removed from here. reclaiming /data/app Now I have so much space in /system, I moved many apps from /data/app into /system/app/. My main focus was to get co-pilot and other large non-market apps out of /data/app/ and saturate /system/app/. I also moved any apps, which I do not want auto updated, into /system/app/.
com.alk.copilot.apk

com.dataviz.docstogo.apk

com.android.vending.apk

com.helixproject.launcher.apk

to-do

pls help with below

odex

- should we?

- how to?

- what?

Edited by ve100
Posted (edited)

stock apps

I found stock apps from elsewhere. Refer post# 8 from starkos for the contacts apps.

Contacts.apk

ContactsProvider.apk

Gallery_1.1.30682.apk

Music.apk
and replaced these in /system/app/
Contacts.apk

ContactsProvider.apk

Gallery.apk

Music.apk
market updates I removed these apps in /system/app/, as the market had updated them in /data/app.
Vending.apk

Maps.apk

Street.apk

DocumentToGo.apk
caveat I lost a lot of time due to not understanding how "data" works. When we replace any apps, we need to wipe not just dalvik-cache, but data too. I was only wiping dalvik-cache, without wiping data, and I got a lot of acores/FCs for some apps (specifically Contacts). Refer post# 9. I had to wipe not just dalvik-cache, which is what I had been doing along, but was not sufficient. More importantly, I had to wipe data, or specifically clear /data/data/com.android.contacts and /data/data/com.android.providers.contacts. Once I did so, I received no further errors, and the stock Contacts worked fine. I lost all contacts, but the next sync downloaded all of my google contacts. Thankfully, I never keep any contacts on the phone. To wipe dalvik-cache, clear out /data/dalvik-cache.
$ rm /data/dalvik-cache/*
To clear out data, identify the specific apps. In my case, I had issues with contacts. These were provided by two apps - Contacts.apk and ContactsProvider.apk. If you search within /data/data, you can find the corresponding files - /data/data/com.android.contacts and /data/data/com.android.providers.contacts.
$ rm -r /data/data/com.android.contacts/*

$ rm -r /data/data/com.android.providers.contacts/*

to-do

please help with below...

what are the other stock apps that i can update? where do i find them?

how can i make my phone more vanilla (i.e android standard build)?

Edited by ve100
Posted (edited)

customise

ring delay

The ring delay was getting me very frustrated, as I would only find out who was ringing on the 4th-5th ring. These tweaks below will eliminate the ring delay. But I still find a delay for the contact/number coming up by the 3rd-4th ring.

add/edit these lines in /system/build.prop

# disable ring delay

ring.delay=1000

ro.telephony.call_ring.delay=1000
market fix add the following lines and remove/comment out the corresponding lines, in /system/build.prop
# fix market apps

ro.build.description=passion-user 2.1-update1 ERE27 24178 release-keys

ro.build.fingerprint=google/passion/passion/mahimahi:2.1-update1/ERE27/24178:user/release-keys
wifi fix This should stop the wi-fi scanning continously. When I want, I can do a manual scan. add/edit these lines in /system/build.prop
# time between known AP scans in seconds

wifi.supplicant_scan_interval=300
low battery add the following to /system/build.prop
ro.config.lowbattery_shutdown=0

ro.config.hw_lowbattery_charge=0

This hasn't really eliminated the low-battery warnings, or the shutdown when battery is low. But, I suppose, I'm no worse off... :lol:

launcher

I discovered HelixLauncher while hunting for smaller and faster launchers. Neither launcherpro nor adw fit the bill, as both are humungous in comparison. Their only seeming advantage seems to be eye-candy. And I am more concerned about efficiency in terms of space and power.

HelixLauncher at v1.2a seems to be quite stable. After using helix for sometime and not having any issues at all, I removed the default launcher Launcher.apk from /system/app/ and added helix into /system/app. I am still looking for smaller and sleeker launchers, if anyone can suggest.

Edited by ve100
Posted (edited)

eye-candy

the aim is to eliminate as much eye-candy as possible, and replace all colours by black, as much as possible. this should regain much space and some speed + power.

boot-animation

/system/media/boot-animation.zip contains one file desc.txt, containing

320 480 8

i wonder why my bootlog shows up with an error that it cannot find /data/local/boot-animation.zip? is that where this was originally supposed to be?

wallpaper

just one very small .png file, of a single colour - black.

removed Live Wallpapers and deleted all wallpapers.

audio

deleted all files, only keeping the ones specifically used.

to-do

is there any way to have a dark coloured (black?) google search bar widget? the white colour is too bright among all the other dark coloured items.

Edited by ve100
Guest BigBearMDC
Posted

Nah just kidding :lol:

Screenshots/download?

Edit: Oh, welcome to the MoDaCo Pulse forum by the way :)

Best regards,

BB

Posted
I would like to replace the t-mobile/huawei contacts apps. But, I haven't yet succeeded in replacing them with the stock vanilla apps. I get continous FCs from GoogleApps, and I have almost resigned myself for now. This still bugs me.

If I am successful, I will list the how-to here.

You shouldn't have any problems replacing the contacts app. I use both contacts.apk & contactsprovider.apk taken from the 2.1 sdk, just remember to wipe dalvik cache in recovery after replacing them!

I'm pretty sure what I've attached is correct but may not be as it was a long time ago and I've changed roms quite a bit..

Posted (edited)
You shouldn't have any problems replacing the contacts app. I use both contacts.apk & contactsprovider.apk taken from the 2.1 sdk, just remember to wipe dalvik cache in recovery after replacing them!

I'm pretty sure what I've attached is correct but may not be as it was a long time ago and I've changed roms quite a bit..

I entered the recovery mode, replaced Contacts.apk and ContactsProvider.apk in /system/app with the ones in your attached zip, and cleared the dalvik-cache. Upon restarting, I get continuous acore errors.

Sorry!

The process android.process.acore has stopped unexpectedly. Please try again.

[Force close]

Also, Contacts icon is null and won't open. Phone icon displays ok, but won't open.

Edited by ve100
Posted
I entered the recovery mode, replaced Contacts.apk and ContactsProvider.apk in /system/app with the ones in your attached zip, and cleared the dalvik-cache. Upon restarting, I get continuous acore errors.

Sorry!

The process android.process.acore has stopped unexpectedly. Please try again.

[Force close]

Also, Contacts icon is null and won't open. Phone icon displays ok, but won't open.

Sorry that's never happened to me so I can't really help. Also I'm not sure if I have ever tried it with the t-mob launcher/canvas as I normally replace it with ADWLauncher, so maybe that's the issue?

Posted (edited)
reserved 5

???

Nah just kidding :lol:

Screenshots/download?

Edit: Oh, welcome to the MoDaCo Pulse forum by the way :)

Best regards,

BB

Thanks, BB! I've been a quiet lurker in this forum for a few weeks now. I thought it was time for me to put down my learnings here. That is the ethos of open source, non?

Sorry, I don't use (or have space for) screenshot app. There is nothing to show-off eye-candy wise, except the speed, battery, and quick response. Looks-wise, my phone is probably boring to you all, but that is not what I aim for. With the standard t-mobile uk firmware hacked as above, my phone boots up in under a minute, and the battery lasts more than two days. With all the fancy mods you all experts do, it could be much better.

I have listed the steps to mod any firmware, not specifically mine. So, users don't need any downloads from me. All they need is probably already on their phone. :(

Edited by ve100
Guest skandigraun
Posted

The 'reserved 5' was a joke. Yesterday, when this thread started theer was only text in the first post, and the reserved 1, reserved 2, reserved 3, reserved 4. BB just continued :lol:

Btw it seems a fine tutorial at the first glance

Posted (edited)
Sorry that's never happened to me so I can't really help. Also I'm not sure if I have ever tried it with the t-mob launcher/canvas as I normally replace it with ADWLauncher, so maybe that's the issue?

I don't use the t-mob launcher/canvas either. After using HelixLauncher and finding no issues, I removed the t-mob launcher/canvas, and reclaimed a lot of space.

I have worked some more, and now have a solution. I had to wipe not just dalvik-cache (which is what I had been doing along, but was not sufficient). More importantly, I had to wipe data, or specifically clear /data/data/com.android.contacts and /data/data/com.android.providers.contacts. Once I did so, I received no further errors, and the stock Contacts worked fine. I lost all contacts, but the next sync downloaded all of my google contacts. Thankfully, I never keep any contacts on the phone. I will update my above post. Thanks, starkos!

Edited by ve100
Posted
I don't use the t-mob launcher/canvas either. After using HelixLauncher and finding no issues, I removed the t-mob launcher/canvas, and reclaimed a lot of space.

I have worked some more, and now have a solution. I had to wipe not just dalvik-cache (which is what I had been doing along, but was not sufficient). More importantly, I had to wipe data, or specifically clear /data/data/com.android.contacts and /data/data/com.android.providers.contacts. Once I did so, I received no further errors, and the stock Contacts worked fine. I lost all contacts, but the next sync downloaded all of my google contacts. Thankfully, I never keep any contacts on the phone. I will update my above post. Thanks, starkos!

Lol, sorry as I did it so long ago I completely forgot there was a specific file in data/data you also have to delete, I think it's a contacts db file.. Well at least you got it sorted now, good luck with your rom :lol:

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.