Cleaning the shipped ROM - Wildfire Android Development

First of all I'd like to thank all the devs on this forum for providing the resources.
So I wanted to setup a clean ROM for my new phone, without the preloaded stuff I don't want to use (I'm anti-social).
It's intended for battery saving and wifi, don't use if you don't have replacement apps for the things you need.
1st I downloaded shipped RUU, rooted it with unrevoked, made a nandroid backup, mounted /system from recovery and started ripping.
Then I made this post-setup script from my bash_history. Please don't blame me if you break your system with it.
Software used :
HTC RUU 1.25.405.1
unrevoked3
android-sdk-linux_x86
Android SDK Tools, revision 7
SDK Platform Android 2.1-update1, API 7, revision 2
Google APIs by Google Inc., Android API 7, revision 1
Make sure you have a working nandroid backup before running this, and read the list in case you want to keep any apps.
Code:
###################################################################################
# note : you'll need 2 empty files called bootanimation.zip and android_audio.mp3 #
# in your /android-sdk-linux_x86/tools/ in order to rip the boot animation/sound #
###################################################################################
./adb start-server
./adb shell rm /system/app/AppSharing.*
./adb shell rm /system/app/Flickr.*
./adb shell rm /system/app/FriendStream.*
./adb shell rm /system/app/HtcFacebook.*
./adb shell rm /system/app/HtcTwitter.*
./adb shell rm /system/app/Stock.*
./adb shell rm /system/app/teeter.*
./adb shell rm /system/app/HtcFootprints.*
./adb shell rm /system/app/HtcFootprintsWidget.*
./adb shell rm /system/app/HtcLocationPicker.*
./adb shell rm /system/app/HtcLocationService.*
./adb shell rm /system/app/PDFViewer.*
./adb shell rm /system/app/PicoTts.*
./adb shell rm /system/app/TtsService.*
./adb shell rm /system/app/SocialNetworkProvider.*
./adb shell rm /system/app/Stk.*
./adb shell rm /system/app/Maps.*
./adb shell rm /system/app/Weather.*
./adb shell rm /system/app/WeatherProvider.*
./adb shell rm /system/app/WeatherSyncProvider.*
./adb shell rm /system/app/WidgetDownloadManager.*
./adb shell rm /system/app/htccalendarwidgets.*
./adb shell rm /system/app/com.htc.FMRadioWidget.*
./adb shell rm /system/app/com.htc.StockWidget.*
./adb shell rm /system/app/com.htc.WeatherWidget.*
./adb shell rm /system/app/com.htc.FriendStreamWidget.*
./adb shell rm /system/app/com.htc.TwitterWidget.*
./adb shell rm /system/app/GSD.*
./adb shell rm /system/app/Flashlight.*
./adb shell rm /system/app/HtcSoundRecorder.*
./adb shell rm /system/app/HtcFMRadio.*
./adb shell rm /system/app/NetworkLocation.*
./adb shell rm /system/app/Calendar.*
./adb shell rm /system/app/CalendarProvider.*
./adb shell rm /system/app/GlobalSearch.*
./adb shell rm /system/app/HtcAddProgramWidget.*
./adb shell rm /system/app/Rosie.*
./adb shell rm /system/app/HTCSetupWizard.*
./adb shell rm /system/app/SetupWizard.*
./adb shell rm /system/app/Updater.*
./adb shell rm /system/app/FieldTest.*
./adb shell rm /system/app/Talk.*
./adb shell rm /system/app/TalkProvider.*
./adb shell rm /system/app/gtalkservice.*
./adb shell rm /system/app/Street.*
./adb shell rm /system/app/Vending.*
./adb shell rm /system/app/Gmail.*
./adb shell rm /system/app/GmailProvider.*
./adb shell rm /system/app/MarketUpdater.*
./adb shell rm /system/app/GoogleApps.*
./adb shell rm /system/app/GoogleCheckin.*
./adb shell rm /system/app/GoogleContactsSyncAdapter.*
./adb shell rm /system/app/GooglePartnerSetup.*
./adb shell rm /system/app/GoogleSettingsProvider.*
./adb shell rm /system/app/GoogleSubscribedFeedsProvider.*
./adb shell rm /system/app/EnhancedGoogleSearchProvider.*
./adb shell rm /system/media/bootanimation.*
./adb shell rm /system/media/android_audio.*
./adb shell rm /system/customize/resource/android_audio.*
./adb shell rm /system/customize/resource/bootanimation.*
./adb push android_audio.mp3 /system/media/android_audio.mp3
./adb push bootanimation.zip /system/media/bootanimation.zip
./adb push bootanimation.zip /system/customize/resource/bootanimation.zip
./adb push android_audio.mp3 /system/customize/resource/android_audio.mp3
./adb kill-server

