[APK] Xperia Chinese Keyboard 25.1.A.0.45 modified to work on any device (tested on LOS 18.1) - Sony Cross-Device Development Themes and Apps

Xperia Chinese Keyboard modified to work on any device
Supports pinyin, zhuyin, stroke order, handwriting and Cangjie, as well as English input
Version: 25.1.A.0.45 Patch #6 Updated 2022-11-18
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
​
Download
From Mega.nz (file too large to attach here):
Patch 6 for LOS 19.1 / Android 12
Patch 5 for LOS 18.1 / Android 11
Spoiler: Other versions – for reference only
Patch 4 - Test (for Lineage 18.1, test workaround)
Patch 3 (for LineageOS 18.1, occasional crashes)
Patch 2 (for LineageOS 17.1)
Patch 1 (for LineageOS 16.0)
Installation
Best installed with: adb install -g <filename>
Otherwise, have to manually grant the permission: Settings → Apps & notifications → See all apps → Xperia Chinese keyboard → Advanced → Display over other apps: Allowed (will crash if you won't)
Enable the input method in Settings → Languages & input and switch to it using the keyboard icon on the navigation bar, which appears when you start editing text
Some Details
Based on firmware H9493_Customized TW_52.1.A.3.137-R4C for Sony Xperia XZ3 (Akatsuki)
Includes libraries to make it work as a user (not system) app:
libbase.so, libc++.so, and libnativehelper.so from LineageOS 18.1
libsqlite.so from SQLite's official precompiled Android binaries
Changed values loaded into $LayoutParams;->type:I from 0x000007dc = 0x000007d9 (TYPE_KEYGUARD_DIALOG) | 0x00000002 (TYPE_APPLICATION) | 0x00000001 (TYPE_BASE_APPLICATION), only allowed for system apps, to 0x000007f6 (TYPE_APPLICATION_OVERLAY) and updated the manifest accordingly to request the permission android.permission.SYSTEM_ALERT_WINDOW (which must be granted manually)
Patch 3: Remove dependency on Sony Vibration Effect library (com.sonymobile.vibrationeffect.api_1) from the manifest
Patch 3: Replace all references to Sony Vibration Effect library: invoke-static {p1}, Lcom/sonymobile/vibrationeffect/VibrationEffect;->get(I)Landroid/os/VibrationEffect;which were causing the app to crash, with standard Android calls:
const/4 p0, -0x1 (DEFAULT_AMPLITUDE)
const-wide/16 v2, 0xc (Duration: 12 ms)
invoke-static {v2, v3, p0}, Landroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect;
— for keypresses
const v0, 0x2 (EFFECT_TICK)
invoke-static {v0}, Landroid/os/VibrationEffect;->createPredefined(I)Landroid/os/VibrationEffect;
— for other events
Patch 4 - Test: Remove the invocation of a virtual method invoke-virtual {p0}, Lcom/sonyericsson/textinput/chinese/uxp/view/hw/HWFullView;->getVisibility()I that causes a crash under some circumstances in InputMethodServiceGlue. However the side effect of this change is that other UI elements cannot be interacted with while the keyboard is open. How to fix this completely needs further investigation. Since the crash seems rare, I recommend sticking with Patch 3 for now.
Patch 5: A different workaround for the above mentioned issue. If iget-object p0, p0, Lcom/sonyericsson/textinput/chinese/glue/InputMethodServiceGlue;->mHwFullView:Lcom/sonyericsson/textinput/chinese/uxp/view/hw/HWFullView; returns 0 (i.e. effectively NULL but there's no explicit check for that in Smali), then skip the call and return from the method. Otherwise, proceed. After a week of testing, this seems to work well: no rare crashes, and the UI is accessible too with the keyboard open.
Tested to work on two different LineageOS 18.1 devices. Should work elsewhere too. If it doesn't, it's probably because of the three libraries (libbase.so, libc++.so, and libnativehelper.so): check adb logcat and replace them with the versions from your system.
Patch 6: Fix compatibility with LOS 19.1/Android 12 where a call to jniGetFDFromFileDescriptor() from libnativehelper.so fails by design due to API changes (see: Google Issue Tracker), and the version of the library included with the app can no longer be used due to name conflict with the system library with the same name. The workaround: rename the bundled libnativehelper.so (same as Patch 5/Android 11/LOS 18.1, so unchanged) to libforeignenemy.so and change references to it in libcootek_pte_oem.so, libcootek_pte_oem_western.so and libcurve_oem.so accordingly. Also update libbase.so and libc++.so to current versions from LOS 19.1 (Android 12).
Related
Xperia keyboard for most languages port by @greenys'
Xperia Chinese keyboard version 10.1.A.0.1 (Android 4.4+, 2012-2013) by @danist727

That's some amazing work there. I wish there was a more up to date version for general languages not just the good ol 8.0.A.110 version that I've been using for 3 years or more across my devices. Thanks a lot.

Thank you for your work! However, the link is down, it is giving 410 error from XDA. Can you reupload it? Thanks again.

sjdhmtthm said:
Thank you for your work! However, the link is down, it is giving 410 error from XDA. Can you reupload it? Thanks again.
Click to expand...
Click to collapse
Hi, the files are attached to the post, so they are hosted here on XDA. I checked the links and they seemed to start downloading correctly for me but now I edited the post and removed the inline links, so the files should show up as an attachment below the post instead.
Can you successfully download any other attachments at all (from other posts)? Maybe there are some restrictions in place for newly-created XDA accounts. Anyway, if they still don't download for you, let me know and I'll upload them elsewhere as well. (The advantage of having the files hosted here is that the links never expire.)

Aqq123 said:
Hi, the files are attached to the post, so they are hosted here on XDA. I checked the links and they seemed to start downloading correctly for me but now I edited the post and removed the inline links, so the files should show up as an attachment below the post instead.
Can you successfully download any other attachments at all (from other posts)? Maybe there are some restrictions in place for newly-created XDA accounts. Anyway, if they still don't download for you, let me know and I'll upload them elsewhere as well. (The advantage of having the files hosted here is that the links never expire.)
Click to expand...
Click to collapse
It works now, must be having some errors just now. Thanks again.
Edit: Part 2 seems to not be able to download and corrupted, second try gives me the same error again.
I asked my friend who is not logged in to download and he experienced the same error.
It would be great if you can upload it elsewhere, the two tries I where I successfully downloaded part 2 returns corrupted. Thank you.
Edit 2: Changing browsers on mobile worked. Surprised that both Firefox on mobile and desktop returned an error for me. Thank you, problem is solved.

Is this keyboard for chinese only or can I use english as well? its been a while and long since we get an updated Xperia Keyboard version, still using the 2/3 years old v8.1.A.0.12 dated November 12, 2017.

SM-03 said:
Is this keyboard for chinese only or can I use english as well?
Click to expand...
Click to collapse
It can be used for English input too. If you take a look at the first 3 screenshots, there is a button (labelled "CN") that toggles between English and Chinese in the bottom right corner of the keyboard.
It supports word completion in English too but there's no way to type accented characters (for other languages written in the Latin script).

how to dl and extract this? I downloaded two p[arts but still getting error while extracting, any other parts there or missing?

is there any update for android10?
after update to 55.1.A.0.748
chinese keyboard keep crashed

SM-03 said:
any other parts there or missing?
Click to expand...
Click to collapse
Just checked again, it unpacks fine. Nothing is missing. The complete instructions are already in the first post. Not sure what else would need explaining.
frank3302 said:
is there any update for android10?
Click to expand...
Click to collapse
I don't use Android 10. Feel free to contribute an update, and I will link to it in the first post.

Aqq123 said:
Just checked again, it unpacks fine. Nothing is missing. The complete instructions are already in the first post. Not sure what else would need explaining.
Click to expand...
Click to collapse
Yes, it's working (extracted) as per the instructions written into the OP, but the font size is too small that I didn't see /notice that instruction earlier, you should've mentioned that in bold & highlighted for better & clear visibility.

SM-03 said:
I didn't see /notice that instruction earlier, you should've mentioned that in bold & highlighted for better & clear visibility.
Click to expand...
Click to collapse
This board is called XDA Developers for a reason. As a participant you are expected to possess a modicum of rudimentary computer skills and, more importantly, willingness to learn to solve your own problems. In particular, this thread is in the Development section. This is not the place to demand an illustrated step-by-step tutorial how to unpack a ZIP file.
Besides, as duly proven, even the best instructions won't help an ignorant person who can't be bothered to read them such as yourself. And finally, neither me nor anyone else here owes you anything just because you can't get something to work, so the only thing I "should have" is not indulged this behavior earlier.
Good luck with your future endeavors as you will need it with this kind of an attitude. Now, feel free to move on.

Aqq123 said:
This board is called XDA Developers for a reason. As a participant you are expected to possess a modicum of rudimentary computer skills and, more importantly, willingness to learn to solve your own problems. In particular, this thread is in the Development section. This is not the place to demand an illustrated step-by-step tutorial how to unpack a ZIP file.
Besides, as duly proven, even the best instructions won't help an ignorant person who can't be bothered to read them such as yourself. And finally, neither me nor anyone else here owes you anything just because you can't get something to work, so the only thing I "should have" is not indulged this behavior earlier.
Good luck with your future endeavors as you will need it with this kind of an attitude. Now, feel free to move on.
Click to expand...
Click to collapse
wow, so many words for just saying the small font & you should've written it with bigger font size for better visibility? You're rare & amazing.

I am not able to merge the two zipped files into one. I followed the instruction to rename as .zip and .z01 for both files but the second part stated no content inside to extract. should I download rar software to unrar it in desktop file explorer? Can someone kind hearted enough keep the file in one and upload somewhere for me to download?

atisha said:
I am not able to merge the two zipped files into one. I followed the instruction to rename as .zip and .z01 for both files but the second part stated no content inside to extract. should I download rar software to unrar it in desktop file explorer? Can someone kind hearted enough keep the file in one and upload somewhere for me to download?
Click to expand...
Click to collapse
I just checked and it unpacks with WinRAR and 7-Zip for me. Anyway, since I made another version later, here they are both, externally hosted:
Patch 2 (try this first, should be compatible with LineageOS 17.1 at least)
Patch 1 (original version as linked above)
I also updated the original post accordingly.

Found a Bug
Hi Aqq123,
This is some impressive work, thank you for making this!
Just wanted to post a bug I found: the "pull down menu" for the Chinese typing doesn't work. E.g. I want to type the word 蚝煎, but after clicking on the arrow on the right, nothing appears! So I wasn't able to type things beyond the suggestions in the first row.
I'm using Sony Xperia 10 II, Android 10 (Build number 59.0.A.10.5), and I used Patch 2 of your download. Would really appreciate if you could solve the bug, because this keyboard is such a life saver for me. Thanks!
Screenshot: https:// drive. google. com/ file/ d/ 12eEBAzBalbq0ZKfQMh2SLI-045-Gb1Z1/ view?usp=sharing
(Included the spacing because the forum just wouldn't let me post it)

johnsyh said:
Just wanted to post a bug I found: the "pull down menu" for the Chinese typing doesn't work
Click to expand...
Click to collapse
You're right, thanks for spotting it. It used to work in the first version though, so it's probably down to some library incompatibility (and the first version itself won't work with the newer Android). I'll look into it when I have the time. A better approach though might be to ditch it altogether and look at adopting a newer APK version instead. Meanwhile, a lousy workaround is to just hand-write the character.
Since you're using Sony stock firmware, have you tried downloading the Hong Kong or Taiwan version for your device with XperiFirm, extracting the APK from there (for example with UnSIN), and installing it? It'd either work immediately or, if not, the exact library versions to make it work would also be there.

Aqq123 said:
Hi, the files are attached to the post, so they are hosted here on XDA. I checked the links and they seemed to start downloading correctly for me but now I edited the post and removed the inline links, so the files should show up as an attachment below the post instead.
Can you successfully download any other attachments at all (from other posts)? Maybe there are some restrictions in place for newly-created XDA accounts. Anyway, if they still don't download for you, let me know and I'll upload them elsewhere as well. (The advantage of having the files hosted here is that the links never expire.)
Click to expand...
Click to collapse
Thank you so much. I am able to download patch 2 and install directly. So so very grateful as this is the best T9 keyboard ever! (Could be better if it supports Malay too with black layout white font but one shouldnt be too greedy).

Aqq123 said:
You're right, thanks for spotting it. It used to work in the first version though, so it's probably down to some library incompatibility (and the first version itself won't work with the newer Android). I'll look into it when I have the time. A better approach though might be to ditch it altogether and look at adopting a newer APK version instead. Meanwhile, a lousy workaround is to just hand-write the character.
Since you're using Sony stock firmware, have you tried downloading the Hong Kong or Taiwan version for your device with XperiFirm, extracting the APK from there (for example with UnSIN), and installing it? It'd either work immediately or, if not, the exact library versions to make it work would also be there.
Click to expand...
Click to collapse
HI would you have general sony xperia keyboard (non Chinese, English) apk as well to share? with layout skin colour if possible.

On behalf of my wife, who has just upgraded from Xperia XZs to the new Xperia 1 III, and couldn't get over how bad gboard is over the Xperia 注音 input (she has a very unusual character in her name, which gboard doesn't recognize, it spoiled her fun of getting a new device when she couldn't even type her name in correctly during setup) - thank you! You have made me a hero around the house for finding this, and installing it on her phone. My old account on this forum got lost in time, gone with an e-mail domain that no longer exists, but I set up a new one just to thank you for your work!

Related

[APP] SGS Battery Icon Mod (OLD)

UPDATE: The versions in this post are obsolete (but can still be used of course). I've opened a new thread with a new version that supports more firmware versions and mods here: http://forum.xda-developers.com/showthread.php?p=8973385
----
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
SGS Battery Icon Mod
(Update Fixed root checking r/w bug... Enlarged the font of percentage numbers in theme 1 - version 1 )
EDIT: Although I made this app as save as possible, **** can always happen. Of course, a nadroid backup is adviced as always But... there's another method to get you out of trouble, when you have booting problems. Look for it at the end of this post. (For this to work it is essential that you have turned on USB Debugging is the settings-application menu)
----
I decided to create a (Android) app to change the battery icon for the new Froyo versions (JPM and JP6). The app is based on the knowledge and work collected in this thread http://forum.xda-developers.com/showthread.php?t=765419 (maintained by kalpik).
I have three versions to offer
a version with several themes to choose from (Only for JP6 Froyo Firmware). Current, there are only 3 themes but I will add themes in the future (have to create a client server construction first. 3 themes is the limit as far as the size of the app is concerned).
A version with just one theme for JP6 (added this because this one is "only" 7 Mb, while the first one is 22 Mb ).
And a version for JPM and JP6 with only one theme
** JP6 Version: 3 themes
Credits
First theme is by yours truly. Just the standard Froyo battery icon with a percentage in it (the battery status bar will jump with discontinuous steps of 20 - like the default froyo battery icon)
Second theme is by Fightspit
Third theme is by rom-g
Requirements
* JP6 Froyo version
* Root with r/w access (A SuperOneClick root will do because the app requires no busybox)
Installation
A) Dowload link (apk file, 22 Mb): http://www.4shared.com/file/tvTun0q9/SGS_Battery_Icon_Mod_-_Pro_2.html
(Two themed version: first two themes (apk file, 14mb): http://www.4shared.com/file/xXvZm6iD/SGS_Battery_Icon_Mod_-_Pro.html
B) A donation version of the most up to date version (€0.50) is available on the Android Market - Search for "Galaxy S Battery Icon Pro" or any creative combination of these words)
** JP6 version: 1 theme (C version from the battery mod repository thread)
Requirements
* JP6 Froyo version
* Root with r/w access (A SuperOneClick root will do because the app requires no busybox)
Installation
À) Get it from the Android Market - free (search for Galaxy S Battery Icon Mod - or any combination of these words), or
B) Download the attached SGS Battery Icon Mod.apk to your phone and click on it to install.
** JPM & JP6 version
Requirements
* JPM or JP6 Froyo version
* Root (A SuperOneClick root will do because the app requires no busybox)
* I tested only the JP6 version on my SGS i9000 so a bit of luck is also needed for the other version
Installation
Download the attached Battery_Mod.7z. Unzip the file and copy the unzipped apk file to your device. Click to install
A recovery procedure (from the battery mod repository thread)
A prerequisite is that you have USB Debugging turned on before you got into trouble. So if you read this before you are going to use the tool, now it's a good time to turn on USB Debugging under Settings->Applications
First download this file. That's the file (framework-res.apk) we are going to restore.
Then download this tool: http://www.mediafire.com/?wuzy9iss3k43v4h
Then follow these descriptions:
kalpik said:
Extract the tool.
Extract framework-res.apk from the downloaded file and copy it into the extracted tool dir.
Run Change Framework.bat
Accept the Superuser Permission prompt on the phone.
The script will reboot when it's done
Minor bug... You will need to set your wallpaper and google accounts again
Click to expand...
Click to collapse
------
Donations are very much appreciated. It will support this project enormously.
Consider also or instead a donation to Fightspit for his beautiful graphics or kalpik for his hard work. See also this thread: http://forum.xda-developers.com/showthread.php?t=76541.
great one!
I guess what it does is just to switch the framework file?
Great work! Thanks
jp6 version worked for me
Way cool!
Maybe you could have split the two versions (because of size), or better (?): let people download their desired mod and dump it in your application's map on the sd? This would reduce the size of your application drastically (and offer genormous flexibility). Just meant as a suggestion...
Is it possible to download this application on the sgs directly? (i.e. is there a "7z" decompression application on the sgs?)
mike.sw said:
great one!
I guess what it does is just to switch the framework file?
Click to expand...
Click to collapse
Yep! Maybe I'll dump a bunch of framework files on a site somewhere so the app can download a framework-res file on the demand.
Ettepetje said:
Way cool!
Maybe you could have split the two versions (because of size), or better (?): let people download their desired mod and dump it in your application's map on the sd? This would reduce the size of your application drastically (and offer genormous flexibility). Just meant as a suggestion...
Is it possible to download this application on the sgs directly? (i.e. is there a "7z" decompression application on the sgs?)
Click to expand...
Click to collapse
Yep thought of that also. I first wanted to see if such an app is needed and which battery mod version people prefer. If there are a lot of different preferences I maybe create a download-on-demand app. If there are just a few I'll split the app in several apps (don't like the idea to maintain those apps though )
appelflap said:
Yep thought of that also. I first wanted to see if such an app is needed and which battery mod version people prefer. If there are a lot of different preferences I maybe create a download-on-demand app. If there are just a few I'll split the app in several apps (don't like the idea to maintain those apps though )
Click to expand...
Click to collapse
Funny to talk to Dutch speaking people in English...
You could make it a "dumb" application where people do the downloading of the mod themselves, and if easily technically feasible somehow, check if the file matches the current firmware. The question then would be: is there something in the framework-res.apk itself to identify the firmware? If so, your application doesn't need too many updates.
edit: ah, there maybe could be some identifying thing, if you match it with the current one..
edit 2: since this is a battery mod application only you could check if the rest of the file remains the same as the current one. If some other mod is already present in the current framework-res.apk a user might not even want to apply it, so you could make this application really stern and static and (if necessary) add flexibility later on.
Ettepetje said:
Funny to talk to Dutch speaking people in English...
You could make it a "dumb" application where people do the downloading of the mod themselves, and if easily technically feasible somehow, check if the file matches the current firmware. The question then would be: is there something in the framework-res.apk itself to identify the firmware? If so, your application doesn't need too many updates.
edit: ah, there maybe could be some identifying thing, if you match it with the current one..
edit 2: since this is a battery mod application only you could check if the rest of the file remains the same as the current one. If some other mod is already present in the current framework-res.apk a user might not even want to apply it, so you could make this application really stern and static and (if necessary) add flexibility later on.
Click to expand...
Click to collapse
I have uploaded a new version only for JP6. This is an apk file that can be downloaded directly to a device.
In this version I check a build property and see if it contains the string "JP6"... If not the app will be closed. (I also assume that only Samsung Galaxy S devices have a build version that contains the string "JP6"... Maybe a bit too pragmatic)
Users can always revert to the old setting by clicking on Restore. It should be noticed that the settings that will be backed up (for informed users the framework-res.apk) are the settings before applying the battery icon modification.
BTW the framework-res.apk will be backed up to /sdcard (in case you have your own backup there.... please move it)
I'm not sure how this is easier than just downloading the zip and flashing through recovery, and if it's really worth the effort to maintain such an app! But if the people want it, they get it!
That's the power of open source
kalpik said:
I'm not sure how this is easier than just downloading the zip and flashing through recovery, and if it's really worth the effort to maintain such an app! But if the people want it, they get it!
That's the power of open source
Click to expand...
Click to collapse
And.. with your method users have much more choices.. I only offer the C version
But I think that the direct downloadable apk version is easier. (No hassle of installing 2e recovery, uploading zip, going into recovery mode etc. etc.)
But to make sure: the credits go to you for preparing the res file(s)! I only "app-ed" it up.
I'm not sure if it's of any interest to you but I sat down last night and added colour to dani31's stock battery mod, I've attached the pngs below.
Sadly I don't posses the necessary black magic skills to put them into a flashable form
FlanFlinger said:
I'm not sure if it's of any interest to you but I sat down last night and added colour to dani31's stock battery mod, I've attached the pngs below.
Sadly I don't posses the necessary black magic skills to put them into a flashable form
Click to expand...
Click to collapse
Great. Will look at it. Thanks
appelflap said:
Great. Will look at it. Thanks
Click to expand...
Click to collapse
make sure!!!!!!!!!!!!!
*Im watching you*
LOL
Great work mate
This is buggy as hell. I installed it on my JPM SGS, and it rebooted. But then it messed up some of the text, like the unlock screen says "Sending..." instead of "Sweep to unlock". I went to restore it, and now the app just closes because I "don't seem to have a Samsung Galaxy S with a JP6 FROYO version". I can't hit the restore button! Please fix.
navmanyeah said:
This is buggy as hell. I installed it on my JPM SGS, and it rebooted. But then it messed up some of the text, like the unlock screen says "Sending..." instead of "Sweep to unlock". I went to restore it, and now the app just closes because I "don't seem to have a Samsung Galaxy S with a JP6 FROYO version". I can't hit the restore button! Please fix.
Click to expand...
Click to collapse
Lol, why are you installing the JP6 version on a JPM version.... I've uploaded this app to the market, gave it the title "galaxy S battery mod", wrote in a description that it's only for the Samsung Galaxy S (several times) and I got comment that it crashes on a HTC EVO ...
But you're right there's something wrong with the test procedure. It doesn't run the first time but it does run the second and following times. Will certainly fix this. For now just copy the framework-res.apk file on your sdcard back to your /system/framework directory
I'm going to write a app to check how well one can read. I upload a app to the market that crashes the device and in the description i'm going to write don't download this app it will crash your device. To make it easy I'm going to give it the title Crashes your device - without exceptions. Let's see what the comments are LOL
Ah, didn't realize you made two different versions, my bad
Great, worked without problems on JP6 installed by KIES
navmanyeah said:
Ah, didn't realize you made two different versions, my bad
Click to expand...
Click to collapse
No problem ... But hey, thanks for noticing that the test procedure isn't working the first time! I was notified about this this morning when I noticed that someone had managed to run the app on a HTC EVO.
Psychotoxic said:
Great, worked without problems on JP6 installed by KIES
Click to expand...
Click to collapse
Can you run it again, just to check if you pass the test ? Just fire it up. You don't have to change anything.
IT works like a charm on JP6 via KIES.
Thanks bro