madwifi said:
First of all I'd like to thank all the devs on this forum for providing the resources.
So I wanted to setup a clean ROM for my new phone, without the preloaded stuff I don't want to use (I'm anti-social).
It's intended for battery saving and wifi, don't use if you don't have replacement apps for the things you need.
1st I downloaded shipped RUU, rooted it with unrevoked, made a nandroid backup, mounted /system from recovery and started ripping.
Then I made this post-setup script from my bash_history. Please don't blame me if you break your system with it.
Software used :
HTC RUU 1.25.405.1
unrevoked3
android-sdk-linux_x86
Android SDK Tools, revision 7
SDK Platform Android 2.1-update1, API 7, revision 2
Google APIs by Google Inc., Android API 7, revision 1
Make sure you have a working nandroid backup before running this, and read the list in case you want to keep any apps.
Code:
###################################################################################
# note : you'll need 2 empty files called bootanimation.zip and android_audio.mp3 #
# in your /android-sdk-linux_x86/tools/ in order to rip the boot animation/sound #
###################################################################################
./adb start-server
./adb shell rm /system/app/AppSharing.*
./adb shell rm /system/app/Flickr.*
./adb shell rm /system/app/FriendStream.*
./adb shell rm /system/app/HtcFacebook.*
./adb shell rm /system/app/HtcTwitter.*
./adb shell rm /system/app/Stock.*
./adb shell rm /system/app/teeter.*
./adb shell rm /system/app/HtcFootprints.*
./adb shell rm /system/app/HtcFootprintsWidget.*
./adb shell rm /system/app/HtcLocationPicker.*
./adb shell rm /system/app/HtcLocationService.*
./adb shell rm /system/app/PDFViewer.*
./adb shell rm /system/app/PicoTts.*
./adb shell rm /system/app/TtsService.*
./adb shell rm /system/app/SocialNetworkProvider.*
./adb shell rm /system/app/Stk.*
./adb shell rm /system/app/Maps.*
./adb shell rm /system/app/Weather.*
./adb shell rm /system/app/WeatherProvider.*
./adb shell rm /system/app/WeatherSyncProvider.*
./adb shell rm /system/app/WidgetDownloadManager.*
./adb shell rm /system/app/htccalendarwidgets.*
./adb shell rm /system/app/com.htc.FMRadioWidget.*
./adb shell rm /system/app/com.htc.StockWidget.*
./adb shell rm /system/app/com.htc.WeatherWidget.*
./adb shell rm /system/app/com.htc.FriendStreamWidget.*
./adb shell rm /system/app/com.htc.TwitterWidget.*
./adb shell rm /system/app/GSD.*
./adb shell rm /system/app/Flashlight.*
./adb shell rm /system/app/HtcSoundRecorder.*
./adb shell rm /system/app/HtcFMRadio.*
./adb shell rm /system/app/NetworkLocation.*
./adb shell rm /system/app/Calendar.*
./adb shell rm /system/app/CalendarProvider.*
./adb shell rm /system/app/GlobalSearch.*
./adb shell rm /system/app/HtcAddProgramWidget.*
./adb shell rm /system/app/Rosie.*
./adb shell rm /system/app/HTCSetupWizard.*
./adb shell rm /system/app/SetupWizard.*
./adb shell rm /system/app/Updater.*
./adb shell rm /system/app/FieldTest.*
./adb shell rm /system/app/Talk.*
./adb shell rm /system/app/TalkProvider.*
./adb shell rm /system/app/gtalkservice.*
./adb shell rm /system/app/Street.*
./adb shell rm /system/app/Vending.*
./adb shell rm /system/app/Gmail.apk
./adb shell rm /system/app/GmailProvider.apk
./adb shell rm /system/app/MarketUpdater.*
./adb shell rm /system/app/GoogleApps.*
./adb shell rm /system/app/GoogleCheckin.*
./adb shell rm /system/app/GoogleContactsSyncAdapter.*
./adb shell rm /system/app/GooglePartnerSetup.*
./adb shell rm /system/app/GoogleSettingsProvider.*
./adb shell rm /system/app/GoogleSubscribedFeedsProvider.*
./adb shell rm /system/app/EnhancedGoogleSearchProvider.*
./adb shell rm /system/media/bootanimation.*
./adb shell rm /system/media/android_audio.*
./adb shell rm /system/customize/resource/android_audio.*
./adb shell rm /system/customize/resource/bootanimation.*
./adb push android_audio.mp3 /system/media/android_audio.mp3
./adb push bootanimation.zip /system/media/bootanimation.zip
./adb push bootanimation.zip /system/customize/resource/bootanimation.zip
./adb push android_audio.mp3 /system/customize/resource/android_audio.mp3
./adb kill-server
Click to expand...
Click to collapse
Why does it remove market and ALL google apps? That's slightly more than just social stuff. xD

Market don't work over here anyway, and these apps don't seem to do anything for me, except draining the resources.

:S but these apps and widgets makes Android awesome xD
Sent from my HTC Wildfire using XDA App

Hi, I am just trying to use your coock book to get rid of Tweeter client, Friendstream and some other bloatware, but I get an error "...cannot be deleted, read-only filesystem".What should I do to remount root in read-write mode?
My Wildfire is rooted and running WildPuzzle 2.2 ROM, which is best 2.2 feature-wise available IMHO, but maybe too bloated for me, while OpenFire is still very buggy.

mpattonm said:
Hi, I am just trying to use your coock book to get rid of Tweeter client, Friendstream and some other bloatware, but I get an error "...cannot be deleted, read-only filesystem".What should I do to remount root in read-write mode?
My Wildfire is rooted and running WildPuzzle 2.2 ROM, which is best 2.2 feature-wise available IMHO, but maybe too bloated for me, while OpenFire is still very buggy.
Click to expand...
Click to collapse
Here's the way I do it:
Goto WilPuzzle Rom on your pc,
Right click on it and open with winrar archiver,
then click data folder, then app and remove things like facebook etc
go back and click system folder, then app and remove from there.
To remove use the Delete button at the top of winRAR box and not right click delete to make sure it works correctly.
Then no need to save anything, and just flash with that rom and ya done!.
Hope this helps!!!
Scotty.

Is it that simple?? Oh my... Thanks!

It's simple when you're ripping a custom rom, just edit the zip.
For mounting r/w reboot the phone into recovery, hit partitions, mount /system
The shipped RUU is a bit more complicated.
If you just install it and then use the script, it will leave traces on the app list and you won't be able to remove them.
1. run the RUU and let it install
2. root the phone with unrevoked3
3. make nandroid backup
4. extract system.img from RUU
5. replace system.img from nandroid backup with the extracted system.img
6. replace the system.img md5sum in nandroid.md5 with the extracted system.img md5sum
7. restore nandroid backup - advanced restore /system only
8. use the script to rip the files from /system
9. reboot the phone

Related

[?] what are your favorite ADB commands when flashing a new ROM?

So I like to flash a new ROM every now and then.
Recently I flashed LeoFroYo 2.0.0 on my N1.
I ALWAYS flash everything.
I enjoy starting fresh, don't you?
So I start every ROM install the same way: by running a few ADB commands.
***** ***** ***** ***** ***** ***** ***** ***** ***** *****
replace ADWLauncher with Launcher2 (IF APPLICABLE, Cyanogen, etc.) URL
Code:
adb shell stop
adb remount
adb shell cp /system/app/ADWLauncher.apk /system/app/ADWLauncher.apk.bak
adb pull /system/app/ADWLauncher.apk ./_STUFF/launchers/ADWLauncher.apk
adb push _STUFF/launchers/Launcher2.apk /system/app
adb shell rm /system/app/ADWLauncher.apk
adb shell start
adb reboot
DroidX multi-touch keyboard BLACK URL
Code:
adb remount
adb shell cp /system/app/LatinIME.apk /system/app/LatinIME.apk.bak
adb pull /system/app/LatinIME.apk.bak ./_STUFF/Droid2keyboard/LatinIME.apk.bak
adb shell cp /system/lib/libjni_latinime.so /system/lib/libjni_latinime.so.bak
adb pull /system/lib/libjni_latinime.so.bak ./_STUFF/Droid2keyboard/libjni_latinime.so.bak
adb push ./_STUFF/Droid2keyboard/d2keyboard-signed-fixed4_BLACK.apk /system/app/LatinIME.apk
adb push ./_STUFF/Droid2keyboard/libjni_latinime.so /system/lib/libjni_latinime.so
adb shell reboot
Swype 1.56.30.7625.t100 URL
Code:
adb install _STUFF/swype/swype.wvga-1.56.apk
TitaniumBackup 3.3.5.2 URL
Code:
adb install _STUFF/TitaniumBackup/TitaniumBackup.apk
All without touching the market.
What are your favorites?!

[HOWTO] Root Nexus One 2.2.1 FRG83D without OEM unlock