WP7 Root Tools - Announcement: Coming to MANGO and to other devices: SAMSUNG, HTC, LG

Hi hackers!
IMPORTANT ANNOUNCEMENT!
WP7 Root Tools will soon be available for Mango!
More info HERE
With this tool you get root-access to parts of your WP7 device. The first release only contains a registry-editor. The file-explorer and certificate stores will follow.
This tool is in alpha stage. That means that it is not feature complete and it is not yet properly tested. This tool also provides you with high privileges with which you can alter low level settings and data on this device. All this may result in unexpected and undesired behaviour, which may ultimately damage your device. Use this tool with care and use it at your own risk. The developer of this tool cannot be hold responsible for any kind of damages, caused directly or indirectly by using this tool.
The current version of this tool can only be used on Samsung devices. A small part of the code uses Samsung-specific functionality. The performance of the tool may sometimes be slow. This is the result of the way access to the system is elevated. The goal is to make this tool device-independent and to elevate access more directly in the future, but that requires more research.
To install this you need a developer-unlocked Windows Phone 7 device. For questions about unlocking your device, please refer to the appropriate threads.
If you have bug-reports or feature-requests, please give a full description.
If you like this, hit the "Thanks" and/or "Donate to me" button.
Ciao,
Heathcliff74
Update 2011/04/06:
1. Some people requested a possibility for donations. I opened a paypal-account and the "Donate to me" should work. Thanks!
2. I get an overwhelming amount of comments and pm's. I can't answer them all right now. I will try to answer them a bit later. Sorry.
Thanks for all the support guys!
Update 2011/04/13: RELEASE "WP Root Tools 0.2 alpha"
Consider this an "interim build". Most changes are under the hood. I did a lot of refactoring for performance improvements and paving the way for the file-explorer. This version does not include the file-explorer just yet. That will be the next release. Fixes in the new 0.2 alpha version:
- Compatible with light theme.
- Navigate out of the app with back-button.
- Due to refactoring and better use of the exploit I gained a lot of performance. It is very fast compared to the previous version. Should also reduce battery drain significantly.
Update 2011/04/14: RELEASE "WP Root Tools 0.3 alpha"
Mightyhog found a regression bug in the 0.2 version. HKLM\Software\Microsoft\ was not listed properly. It is fixed in the 0.3 alpha version.
Update 2011/04/18: Info about known limitations
Yesterday I added some info here which, after more research, did not seem to be entirely correct. I misinterpreted some of the file-flags I was seeing. So here's some more detailed info about the know limitations of the current Registry Editor and the File Explorer which is coming soon. It seems that having TCB privileges still has some limitations on accessing the filesystem and the registry.
Some registry values can be changed but they are reset back to their default value after the device is restarted. One example of such value is:
HKLM\System\CurrentControlSet\Control\Power\Timeouts\BattUserIdle DWord 300
Possible explanations:
- The value is stored in a ROM registry hive. The change is made in RAM and after the device is restarted and RAM is cleared, the value is read from ROM.
- In the boot sequence of the device some xml-files which contain settings, are provisioned and overwrite changes made to the registry.
- A certain service or startup-program simply overwrites settings on system-startup.
I'm working on the File Explorer now. While testing I found out that eventhough I have TCB privileges some access is still restricted, because system-files are mapped directly in ROM. There are 2 file-flags that have impact on this:
- 0x0040 = FILE_ATTRIBUTE_INROM - This file is an OS file stored in ROM. Most files in the \Windows folder have this attribute. These files cannot be moved, modified, renamed or removed. Only a firmware update can change these files.
- 0x2000 = FILE_ATTRIBUTE_ROMMODULE - The exe- and dll-files in the \Windows folder also have this flag set. These ROM files are mapped directly into executable read-only address-space, rather than being first copied to RAM. They cannot even be accessed as a file. They can only be executed. And therefore these files also can't be copied to another location, ie. we don't even have read-access on these files. However, I may have found a way to access these files anyway. This needs a bit more research, but I hope that I can at least copy the files to a location where they can be accessed.
Everything else seems to be possible. Creating files in the \Windows folder is no problem. I hope to be able to release a version with a File Explorer soon. I guess it will be in about two weeks or something. Bear with me.
Update 2011/04/19: No luck on reading the ROM modules
I did more testing. I wanted to have at least read-access to the exe- and dll-files in the \Windows folder. As it is not possible to call CreateFile() on those files, I tried LoadLibrary(). That works. With CreateToolhelp32Snapshot(), Module32First() and Module32Next() I can enumerate the modules and find the one I loaded. I also get a baseaddress and size of the module. The problem is that I can't access that memory. I tried direct-access and I tried using ReadProcessMemory(). ReadProcessMemory() returns "Incorrect parameter" as soon as I try to access the ROM memory. Also using VirtualProctect() to unlock the memory gives me "Incorrect parameter" all the time. So it seems we won't have read-access to the exe- and dll-files in the \Windows folder for now. I will now concentrate on other functionality for the File Browser. I will try to get access to the ROM modules later on.
Update 2011/06/14: RELEASE "WP Root Tools 0.4 alpha"
It has taken me a long time, here's a new release, finally. Actually this release is not very useful yet, because the file-explorer is read-only so far. The "Cut / Copy / Paste / Delete / Rename" will follow soon. The browsing part has been extremely difficult. The main problem was the performance. Opening a folder could take up to 4 minutes. Ouch! Through a combination of multi-threading techniques, caching and combining multiple exploits I finally got this to a stable solution where browsing can be done in quite an acceptable way. The write actions don't have these performance issues, because it is not a real problem when copying a file will take a few seconds more or less. I already started on implementing this. This release also has a few minor fixes to the Registry editor, but no new functionality. I also did a lot of testing on the certificate stores. I got full read / write access to all the stores, but none of that is implemented in the WP7 Root Tools yet. That will be next.
Update 2011/06/24: RELEASE "WP Root Tools 0.5 alpha"
In this version I implemented the basic file-operations and a certificate installer.
You might wonder why I created a certificate installer, because it is already possible to add certificates. When you email a certificate to yourself and tap that attachment, WP7 will install it. But if you install like this, the certificate will always be installed in the "Root" certificate store. With my certificate installer you can also install in "CA", "My" and "Code Integrity" stores. This may be very useful for hacking attempts. You can install a certificate by browsing to the ".cer" file and tap it. The possibilities for getting a certificate file on your phone will follow below. If you start installing certificates on your phone you should consider making backups in advance. I once experienced Zune going totally bezerk after installing certs. Zune took 100% and lost connection with the phone all the time. Everything was back to normal when I deleted the certs. In this version there is no view on the certificate stores available yet. In a future version you will be able to view the contents of all the certificate store and also uninstall certificates from there.
I specifically mentioned that this version has basic file-operations, because not everything is implemented. This is what you can do:
- Cut / Copy / Paste / Delete / Rename single files
- Delete empty folders
- Create new folders
This is what you can't do (will be possible in later versions):
- Cut / Copy / Paste multiple files or entire folders
- Delete folders with content
- Rename folders
Last, but not least: I fixed some performance issues. Mainly memory-leaks in native code and in COM interop. I'm not sure if I got all leaks now, because it's not easy to do native C++ without debugger and profiler. But improvement is clearly noticeable.
This version does not have a connection with the PC. So it is not possible to use WP7 Root Tools to transfer files between the phone and the PC. You can however, use other tools to get files onto your phone and then use WP7 Root Tools to move the files to the desired location. WP7 Root Tools has write access on every folder of your phone.
How to transfer files to your phone:
Mail the file to yourself. Use your phone to go to your mailbox (not webmail). The attachment will be downloaded in the background. Then use WP7 Root Tools to navigate to \Application Data\Volatile\EmailAttachments\Attachments(number). You have to look which attachment is the one you want. The filename may be changed. The extension is the same.
Install Davux' webserver on your phone. Configure a password in that webserver. The IP of the phone is visible in the webserver app. Browse to the phone like this: http://192.168.1.2/IsolatedStorage using the IP of the phone. Upload a file to the phone. Open WP7 Root Tools 0.5 alpha. Navigate to this folder: \Applications\Data\9BFACECD-C655-4E5B-B024-1E6C2A7456AC\Data\IsolatedStore\. There's your file. You can copy it to another location if you want.
Use the Zune storage hack, described here and here. If you copied the files to your phone in this way, they will be located at \My Documents\Zune\Content in one of the subfolders. Again, the files here are renamed. You have to find the file you want and then rename it.
Have fun!
Some screenshots:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
so what you are saying is you have been able to get read/write access to the file system on the focus? or is that something you just "hope" to add later?
EDIT: I'm sorry if that came off rude, I don't mean it to be I'm just excited about the idea of file system access!
very nice tool, needed a good registry editor for the samsung focus and this is perfect. thanks!
ur f-n awesome bro!
brilliant heathcliff
Very nice - works really well with the Focus.
Do you have any timeline for the file browser part? I'd love to see functionality that can copy files on and off the system folders.
Thanks for the tool!
EXCELLENT WORK Heathcliff, finally a way to write to the parts of the registry that we wasnt able to before. NOW we are getting somewhere with the Focus!!
Nice! Looks pretty neat!
Live tiles on Samsung Focus work now!
This is exactly what I was looking for to accomplish the live tile fix on my Samsung Focus detailed on wmpoweruser.
how-to-fix-live-tiles-which-are-not-updating-without-a-hard-reset-only-developer-unlocked-devices
Thanks, dude!
TOM.
voluptuary said:
so what you are saying is you have been able to get read/write access to the file system on the focus? or is that something you just "hope" to add later?
EDIT: I'm sorry if that came off rude, I don't mean it to be I'm just excited about the idea of file system access!
Click to expand...
Click to collapse
Yes I have 'full' access to the filesystem. The are 2 exceptions I found so far, using my hack:
1. I don't have access to files that are in use by the system. So, driver-files that are currently used cannot be accessed. Not even read-access. Possible work-around: I want to try to make a kind of copy-on-boot. I've already seen locations in the registry, where I can possibly add a startup-item that copies a file to a temporary location, when the file is not in use yet. But I have not tried that yet.
2. I can't overwrite or modify files that have the systemfile-flag. But I can copy the files, as long as they are not in use. Possible work-around: I have not tried all possibilities for changing file-flags. I might be able to do that.
I do have access through the entire file-system, including the \Windows folder and to the IsolatedStorage-folders of other apps. So that should give you a full file-explorer. Working on that now.
sorcy said:
Very nice - works really well with the Focus.
Do you have any timeline for the file browser part? I'd love to see functionality that can copy files on and off the system folders.
Thanks for the tool!
Click to expand...
Click to collapse
Well, there is not really a time-line yet. I wanted to finish the first release of this tool for a long time now. But I got some serious family issues. My grandpa died and my mother got a stroke and needed brain-surgery. Surgery went ok, but she needs rehabilitation right now. You can understand that I spent a lot of time with family over last weeks. I'm not sure how things will go. Situation with my mother looks promising. I visit her every other day now and it is a long ride. So that makes planning for this tool a bit difficult. But a lot of code that I made now is reusable for the other parts of WP7 Root Tools. So that should be a lot easier. I guess it won't take too long before I can add the file-explorer and certificate-stores. Just bear with me.
Hi Heathcliff74,
I hope everything goes well for your Family. The tool is one of kind, it's the first time that I see full Registry access on my Omnia 7. It looks very promising and I cannot wait for the File Explorer part. I hope you can add more features for both the registry and file explorer. Can you export the registry? Or that is not possible yet. Also, I would love to see a favorite’s option so we can add locations of the registry as favorites. We are very grateful to you for an excellent tool. Thanks.
Big thanks for the first alpha release ! Later this day I will do some tests and reply...
GIPAQ said:
Hi Heathcliff74,
I hope everything goes well for your Family. The tool is one of kind, it's the first time that I see full Registry access on my Omnia 7. It looks very promising and I cannot wait for the File Explorer part. I hope you can add more features for both the registry and file explorer. Can you export the registry? Or that is not possible yet. Also, I would love to see a favorite’s option so we can add locations of the registry as favorites. We are very grateful to you for an excellent tool. Thanks.
Click to expand...
Click to collapse
Thanks for the compliment. Importing and exporting registry keys is a feature that is not present yet, but it can be implemented for sure. Also a favorites option can be done. I'll put that on my ToDo-list.
Very good app. Hope to see quickly the file explorer feature !!!!
Take care of your family which is the most important .
Good luck!!!!
This is huge, I confirm it works on restricted Registry keys.
You are the best
martani said:
This is huge, I confirm it works on restricted Registry keys.
You are the best
Click to expand...
Click to collapse
Thanks! Now you can update your blog, right?
Heathcliff74 said:
Thanks! Now you can update your blog, right?
Click to expand...
Click to collapse
speaking of I did post a story about this hopefully later today it should be up
domineus said:
speaking of I did post a story about this hopefully later today it should be up
Click to expand...
Click to collapse
Can you tell me where you posted that? I'd like to read that. Tnx.
Heathcliff74 said:
Can you tell me where you posted that? I'd like to read that. Tnx.
Click to expand...
Click to collapse
wmpoweruser.com
waiting for acceptance
domineus said:
wmpoweruser.com
waiting for acceptance
Click to expand...
Click to collapse
Cool
Sent from my OMNIA7 using XDA Windows Phone 7 App