This guide is for people who want root but want to keep their stock rom, not breaking the warranty, unlocking bootloader etc.
A proud ubuntu user, I am writing this in a new thread purely because the manual rageagainstthecage method and SuperOneClick method did not not work for me, see link to my conclusion below if you care
http://forum.xda-developers.com/showpost.php?p=11305312&postcount=2526
What did work however was via adb shell using psneuter and its fairly simple if you follow the following commands.
This guide assumes you know how to get access to the shell via adb, if you dont then search elsewhere for a useful guide
OK lets get to business!
1. Download the attached nexus_one_softroot.tar from the bottom of this post and extract contents to the same folder as adb
2. Open up your terminal, cd to the same folder as adb and the extracted files
3. Enter the following commands:
Code:
sudo ./adb push psneuter /data/local/tmp/psneuter
sudo ./adb push busybox /data/local/tmp/busybox
sudo ./adb push su /data/local/tmp/su
sudo ./adb shell chmod 755 /data/local/tmp/psneuter
sudo ./adb shell chmod 755 /data/local/tmp/busybox
sudo ./adb shell chmod 755 /data/local/tmp/su
sudo ./adb shell
After this you should see only a $ which tells us that we at the android command line with user privileges only, lets continue
Code:
$ cd /data/local/tmp
$ ls
busybox
su
psneuter
$ ./psneuter
property service neutered.
killing adbd. (should restart in a second or two)
You will now be kicked out of android shell, lets go back in
Code:
sudo ./adb shell
After this you should see only a # which tells us that we root baby! If you want to double check issue this command
Code:
# id
uid=0(root) gid=0(root)
Lets continue on. From this point we will install busybox and su which will make root permanent
Code:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# cd /data/local/tmp
# ./busybox cp busybox /system/bin
# chmod 4755 /system/bin/busybox
# busybox cp su /system/bin
# chmod 4755 /system/bin/su
# exit
For some reason I sometimes have to enter exit twice to leave the android shell. Again, re-access the android shell
Code:
sudo ./adb shell
Now in the android shell we can finish up
Code:
# su
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
# exit
# exit
Lastly we must install Superuser, and I did this from the android market so I knew its the latest version, its simple to get, less command input etc.
Now you have root! I hope this was simple enough to follow, I have not really written a guide before but from lots of searching I just could not find a solution for my Nexus One 2.2.1 FRG83D, especially any guide that uses psneuter.
Anyway, glad to contribute
EDIT - also, being new to starting threads, this may not quite be in the right section of the forum, sorry if thats the case mods
Added link to the thread from Wiki.
upgraded to gingerbread 2.3.3. after copying and setting permissions, got this:
PHP:
$ cd /data/local/tmp
$ ls -l
-rwxr-xr-x shell shell 26248 2010-07-22 10:20 su
-rwxr-xr-x shell shell 1062992 2010-10-16 22:29 busybox
-rwxr-xr-x shell shell 585731 2011-01-08 18:02 psneuter
su
busybox
psneuter
$ ./psneuter
Failed to set prot mask (Inappropriate ioctl for device)
second time threw me out of shell. again adb shell gives this:
PHP:
$ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet)
mfkr said:
upgraded to gingerbread 2.3.3. after copying and setting permissions, got this:
Code:
$ ./psneuter
Failed to set prot mask (Inappropriate ioctl for device)
Click to expand...
Click to collapse
I believe this is due to a change in the kernel as it is upgraded into gingerbread, the input/output controls have changed, leaving psneuter out of date with the current kernel.
However if an exploit is found with the kernel used in 2.3.3, you can use it in place of psneuter with the above method.

[Q] Renaming SystemUI.odex to SystemUI.odex.bak in /system/app/ using ADB

Hey guys,
I'm attempting to rename SystemUI.odex to SystemUI.odex.bak in /system/app/ using ADB. Is this the correct string of console commands?
Code:
adb shell remount rw
adb pull /system/app/SystemUI.odex
adb push /system/app/SystemUI.odex.bak
adb chmod 644 /system/app/SystemUI.odex.bak
adb rm /system/app/SystemUI.odex
adb shell remount ro
Confirmation would be appreciated.
Ok, according to Hencke, this is the only ADB command I would have to use:
Code:
adb shell remount rw
adb shell mv /system/app/SystemUI.odex /system/app/SystemUI.odex.bak
adb shell remount ro
Totally makes sense. Thanks!

Issue with SuperSU on AndroidThings 1.0