[NOTICE] ATTENTION ALL ROM/KERNEL DEVELOPERS - Firmware Packages!

The Heimdall Suite 1.3 release includes a major overhaul of Heimdall Frontend. The most important feature is that Heimdall Frontend now provides a means for you to easily package your firmware/ROMs/kernels in a "Heimdall Firmware Package".
Heimdall Firmware Packages contain any files users will need to flash as well as additional information including supported devices, developer names, homepage and donate URLs etc.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Heimdall Firmware Packages can be customised by users or flashed directly as provided by firmware developers. Generally users won't want or need to customise the firmware so flashing your firmware becomes as simple as loading the firmware package and pressing the "Start" button.
Distributing your firmware via Heimdall Firmware Packages should simplify the flashing process for end users and decrease the number of bricks that occur as a result of users flashing incorrect firmware.
Heimdall 1.3.0 has officially been released and can be download from the Heimdall product page.
Feedback is very welcome! As always donations are also very much appreciated.
The following information/tutorial is included in the official README for all platforms but is reprinted here so developers can gain an understanding of the process before downloading Heimdall Frontend.
How to Create a Heimdall Firmware Package:
Firstly, Heimdall's firmware package format is just a regular TAR archive
compressed with gzip. The only two real requirements are that a valid
firmware.xml must be included (refer to Appendix A) and you can only
include files (no directories, links etc.) As such if you'd like there is
nothing preventing you creating Heimdall packages manually. Of course
Heimdall Frontend provides a simple user interface that takes care of all
the hard work for you.
There are two ways in which you can create a firmware package. You can
create a package from scratch, or you can load an existing package, apply
modifications and then save the package. Creating a package from scratch
is the preferred approach, by taking this approach you're far less likely
to run into file name length limitations, these are not Heimdall's own
limitation but rather a limitation of the TAR archive format.
Before you can access Heimdall Frontend's firmware creation functionality
(available from the "Create Package" tab) you must first specify which
files will be included in your package as well as a few flashing options
i.e. Whether or not users should repartition when flashing. This
information must be filled out from the "Flash" tab in exactly the same
fashion you would provide information to flash your device (see "Performing
a Custom Flash with Heimdall Frontend"). As mentioned above, it's not the
preferred means, but you're able to load an existing package as a starting
point for this information.
Once you've specified the files/partitions you wish to include in your
firmware package the "Create Package" tab will become available. Clicking
this tab will display additional information that you can include in your
package. In order to continue you must fill out all sections except for the
URLs section, which is optional. The following is break-down of what all
these options mean.
- General Firmware Information: -
Firmware Name - This is the name of your particular firmware. An
example would be "Cyanogenmod".
Firmware Version - This is the particular version identifier for your
package. Any valid string will be accepted although a the inclusion
of decimal point version number is preferred releases i.e. "7.1".
If it makes sense then feel free to append a text string like "RC1"
or "Beta 1" to the decimal point version.
Platform Name - This is the name of platform (or operating system) that
your firmware is based on. In most cases this will simply be
"Android".
Platform Version - This is the operating system version that your
firmware is based on. Again decimal point version numbers are
preferred over text, i.e. "2.3.4" is preferred over "Gingerbread".​
- Developers -
URLs (Optional):
Homepage - Here you can enter your personal URL or a URL particularly
pertaining to the firmware being packaged. The URL must be well
formed for it to work. An example of a well formed URL is
"http://www.glassechidna.com.au/products/heimdall/". It is
important to include "http://" in order to specify the protocol as
other protocols such as "ftp://" are equally valid although
unlikely to be used.
Donate - Here you can enter a URL that will link users to a page to
make donations for the effort you've put into developing your
firmware. Once again the URL must be well formed but there is no
requirement on how your donation page should work. For instance
both "http://www.glassechidna.com.au/donate/" and
"http://forum.xda-developers.com/donatetome.php?u=2710388" are
equally valid.​
Developer Info:
Name - Here you can enter in the name of individual team members or a
team name. Click "Add" and the developer will be added to the list
on the right. If you make a mistake you can select a developer from
the list and click "Remove". You can list as many developers as you
like however size constraints of the "Load Package" means only a
few will be visible. Where possible you may want to opt for team
names over listing individual team members.​
- Supported Devices -
This section allows you to create a list of devices that are supported by
your particular firmware. Although Heimdall isn't capable of enforcing this
we strongly recommend you take this section seriously. If filled out
correctly you could help save a number of accidental bricks!
Device Info:
Manufacturer - This is where you can enter the name of the manufacturer
for a particular device. For now this will most likely be
"Samsung".
Name - This is the human readable name for a particular device.
"Galaxy S", "Galaxy S II", "Droid Charge", "Vibrant" and
"Galaxy S (Telstra)" are all valid names. There are a lot of
possible variations here so be as specific as you think is
necessary.
Product Code - This is by far the most important bit of device
information. Device names tend to be region specific and further
subject to the whims of telecommunication companies and resellers.
Product Codes (or product IDs) are designated by manufacturers and
are generally the definitive means of referring to a particular
device. Examples are "GT-I9000", "GT-I9100" and "SCH-I897". If
you're unsure of a particular product code then Google and
GSMArena are your friends!​
After filling out all the necessary information the "Build" button will be
enabled. If it's still disabled then you know you're missing some required
information. In particular you must specify at least one developer and at
least one supported device. Pressing the "Build" button will bring up a
save dialogue where you must chose a file name for your particular package.
Don't worry about specifying the ".tar.gz" extension Heimdall Frontend will
take care of this automatically.
Once you've chosen a file name Heimdall Frontend will begin the process of
building the firmware package. In doing so a valid firmware.xml file will
be generated from the information entered, all files will be archived in a
single TAR file then the TAR archive will be compressed via gzip
compression. Compression will take a little while but you will see progress
bars so you know the application hasn't hung. When the progress bars
disappear you're finished making your package.
Congratulations! You're now ready to redistribute your firmware package
online or by any means you see fit.​
Appendix A - firmware.xml
The following details a part of the Heimdall Firmware Package format. This
is only relevant to developers or advanced users who wish to create Heimdall
Firmware Packages outside of Heimdall Frontend or in some way integrate support
for the format in their own software.
All Heimdall Firmware Packages must contain a file called firmware.xml. This
file stores information stores meta-data for the package as well as information
about other files contained in the package that indicates how they should be
flashed.
The format is fairly straight-forward so it won't be explained in great detail,
nonetheless the following is an example of a valid firmware.xml file.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<firmware version="1">
<name>Test Firmware</name>
<version>1.1</version>
<platform>
<name>Android</name>
<version>2.3.4</version>
</platform>
<developers>
<name>Benjamin Dobell</name>
<name>Hedonism Bot</name>
</developers>
<url>http://www.glassechidna.com.au/</url>
<donateurl>http://www.glassechidna.com.au/donate/</donateurl>
<devices>
<device>
<manufacturer>Samsung</manufacturer>
<product>GT-I9000</product>
<name>Galaxy S</name>
</device>
<device>
<manufacturer>Samsung</manufacturer>
<product>GT-I9000T</product>
<name>Galaxy S (Telstra)</name>
</device>
<device>
<manufacturer>Samsung</manufacturer>
<product>GT-I9000M</product>
<name>Vibrant</name>
</device>
</devices>
<pit>Nl3276-I9000 s1_odin_20100512.pit</pit>
<repartition>0</repartition>
<noreboot>0</noreboot>
<files>
<file>
<id>0</id>
<filename>gq3276-boot.bin</filename>
</file>
<file>
<id>24</id>
<filename>Uh3276-cache.rfs</filename>
</file>
<file>
<id>22</id>
<filename>em3276-factoryfs.rfs</filename>
</file>
<file>
<id>11</id>
<filename>fl3276-modem.bin</filename>
</file>
<file>
<id>21</id>
<filename>Xd3276-param.lfs</filename>
</file>
<file>
<id>3</id>
<filename>if3276-Sbl.bin</filename>
</file>
<file>
<id>6</id>
<filename>cr3276-zImage</filename>
</file>
</files>
</firmware>
New lines need not be included and the order in which elements are specified
does not need to match that of the above example.
One and only one <firmware> element must be included. The <firmware> element
must also have a version attribute specified. The version must be parsable as
an integer and indicates what version of the Heimdall Firmware Package
specification the package adheres to.
All data is stored as strings, however a <file>'s <id> element must be parsable
as an integer. The <id> value represents the partition ID (according to the
specified PIT file) that the file should be flashed to.
A <firmware>'s <repartition> and <noreboot> elements must also be parsable as
an integer. However, as they represent boolean values, a value of zero ("0")
means false (or disabled) where as a non-zero value (typically "1") means true
(or enabled).
File names are specified relative to the TAR archive in which firmware.xml and
all other files are to be stored. Heimdall Firmware Packages do not support
directories or links, as such file names should only be a name and not a path.
<url> and <donateurl> are the only optional elements, all other elements must
be included.
This is AWESOME! Hope people adopt this fast!
Thanks a lot for this. I was waiting for such a tool since long long time
Now I can make my development even more faster.
I'm really thankful for your shared knowledge and your hard work.
Darkyy said:
I'm really thankful for your shared knowledge and your hard work.
Click to expand...
Click to collapse
+1
in case you havent noticed theres a thx button fo rthat you might go ahead and click it
i9100 support?
uppon2 said:
i9100 support?
Click to expand...
Click to collapse
Yeah, all Galaxy S devices, well except maybe the Droid Charge which we've had problems flashing with Heimdall.
The firmware package format itself isn't tied to any particular device.
DAGr8 said:
+1
in case you havent noticed theres a thx button fo rthat you might go ahead and click it
Click to expand...
Click to collapse
I did
You know, sometimes a sentence says more than thousand clicks
Alright, let's see what this can do. Many thanks for this project!
I am trying to put together a package for the Vibrant's original firmware, JFD. The one clarifying question that I have is: Is IBF/PBF the same as the primary boot loader? That is, should I set that partition (0) to boot.bin?
Thank you for the hard work!
ginzberg said:
I am trying to put together a package for the Vibrant's original firmware, JFD. The one clarifying question that I have is: Is IBF/PBF the same as the primary boot loader? That is, should I set that partition (0) to boot.bin?
Thank you for the hard work!
Click to expand...
Click to collapse
Instead of "IBF/PBF" I think it might be something like "IBL+PBL". But yeah, primary bootloader (boot.bin) == initial bootloader + primitive bootloader.
Wow, yeah.. you're right. I sent my message without proofing. "Thanks" sent.
Great... now that I've built this thing... do I dare try it? I will report back with my findings when I get up the guts (i.e. have a windows machine around to bail me out if I need it), and then post the package for other Vibrant users.
ginzberg said:
Wow, yeah.. you're right. I sent my message without proofing. "Thanks" sent.
Great... now that I've built this thing... do I dare try it? I will report back with my findings when I get up the guts (i.e. have a windows machine around to bail me out if I need it), and then post the package for other Vibrant users.
Click to expand...
Click to collapse
Haha, you'll be right. Heimdall has been pretty heavily tested these days. Adam Outler recently made a video of Heimdall performing 200 flashes in a row without a single failure It's MUCH more reliably than Odin.
I thought it's probably worth mentioning the Heimdall 1.3.0 has officially been released. On top of the functionality provided in the betas there's also a few extra bits of functionality provided by the new Utilities tab.
The new Utilities tab should make the creation of Heimdall Firmware Packages a bit easier for developers as you're now able to connect your device to your PC and download the PIT that's on the device straight to your PC. As such you no longer need to worry about trying to recall exactly which PIT file you're using or where you got it from.
Benjamin Dobell said:
I thought it's probably worth mentioning the Heimdall 1.3.0 has officially been released. On top of the functionality provided in the betas there's also a few extra bits of functionality provided by the new Utilities tab.
The new Utilities tab should make the creation of Heimdall Firmware Packages a bit easier for developers as you're now able to connect your device to your PC and download the PIT that's on the device straight to your PC. As such you no longer need to worry about trying to recall exactly which PIT file you're using or where you got it from.
Click to expand...
Click to collapse
Awesome, thanks for the heads up. The new firmware package feature seems really cool... but I haven't seen anyone using it yet. What's the deal!? Do you have any samples for stock ROMs we can try?
aorth said:
Awesome, thanks for the heads up. The new firmware package feature seems really cool... but I haven't seen anyone using it yet. What's the deal!? Do you have any samples for stock ROMs we can try?
Click to expand...
Click to collapse
Well the official release of Heimdall 1.3.0 was only made a couple of days ago. So I figured some developers were waiting for that (over the beta release). However, now I'm not so sure that's the reason. I can understand if developers only release their firmware for ROM Manager. However, I see zero reason to continue releasing firmware as several TAR archives for Odin.
Heimdall Firmware Packages are much more straight-forward to use for end-users as there's only one file to select (and no settings need to be changed). As Heimdall Frontend takes care of building the packages it's probably also easier for developers, plus developers are able to include additional information about themselves and the package. On top of that these packages will work flawlessly on Linux, OS X and Windows with no additional work required.
EDIT: It's probably also worth noting that the format isn't just for full firmware packages. It works quite nicely as a way of distributing modems and kernels as well. This is particularly useful for custom kernel developers.
Benjamin Dobell said:
Well the official release of Heimdall 1.3.0 was only made a couple of days ago. So I figured some developers were waiting for that (over the beta release). However, now I'm not so sure that's the reason. I can understand if developers only release their firmware for ROM Manager. However, I see zero reason to continue releasing firmware as several TAR archives for Odin.
Heimdall Firmware Packages are much more straight-forward to use for end-users as there's only one file to select (and no settings need to be changed). As Heimdall Frontend takes care of building the packages it's probably also easier for developers, plus developers are able to include additional information about themselves and the package. On top of that these packages will work flawlessly on Linux, OS X and Windows with no additional work required.
EDIT: It's probably also worth noting that the format isn't just for full firmware packages. It works quite nicely as a way of distributing modems and kernels as well. This is particularly useful for custom kernel developers.
Click to expand...
Click to collapse
Yeah, the way I see it, it's a bit like VMware or whoever else offering pre-built appliances for various functions. Download this VM, press play, and you've got a fully-functional Redmine server, for example.
I'll keep my eye out for some firmware packages... I'll be keen to try one.
aorth said:
Yeah, the way I see it, it's a bit like VMware or whoever else offering pre-built appliances for various functions. Download this VM, press play, and you've got a fully-functional Redmine server, for example.
I'll keep my eye out for some firmware packages... I'll be keen to try one.
Click to expand...
Click to collapse
Ok, I just decided to make my own. Since it worked, I'll share... here's a Heimdall-1.3-flashable firmware package for stock XXJVQ:
http://www.multiupload.com/W4IGGFZU6F
It's stock. It's odexed. It's stock! It will repartition. It includes bootloaders. Did I mention it's COMPLETELY stock?
Great job on Heimdall 1.3, Ben. I used to write shell scripts to do my flashing, but I'd love it if people started releasing Heimdall-flashable tar files. Hopefully this gets the ball rolling for people to create their own firmware packages (hopefully for more-interesting firmwares than a stock XXJVQ!).
Hi, sorry if I'm been thick but where can I find heimdall packages for the galaxy s2? I have tried downloading the firmware but cannot see where to load all the files once the tar has been extracted. The only tutorials I have seen have the boxes labelled pda etc. The latest version I have downloaded doesn't as far as I can see, V1.3.1. Packages sound much easier than me mucking up the file uploads but I can't find any?

[DEV RESOURCES][AMDL] P-ROM, Dump, Tools, Resources & Tips [5/18]

I have gathered pretty much all the things useful in modding our system.
I ask other developers to post their findings here also.
My aim is to allow people to learn how make their own edits and mods.
Happy modding,
As of now our only option for recovery from a screw up is flashing the stock image via Odin, so be careful.
Developer Tools:
AIO Tool Pack - The main tools I used in creating this deodexed package (Includes the following)
APK Manager with the compatible ApkTool and AAPT (Took me a while to find compatible versions of both due to strange qualifiers in resource APKs)
Dex2Jar with JD-Gui (Useful for checking out JavaCode in order to apply to ByteCode) (If you've got an extra Kilo-Dollar to spare check out Jeb)
Baksmali/Smali Manager for editting jar files
Odin 3.07 for flashing stock firmwares (available in dev thread)
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Psuedo-ROM
Deodexed System Installer With Listed Mods
(Mirror) (MD5:108a5553c6ae82af9b0a3319ceffc8b8)
All Responsibility Are Belongs To You
Entire deodexed system with some mods already installed. Based on the AMDL ota update.
You must be rooted and updated to build number I337UCUAMDL.
I recommend a factory reset, fresh wipe via Odin, updating ota, rooting, then installing this package.
After installing it is recommended that you freeze the OTA apps in order to block OTA updates.
- LocalFOTA, AT&T Software Update, FWUpgrade
- Mod list:
5/18/13 -
Removed struck-out items from 5/8/13 change log for NottachXposed compatiblity
Integrated debloater into installer
Added extended power menu (scrosler)
Added init.d support (scrosler)
-Added zipAlign init.d script
Added 1% battery support for SystemUI
Click to expand...
Click to collapse
5/9/13 -
Tethering enabled via framework-res.apk, includes Bluetooth tethering (romracer)
Removed WiFi connected notification via SecSettings.apk
Enabled accessibility widgets via SecSettings.apk
Removed carrier label in status bar via SystemUI.apk
Removed full battery notification via SystemUI.apk
Removed loud volume warning via framework.jar
Option to unlock all AT&T APNs (In installer)
Unhid broadband APNs
Enabled scrolling wallpaper
Removed launcher help text
Removed multi-window help button
Removed boot sound
Redeodexed entire AMDL update
Fixed APKs for de/recompiling
More...
Click to expand...
Click to collapse
-Installation:
Copy "copy_to_sdcard" folder to internal sdcard
With USB debugging enabled run the Windows BAT file in the package.
Answer questions.
Profit...
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Tutorials:
Framework installation using ApkTool
Modding using Apk Manager
Reading source using Dex2Jar
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Tips & How-Tos:
Exposed framework installer - Use this version of the exposed installer which is compatible with the S4
More tips & mods
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Extra Downloads:
Debloater bat file - Removes AT&T, Google, and Samsung bloat (Open in any text editor to inspect/edit the files that will be removed)
I337UCUAMDL_RAW_SYSTEM_DUMP - The base from which this deodexed installer is created from
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Framework installation using ApkTool
In order to use Apk_Manager on System APKs you will first need to install the System Frameworks to your ApkTool.
Assuming you have downloaded both zips from the first post unzip the tools folder to a location of your choosing.
Next, extract the frameworks zip to your newly created Apk_Manager folder and place them in the 'other' folder so they are in scope of apktool.jar, also in the 'other' folder.
Now, with no files selected in the 'other' folder, Shift+RightClick an empty area of the folder and choose "Open command window here".
Do:
Code:
apktool if framework-res.apk
&&
Code:
apktool if twframework-res.apk
The frameworks should be installed as 1.apk and 2.apk respectively. Confirm by navigating to C:/Users/<YOU>/apktool/framework.
Example output:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You should see 1.apk and 2.apk, they will be a different file size of the res APK, this is because they only contain info pertaining to APKs that may utilize their resources.
Now you have your frameworks installed correctly and can continue using Apk-Manager to Mod your other, deodexed, APKs, such as SystemUI.apk.
I hope this will be helpful to some, if there are any additional steps I can add to make it clearer please let me know.
Modding using Apk Manager
Apk-Manager examples coming soon...
Reading source using Dex2Jar
Dex2Jar is a useful tool for generating Java source from APK/JAR dex files.
In order to use Dex2Jar first open your APK/JAR with WinRar or similar and extract the dex file to the Dex2Jar root directory.
Next drag-n-drop the dex file onto dex2jar.bat. This will create a jar archive in the same directory.
Next drag-n-drop that newly created jar onto jd-gui.exe.
This will open a tree view of the Java source.
Note that it is not always possible for Dex2Jar to reconstruct the source code and some classes may have errors.
Also, structure of the source may be in somewhat ByteCode format, still having gotos and labels...
For more information on Dalvik opcodes see here.
Another tool useful in reconstructing Java code is Virtuous Ten Studio.
Did you know?
A few additional places to look at are...
Disable WiFi Connected Notification -
http://forum.xda-developers.com/showpost.php?p=40865546&postcount=6
Click to expand...
Click to collapse
Disable Loud Volume Warnings -
http://forum.xda-developers.com/showpost.php?p=40970794&postcount=10
Click to expand...
Click to collapse
Enable "Find My Mobile" in Settings -
system/csc/feature.xml { CscFeature_Setting_DisableMenuFindMyMobile="false", CscFeature_Setting_FindMyMobile="true" }
Click to expand...
Click to collapse
Unhide 'broadband' APNs in Network Settings -
system/csc/feature.xml { CscFeature_Setting_HideApnList="" }
Click to expand...
Click to collapse
Enable APN edits -
SQL Editor - data/data/com.android.providers.telephony/databases/nwk_info.db_carriers - Δ editable to '1'
Click to expand...
Click to collapse
Nottach said:
A few additional places to look at are...
Click to expand...
Click to collapse
That tip about enabling Find My Mobile is quite nice. After changing that, the option does show up in Settings -> More Tab -> Security; however it doesn't appear to work correctly. The phone never shows up as registered on my Samsung Account. I even tried creating a new Samsung account to test with and by enabling remote control when over wifi and cell data.
captawsm said:
That tip about enabling Find My Mobile is quite nice. After changing that, the option does show up in Settings -> More Tab -> Security; however it doesn't appear to work correctly. The phone never shows up as registered on my Samsung Account. I even tried creating a new Samsung account to test with and by enabling remote control when over wifi and cell data.
Click to expand...
Click to collapse
Hmm, just checked it out and it seems they haven't added the S4 to the list of devices? Maybe in the future they will.
I saw that the S III shows up in the list of devices on the Samsung Dive website. I still have my "stock" rooted S III so I might check to see if this trick works on there and if it will register on the site. I can post results if anyone is interested which may let us know if we just need to wait till the S4 shows up on the site.
Edit: if anyone wanted to know: Tried on a stock rooted AT&T S3 w/ 4.1.1 and ran into same issue - I can enable remote controls but device never registers on the samsungdive.com website so maybe there is something more to getting Find My Phone working that just editing features.xml
If someone else tries this, I'd be interested in hearing if you run into the same problem.
I do a lot of decompiling/recompiling and minor smali/xml edits, I just want your general opinion here.. Do you or have you ever used Chainfires Fast AAPT?
http://forum.xda-developers.com/showthread.php?t=1907281
So I'm trying to disable the Media Volume Alert by modifying android\media\AudioManager of framework.jar, as shown below, and I'm unable to get the device to fully boot after replacing the original file. It just hangs on the AT&T logo. I can get ADB so I can replace the original and then it boots.
Does my mod look like it should break it? All I did was change the level at which the dialog appears to 16 (0x10) instead of 10 (0xa). I would think that would be OK. I don't get any error recompiling either. I've tried wiping dalvik-cache between replacements, no luck. I've also tried returning false at the beginning of the 'isEarProtectLimitOn' method, no luck. I'm stuck, any ideas?
line 483
Code:
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 60
const-string v0, "AudioManager"
sput-object v0, Landroid/media/AudioManager;->TAG:Ljava/lang/String;
.line 269
const/16 v0, 0xd
new-array v0, v0, [I
fill-array-data v0, :array_16
sput-object v0, Landroid/media/AudioManager;->DEFAULT_STREAM_VOLUME:[I
.line 2971
const/16 v0, 0x10
sput v0, Landroid/media/AudioManager;->EAR_PROTECT_LIMIT_INDEX_DISABLE:I
.line 2972
[COLOR="Red"]-- const/16 v0, 0xa[/COLOR]
[COLOR="Green"]++ const/16 v0, 0x11[/COLOR]
sput v0, Landroid/media/AudioManager;->EAR_PROTECT_LIMIT_INDEX_NORMAL:I
EDIT: This is the correct edit to disable the Loud Volume Notification. I guess my tools were out of date. After updating baksmali it worked.
Basically instead of at level 10 it triggers only at the max volume, which I think is triggered someplace else. I'll keep looking for the root.
EDIT2: In addition to the above edit the 'EAR_PROTECT_DEFAULT_INDEX' needs to be changed so it doesn't trigger at Max Volume.
Same file, line 109:
Code:
.field public static final EAR_PROTECT_DEFAULT_INDEX:I = [COLOR="Red"]0x11[/COLOR]
No moar Loudness warnings!!
Nottach said:
A few additional places to look at are...
Click to expand...
Click to collapse
Thanks for this!
This was my first time editing SQL db's, so I didn't want to do anything I wasn't sure about. After making the APN's editable, the APN protocol is still grayed out. Is there a way to change the default value of the APN protocol itself (specifically to "iPv4/iPv6") within the database?
Hey man i see ur postinf mods. I removed the ongoing wifi on s3 and same exact method works on s4 but needs to be using a deodex system which i will push this weekend however i can get u a guide if u wanna try?
sgh-i747(d2att)(sgs3) on latest cm10.1 or ultimatum
howtomen said:
Hey man i see ur postinf mods. I removed the ongoing wifi on s3 and same exact method works on s4 but needs to be using a deodex system which i will push this weekend however i can get u a guide if u wanna try?
sgh-i747(d2att)(sgs3) on latest cm10.1 or ultimatum
Click to expand...
Click to collapse
You mean the WiFi Connected notification?
I found this method. Is yours different?
Mine seems to work well but I'm curious as to what you found too.
Nottach said:
You mean the WiFi Connected notification?
I found this method. Is yours different?
Mine seems to work well but I'm curious as to what you found too.
Click to expand...
Click to collapse
in the s3 we used this method which still works and only requires the secsettings http://forum.xda-developers.com/showpost.php?p=29047026&postcount=1
howtomen said:
in the s3 we used this method which still works and only requires the secsettings http://forum.xda-developers.com/showpost.php?p=29047026&postcount=1
Click to expand...
Click to collapse
I see, I think my method never calls the NotificationManager because it returns doNotShowNotification while yours still creates the notification but never calls show() on it. which may lead to memory leaks. I think mines cleaner?
Nottach said:
I see, I think my method never calls the NotificationManager because it returns doNotShowNotification while yours still creates the notification but never calls show() on it. which may lead to memory leaks. I think mines cleaner?
Click to expand...
Click to collapse
i see makes good sense thanks for the work
@howtomen You have experience making all apps multi-window? I was abe to get the all to show in the drawer but their indexes are messed up and the wrong app gets added when dragging.
I think I have to fix or create the adapter?
Why not linking directly to the tools? dex2jar and smali are udpated often, and the current APKTool fails to properly decode some resources in stock firmware of this device.
Nottach said:
I have gathered pretty much all the things useful in modding our system.
I ask other developers to post their findings here also.
My aim is to allow people to learn how make their own edits and mods.
Let's fill this Thread with detailed how-tos instead of this Section with crappy themed ROMs.
Happy modding,
As of now our only option for recovery from a screw up is flashing the stock image via Odin, so be careful.
Downloads:
Tool Pack
APK Manager with the newest ApkTool and AAPT (Took me a while to find compatible versions of both due to strange qualifiers in resource APKs)
Dex2Jar with JD-Gui (Useful for checking out JavaCode in order to apply to ByteCode)
Baksmali/Samli Manager for editting jar files
Odin 3.07 for flashing stock firmwares (available in dev thread)
Frameworks Only
Framework files for ApkTool installation (Ready for installation to ApkTool)
Entire Deodexed System With Listed Mods
Entire deodexed system with some mods already installed for a common developer base.
Installable if you know how. Based off romracers deodexing.
- Mod list:
Instruction:
Framework installation using ApkTool
Modding using Apk Manager
Reading source using Dex2Jar
Tips & How-Tos:
http://forum.xda-developers.com/showpost.php?p=40914188&postcount=5
Click to expand...
Click to collapse
Nottach said:
@howtomen You have experience making all apps multi-window? I was abe to get the all to show in the drawer but their indexes are messed up and the wrong app gets added when dragging.
I think I have to fix or create the adapter?
Click to expand...
Click to collapse
Very excited to see this happen. Really miss this from my hacked S3.
Sent from my SAMSUNG-SGH-I337 using xda app-developers app
That download speed from devhost is PAINFUL! I'm working on porting over cm10.1's MMS.apk for our device once this is finished. I may try to find a you better mirror man lol.

[HINT] How to set the default Home screen page on Galaxy Y

In /system folder open the file build.prop and add the following line
ro.csc.homescreen.defaultscreen=1
where 1 means 2nd screen page, 2 means 3rd page, etc...
(to find and edit the build.prop file use a file manager app able to navigate the /system folder and to eventually remount the /system partition in Read/Write mode if it's read only.
NOTE: Editing system files require root permissions so the Andriod system must be rooted first)
That's it!
PLEASE NO POSTS SAYING THAT THIS HINT IS KNOWN ALREADY, THANKS
(I'll explain here below why I decided to make this thread)
What will follow is just some sort of vent, nothing else; so if you are not curious just skip to read it, save your time and don't get mad at me
Why the vent? because it took me two days to find out the above, yes... TWO DAYS! almost 20 hours of Internet searches, readings, downloads, editing, file tranfers, CWM zip reworking, and a huge amount of trial&errors attempts... just to find something that was "known already"... yeah!
And the simple plain reason that made me fail to find the answer by few Google searches is that the "trick" above is nowhere associated to the Galaxy Y, hence the reason that made me decide to post the hint here in the Galaxy Y section of XDA Forum.
Here is how it started my treasure chase.
First of all: why the need to set as home page a different page than the number one?
Look at my Home screens here.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
[][][]
Credits:
- Lockscreen logo and poligonal wallpaper from Hyperion GM9 ROM
- Planet view wallpaper from Aurora v1 - Sense ROM
- Custom lockscreen from myself (as I want to keep the framework system files odexed and so I didn't want to follow or use any mod that rely on modification of odexed system files)
As you can see I have three pages, the one in the center is the "home page", on the left of it I have my less used "multimedia" and "fun" apps, and on the right I have the "system tools" collection page.
By stock default the "home page" is the number 1, that is where the wallpaper left side is displayed.
So from home page swiping to the left I get the the icons from page 2 scrolling to the left as well as the underneath wallpaper that, actually advance of 1/3 of its total length.
But if from "page 1" I swipe right to reach my games folder in page 3, the icons will scroll moving to the right direction, but the wallpaper will scroll in the opposite direction (from right to left) and THAT'S what makes me feel awkward and I decided to find a way to fix it.
So the way was as simple as to set as "home page" the page number 2, instead of the stock default number one.
1st idea: find a "way" or a setting provided by the the stock launcher user interface.
By pinching the screen or touching "edit" on the home screen menu the user has the option to manage the home screen as per the number of pages and their relative order.
I hoped there was a (maybe "hidden") way to set one of the pages as the "home", but I wasn't able to find it; actually there isn't.
By the many readings I've learnt that in TouchWizard launcher v4 the option is there; there's a "home icon" at the top of each page thumbnail and by taping on it the page is then set as the default.
But that's not the case of my Galaxy Y smartphone that carry the stock TouchWizlauncher v.3 so... dead end.
2nd idea: use a CSC feature
While experimenting with my Galaxy Y I already had the chance, few months ago, to discover the existence of the /system/CSC folder and the XML files there inside, which make it possible many system customizations but that it's almost impossible to find good and complete documentation about.
Here is what I found by myself
[HOW TO] Customizing your phone via CSC (wallpaper gallery, data toggle)
and here is a related thread that I've discovered some time later after I publish my own.
[MOD] Custom CSC Codes (for All Stock Based SGS3 TMobile JB 4.1.1 ROM's)
In that thread (post #2) I found a reference to the XML tag that can be used to set the default home screen page. Here it is:
Code:
<CscFeature_Launcher_DefaultPageNumber>1</CscFeature_Launcher_DefaultPageNumber>
That's supposed to be declared inside the feature.xml file
On my stock Android I haven't found any sample of feature.xml so I downloaded and tried the one supplied by ktmdave7 on his thread but it didn't work.
I've then read (here) that file others.xml might have the same function as feature.xml, I added the tag to the others.xml file but that didn't work too.
I thought that maybe my csc xml where missing some relevant headers so I tried to find a working feature.xml made for Galaxy Y.
I found this thread here Enable Hidden CSC Features on rooted SGY and I thought I had finally found the final solution... but I was wrong
The thread main post, in fact, doesn't provide any valid link to a complete feature.xml sample working on Galaxy Y.
But I didn't give up and I somehow managed to find a site where someone shared a Zip file containing the precious feature.xml for Galaxy Y
Missing DATA SWITCH tutorial for GALAXY Y (5360) Users
But the download is only available to registered users so... I registered.
Once I finally downloaded and extracted the Zip file content... surprise! the feature.xml file was kind of empty.
I anyway tried to fill it up with some of the more meaningful headers I've seen around but all the attempts I tried were a failure... dead end
3rd idea: install TouchWiz launcher v4
As internal storage space is my main concern I prefer to keep the system files odexed (so they don't require storage space in /data partition to save the related davilk-cache).
But in some cases I might accept to use a deodexed version of some system file if I really can't find a better alternative (as, for example, my modded SystemUI.apk ).
So, after I had to give up with my previous two ideas, I started to consider to install a TW4 launcher on my Galaxy Y.
By doing some other Google searches I've found a handful of blog article, forum posts providing TouchWiz v4/4.5 even 5! for Galaxy Y... a site like this one
TOUCH WIZ 5.0 HACK FOR GALAXY Y
Yeah... but where's the link to download the apk or the CWM installer?
Seems that all the download link were broken, probably removed by the file host service admin for violation of license rights.
Well... to make a long story little less long, I managed to find and download four of this TouchWiz 4 for Galaxy Y.
TouchWiz4-v2-deodexed.zip, TouchWiz4-2-JW5-odexed.zip, TW4Launcher.apk, TW4 Launcher.zip, TW+Launcher+4+5+android.apk, Lava_Theme.zip, ToucWizUX-1.3-5x5.zip.
All Zip files were CWM installer... none of them working on my Galaxy Y, stock ROM, kernel White, CWM 5.0.2.6.
They all failed to install with Status 0 error... they failed at the mount command line.
Well... I'm not so easy to give up, am I?
So, I reworked the installers (extract the files, edit the updater-script file, make) and tried one by one.
None of them worked, not even one... the apk just failed to install (I think because of incompatible lib files) and the installation via CWM just got me to a long series of boot crash or freeze.
Another... dead end.
4th idea: reverse engineering the stock TouchWiz30Launcher.apk and hardcoding the default home screen page
Ok, this is where I never wanted to go; i'm not a professional programmer/developer, I am just someone who doesn't like to give up; but, hey! this is something too big.
I was really close to give up, but I was thinking... there must be somewhere in the launcher where the default page is declared... could it be so difficult to find it... let's try.
So I deodexed TouchWiz30Launcher.apk, and decompiled and started to give a look at the smali folder to see if anything to start with.
In the folder containing 183 smali files, one catched my attention... Workspace.smali
The name sound primising
I opened it and just at the beginning, (line 50 of 9453) I found something interesting:
Code:
.field private mDefaultScreen:I
That's the declaring of a variable that will contain a value related to the default screen... isn't it?
I then searched the code for the 1st reference of that variable and what I found is this:
Code:
.line 264
.local v0, a:Landroid/content/res/TypedArray;
const-string v1, "ro.csc.homescreen.defaultscreen"
invoke-static {v1, v2}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
move-result v1
iput v1, p0, Lcom/sec/android/app/twlauncher/Workspace;->mDefaultScreen:I
Yes, there it is!
The value of mDefaultScreen is read from ro.csc.homescreen.defaultscreen!
And ro.csc.homescreen.defaultscreen is, obviously a setting that is read from build.prop file.
THE (HAPPY ) END
Well, now I can proudly say that, thanks to this thread, unlike before, holders of Galaxy Y will have easy life to find the answer if they look for a way to change their default home screen page.
42 millions results and this thread is no. 1! (actually since the day after posting)

Categories

Resources