I tried to perform a manual installation of SuperSU (2.82 SR5) on my Raspberry Pi running the developer version of AndroidThings 1.0.4, which is based on Android 8.1.0 / API 27. Rather than flashing the zip in recovery, as I'm not sure where to start with that on the Things platform, I manually pushed files and set file permissions and contexts via adb shell. My guide for this was the summary at the top of the script at SuperSU/META-INF/com/google/android/update-binary.
The new su binary appears to work for the most part. I can execute su and read/write with the interactive shell. However, when I attempt to execute the same operations as a command through su (ie: su -c mkdir /system/testdirectory), it responds saying its a read-only filesystem. The filesystem has been remounted with adb remount. I'm unable to perform the remount with the mount command, as /system is not listed in /proc/filesystems. From my understanding, this is due to some recent security model changes in Android. That being said, after the adb remount, all other normal interactions with the filesystem seem to work without issue. I have verified that selinux is in permissive mode.
I don't have busybox installed. These efforts are to allow for installation of busybox for other projects.
Does anybody know whats causing the commands proxied through su to not work correctly?
Here are the commands I used to perform my manual installation.
Code:
cd ~/Downloads/SuperSU-2.82-SR5
adb connect [IP_ADDRESS]:5555
adb root
adb remount
adb push common/install-recovery.sh /system/etc/install-recovery.sh
adb shell chmod 0755 /system/etc/install-recovery.sh
adb shell chcon u:object_r:toolbox_exec:s0 /system/etc/install-recovery.sh
adb shell ln -s /system/etc/install-recovery.sh /system/bin/install-recovery.sh
adb shell chcon -h u:object_r:toolbox_exec:s0 /system/bin/install-recovery.sh
cd armv7
# adding as `su_next` to prevent any issues before dropping it in
adb push su /system/xbin/su_next
adb shell chmod 0755 /system/xbin/su_next
adb shell chcon u:object_r:system_file:s0 /system/xbin/su_next
adb push su /system/xbin/daemonsu
adb shell chmod 0755 /system/xbin/daemonsu
adb shell chcon u:object_r:system_file:s0 /system/xbin/daemonsu
adb push supolicy /system/xbin/supolicy
adb shell chmod 0755 /system/xbin/supolicy
adb shell chcon u:object_r:system_file:s0 /system/xbin/supolicy
adb push libsupol.so /system/lib/libsupol.so
adb shell chmod 0644 /system/lib/libsupol.so
adb shell chcon u:object_r:system_file:s0 /system/lib/libsupol.so
adb shell cp /system/bin/app_process32 /system/bin/app_process32_original
adb shell cp /system/bin/app_process32 /system/bin/app_process_init
adb shell rm /system/bin/app_process
adb shell ln -s /system/xbin/daemonsu /system/bin/app_process
adb shell rm /system/bin/app_process32
adb shell ln -s /system/xbin/daemonsu /system/bin/app_process32
adb shell chmod 0755 /system/bin/app_process
adb shell chmod 0755 /system/bin/app_process32
adb shell chcon u:object_r:system_file:s0 /system/bin/app_process
adb shell chcon u:object_r:zygote_exec:s0 /system/bin/app_process32
# Swapping new su binary in
adb shell cp /system/xbin/su /system/xbin/su_original
adb shell rm /system/xbin/su
adb shell mv /system/xbin/su_next /system/xbin/su
adb shell /system/xbin/su --install
adb reboot
I need to correct myself: the new su binary can only read with privileges. It cannot write at all. I am only able to write either as the adb root shell, or with the stock su binary. I noticed that the device's adbd process relaunches with its own privileged context passed to it when adb remount is run. (adbd --root_seclabel=u:r:su:s0)
If I've run adb root and adb remount, adb shell, and then enter the su binary, I lose the ability to write to the remounted filesystem. So it appears that there is something wrong with the new su binary and its related files.
Anyway, this isn't critical to my project, so I'm abandoning my efforts for now. If anyone has any ideas on what is wrong here, I'd love to hear them and give this another shot!

[SCRIPT] [HACK] root on most variant

REMOVED
Mods please close thread
Code:
adb push su98 /data/local/tmp
adb shell cd data/local/tmp && adb shell chmod 775 su98 && adb shell ./su98 && adb shell su
adb push recovery /sdcard
adb shell cat /dev/zero >> /dev/mtd/mtd2 && adb shell cd /sdcard && adb shell flash_image recovery /sdcard/recovery.img
adb shell rm /sdcard/recovery.img
adb shell reboot
sorry this is incomplete, more like a PoC
I think will not work if bootloader still locked
GiaiPhapAndroid said:
I think will not work if bootloader still locked
Click to expand...
Click to collapse
yEs

Categories

Resources