***Informative Links*** - Read before clicking "New Thread" - G1 Android Development

***Informative Threads***​Post your question / issue / success story / etc. in the appropriate threads instead of starting a new thread!
Do NOT post a new thread to ask a QUESTION!!!
If your post has a question mark in it, you most likely need to post your thread in the Q&A Section
Please follow xda-developers forum rules and be courteous to all members.
Common sense goes a long way -- if in doubt check out All~G1's pointers on Dev Forum Etiquette
​
[Build Indexes] - Don't ask which build is best -- choose for yourself based on the features you desire!
androidspin.com
SimonNWalker & a group of Android Community members are maintaining a site which showcases the feature sets of the latest and greatest android builds ("roms" if you prefer). Check here to see "which is best" and try them out for yourself. The site is also ripe with news about Android development and more. XDA Thread
Google Docs Build Spreadsheet - View and edit build info - Google Docs Build Spreadsheet
[Guides/Tutorials/Info]
HTC Dream overview and useful information - Wiki article
Highly recommended for beginners.
In the beginning... There was ROOT
Lots of good definitions, history, and an excellent overview of most things going on here.
SPLs for DREA100 & DREA110 (Orig, Eng, Hard)
Contains information and downloads for SPLs (Secondary Program Loader) for the Dream. A modded SPL is instrumental in restoring from backup, preventing a brick, applying builds designed for foreign markets, etc.
Nandroid v2.0 - Full NAND backup and restore tool
In-depth discussion of your best friend whilst modding your android device. A good Nandroid backup regimen will pay dividends to keep you up and running.
Basic adb/root commands for noobs
Using ADB and terminal commands for your Android phone.
Surviving a Data Wipe / Update (Reduces Force Closes, too!)
Save (most of) your data while switching between builds (wipes are not your enemy!!)
Cyanogen's recovery partition
Amon_Ra's Recovery Partition
Modded recovery and boot images
SDSPLIT repartition your SDcard on phone (w/o a PC) - NOW handles > 2G FAT!!!
An easy way to re-partition your SD card without a PC.
LucidREM's Latest JF mod scripts
The swiss army knife of build customization
Auto-lucid script by tehseano
Let's fix that SPL Pay attention too post 3
Report in here if your phone is unresponsive after applying the 1.33.2005 SPL released by Haykuro. If you can get into Recovery or the SPL bootloader screen (three skateboarding androids), this is not you.
ROM guide for HTC Dream
T-Mobile G1 User Guides/Manuals
HTC Dream Wiki
"Brick" Thread or Technical Think Tank for Bricked G1's
If your phone is stuck at your splash screen (most likely a big white "G1")...if you you think something is broken...if you otherwise think you have a brick, post here instead of starting a new thread and any online members will do everything they can to help you out. (Reading as much as possible of these threads before posting will give you lots of insight as well!!)
Benchmark your build (apps thread)
[HOW TO]
STOCK-2-CYANOGEN / Root, Recovery, Radio, Rom / Partition SD / FAQ
How To Partition SD Card With Ubuntu For Dummies
Partition sdcard w/parted,goto ext3/4 & install rom from adb. no liveCD req'd
UNROOT, get phone to STOCK firmware
Reverting back to stock firmware.
New and improved Apps to SD(more stable, more powerful, etc)
The latest tutorial on how to get apps to SD.
Convert and mount ext2 sd partition ( /system/sd ) to ext3
Tools and instructions to add journaling to your ext sd card partition (apps2sd, etc). trust me, journaling is a good thing!
Register the G1 without a sim or data plan
Increase Max Volume -- Automated, no reboot needed
ADB for Dummies Supported Operating Systems Drivers and SDK
Get Home Auto Rotate on JFv1.51
Unpack, Edit, and Repack Boot Images
Create and edit "recovery" and "boot" .img files -- this thread is not for splash images.
Custom SPLASH Image
Replace that G1 splash logo that displays when your device turns on.
Alternative way to creating a SPLASH image
View Man Pages in terminal / adb shell
Mount SD card in recovery via adb
Use ash as your login shell
[MOD]user configurable userinit.sh V0.1.4.1 for CM
config file for setting up compcache, tweaks, etc. at boot
[How to] mount SD card in recovery.
Ported Hero Programs:
HTC Camera
HTC Music
***Developer Links***
Developers - Instead of maintaining a list of builds, I've changed this list to include links to your publications (blog, twitter, main release thread, etc.) let me know when / if you want these modified or if any should be added -- I'm sure I've missed some of you!
​
JesusFreke's Blog
Haykuro's Blog
TheDudeOfLife's google code page
Cyanogen's Twitter
TwistedUmbrella's Twitter
justanothercrowd's twitter
Stericson's twitter
For links / info on particular builds, check out the AndroidSpin or the Google Docs Build Spreadsheet
This index will be updated as needed.
Please keep comments on topic!

-Thread Stuck-
Other stickies un-stuck.
Please do not post in this thread unless you have a suggestion on how to improve it. Off topic and dealt with requests will be deleted without warning.​
Oh, and thanks alapapa.
Enjoy
Dave

An improvement
The Threads should be in catagories.
Such as:
[How To]
1
2
3
[Guides/Tuts]
1
2
3
[Info]
1
2
3
and so on with different catagories.
something like that would be helpful to this post to quickly find relevent topics.
Thanks for reading.

here is a pretty sweet guide to android OS development, hopefully someone will find it useful
http://pdk.android.com/online-pdk/guide/index.html

I just thought I would whip up a quick informational post here regarding people saying "this does not work", or "this app FCs", etc. Posting something that just says "this is not working" tells us absolutely nothing. We need more information, and that is why God (Google) invented adb and logcat.
I am going to assume that to get to this point, you at least have ADB configured correctly. If not, do it. You can find detailed instructions here: http://forum.xda-developers.com/showthread.php?t=532719.
Once you have that set up and configured correctly, you can begin to post more informative posts in regards to something not working.
'logcat' is your best friend. Do not be afraid to use it. All you need to do is run 'adb logcat' from your command prompt. If ever I am at my desk, I have my phone plugged in and logcat running to see what is going on in the background. Normally, you will just see the standard items such as resource allocation, email queries, and things relating to applications you have running.
At the beginning of each line in logcat, you will see I/, D/, W/, or E/. They designate what type of message it is.
I: Information
D: Debug
W: Warning
E: Error
When an application crashes, you will see a lot of D/ and E/ lines, with some W/ thrown in for good measure. That is the information that is needed to help diagnose the problem, and hopefully create a fix for it.
Here is an example of a helpful logcat that should be posted when you say "it no workie":
Code:
I/ActivityManager( 277): Starting activity: Intent { act=android.intent.action.
MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.androi
d.apps.googlevoice/.SplashActivity }
I/ActivityManager( 277): Starting activity: Intent { cmp=com.google.android.app
s.googlevoice/.LoginActivity (has extras) }
W/ResourceType( 441): No package identifier when getting name for resource numb
er 0x00000000
E/JavaBinder( 441): *** Uncaught remote exception! (Exceptions are not yet sup
ported across processes.)
E/JavaBinder( 441): android.content.res.Resources$NotFoundException: String res
ource ID #0x0
E/JavaBinder( 441): at android.content.res.Resources.getText(Resources.java:
200)
E/JavaBinder( 441): at android.content.res.Resources.getString(Resources.jav
a:253)
E/JavaBinder( 441): at android.content.Context.getString(Context.java:149)
E/JavaBinder( 441): at com.google.android.googleapps.GoogleLoginService$Acco
untAuthenticatorImpl.getAuthTokenLabel(GoogleLoginService.java:586)
E/JavaBinder( 441): at android.accounts.AbstractAccountAuthenticator$Transpo
rt.getAuthTokenLabel(AbstractAccountAuthenticator.java:155)
E/JavaBinder( 441): at android.accounts.IAccountAuthenticator$Stub.onTransac
t(IAccountAuthenticator.java:123)
E/JavaBinder( 441): at android.os.Binder.execTransact(Binder.java:287)
E/JavaBinder( 441): at dalvik.system.NativeStart.run(Native Method)
I/ActivityManager( 277): Displayed activity com.google.android.apps.googlevoice
/.LoginActivity: 158 ms (total 158 ms)
I/DumpStateReceiver( 277): Added state dump to 1 crashes
D/dalvikvm( 894): GC freed 365 objects / 24000 bytes in 132ms
That information may not provide every piece of information we need, but it gives a good starting point as to where to begin to look.
EDIT: If this needs to be put into another location or shouldn't be posted to begin with, feel free to move/delete it.

Custom thread
Threads should be in a bulleted format indicating first the subject which is to be discussed. Under it lies the sub bullets in which gives information to the subject as well as the problem to be solved. Facts should be stated then the resolution would come last. Just like solving a simple problem.
theblogpostwriters.com

Related

Matsunichi/Innocomm 'Griffin' M6001 (aka Le Pan TC970) ICS/CM9 development thread

I am no longer working on this project (see the 3/15 update below).
However cas_xp is already working on porting ICS/CM9 to the LePan TC970.
The XDA thread with all his work is here: http://forum.xda-developers.com/showthread.php?t=1483954
(if anyone has a link to the thread specific to CM9 for the TC970, please let me know and I'll update the link above).
================================================================================
This thread is about gathering and sharing info about the hardware, firmware, Linux kernel and modules for the Mitsunichi/Innocom 'Griffin' M6001 tablet, aka Le Pan TC970 in order to be able to port ICS/CM9 to it, if possible.
I'd like to keep this thread about 'low-level' hardware/kernel, i.e. please do not post questions about rooting this tablet (it has already been done, see here: http://forum.xda-developers.com/showthread.php?t=1353951) or about problems with specific applications.
Since there are so many awesome developments in this thread, I decided to just put the interesting news and links here and move the historical info in the second post below.
Franco
================================================================================
Update 3/15/2012
Last Sunday flying back home they had me check-in with the regular luggage my bag with the LePan 970 and when I turned it back on at home that night, it had a bunch of stripes of dead pixels on the screen; it is pretty much unusable now.
Also my wife gave me a new different tablet (which already runs ICS) for my birthday yesterday, so at this point I won't be working on the LePan TC970 anymore.
I just saw that the great cas_xp is already working and making good progress on a version of CM9/ICS for the LePan TC970 (see here http://forum.xda-developers.com/showthread.php?t=1483954 and here https://github.com/cas-xp/device_lepan_griffin) and I wish the best of luck in this project.
I had really fun working on this tablet with all the people here (chinabull, cas_xp, and everyone else of course) and I am already working on the new one.
See you later,
Franco
================================================================================
Update 2/20/2012
I was finally able to compile all of CM9/ICS with specific files for the griffin/TC970 (no ROM yet).
All the details, how to get the files, and compile it on your PC are in the 'how-to' post ( http://forum.xda-developers.com/showpost.php?p=22007753&postcount=113).
Please do try to compile it yourself, but don't try to run those files on your tablet.
================================================================================
Update 2/7/2012
Big news!
cas_xp has released a beta version of Gingerbread/CM7 for the griffin/TC970. The thread with all the information is here: http://forum.xda-developers.com/showthread.php?t=1483954
Awesome job cas_xp!!!
================================================================================
Update 1/30/2012
I tried to put together an initial attempt of an 'how-to' docoment about trying to build CM9/ICS for the griffin/TC970 tablet (movie spoiler: no, I can't build/run ICS yet).
The link to the post is here: http://forum.xda-developers.com/showpost.php?p=22007753&postcount=113
I also created a github repository with the device specific code and configuration files to port CM9/ICS to this tablet (it is all in the post).
Comments, contributions to the code and conf files in the repo are most welcome!
================================================================================
Update 1/27/2012
cas_xp was able to get Gingerbread (CM7) running on the first time! (http://forum.xda-developers.com/showpost.php?p=21888312&postcount=93)!!!
Congratulations to cas_xp for this big success!
================================================================================
Update 1/22/2012
I finally found the time to write the Innocomm firmware 'packer' (and a newer version of 'unpacker'), so we can create our own firmwares for the TC970/griffin.
Since I thought it is better if I keep this post just for the progress updates for this this thread, I just put the descriptions on what 'unpacker 'and 'packer' do and how to use them here: http://forum.xda-developers.com/showpost.php?p=21707308&postcount=80.
Sometime I'll also clean up this post a little bit (and put all the historical information in the second post).
================================================================================
Update 1/19/2012
chinabull has created a working ClockworkMod Recovery for the LePan TC970/griffin; his post with all the instructions is here: http://forum.xda-developers.com/showpost.php?p=21563628&postcount=44.
Please read his whole post wuth all the instructions; please not that this is still a work in progress and that there are risks with your tablet involved with this installation; you may want to read all the posts after chinabull's to have an idea of the possible risks and workarounds.
Again my hat off to chinabull for this great achivement!
================================================================================
Update 18/1/2012
More great news!
chinabull figured out a way to replace Innocomm recovery with an already existing ClockworkMod, sign the firmware with this new version and install it on his tablet.
This means that we should now the able to build our own firmwares for the TC970/griffin.
Many thanks to chinabull for his awesome achievement!
================================================================================
You can find all the other information in the 'historical' log below.
This post is just to keep an archive of all the historical information about porting ICS/CM9 to the griffin/TC970 tablet.
Most of the information here has been superseded by the progress made more recently (see post #1), but I thought it would be useful to have it around, just in case.
Franco
================================================================================
Update 1/16/2012
Great news!
With chinabull's help, I found out how to generate the 20 bytes SHA1 checksum for trhe images contained in the firmware.
It is the SHA1 checksum of the image + the 'cafeefac' trailer + the length of the image (including the 'cafeefac' trailer).
I updated the C program 'unpacker.c' to also compute and check the SHA1 checksum.
The program can be compiled with the following command:
gcc -O -Wall -o unpacker unpacker.c -lz -lcrypto
We still haven't found out how to generate the 20 byte SHA1 checksum for the whole firmware, but I think we are very close now.
I'll also start writing the 'packer' because I think we'll have all the pieces in place very soon.
Many thanks to chinabull again for all his help.
Franco
================================================================================
Update 1/15/2012
What chinabull found is the CRC32-like checksum for the header of the firmware and for each of the images.
As he pointed out in the thread there is still a 20 bytes (160 bits) signature/checksum that we haven't figured out.
I updated the 'unpacker' code attached to this thread with the header CRC checksum stuff that chinabull found out.
The still unknown 160 bits field is displayed as 'signature/checksum' if you run the'unpacker'; if you figure out how to generate it from each image content, please let us know, since this is the last thing we need to know to be able to create ourown firmware images.
Franco
================================================================================
Update 1/13/2012
Very good news!
Chinabull figured out the algorithm used by Innocom to sign/checksum the images and the firmware!
This means that it should be possible to create our own firmware images (possibly with CWM recovery) and start replacing parts of the firmware on the TC970/griffin.
Congratulations to chinabull!
Franco
================================================================================
Update 1/8/12
First of all, thanks to the many who posted useful information about the hardware in this tablet and thanks for the comments (btw, negative critiques do not upset me, so don't worry about them, as long as they don't violate this forums policies).
I thought that in order to boot any alternative ROM or firmware it would be useful to find out how locked down Innocomm has made this tablet.
Since the CPU is an OMAP3630 and the Wifi is a WL1271 and they are the same on the Nook Color tablet and since we know that the TC970 can boot off the SD card using the same type of MLO x-loader and bootloader used by the Nook Color, I downloaded the Nook Color 'Monster Bootpack' SD card bootable images from here: http://code.google.com/p/monster-rootpack/downloads/list. They have a couple of 2GB SD card images there.
I tried both of them and in both cases I had the 'bad firmware image' screen, which seems to indicate that the Innocomm recovery boot checks for 'something' (beyond what a normal OMAP3630 does) in order to boot an MLO x-loader from the SD card.
At this point I thought I would try to discover the full format of the 'griffin.ifw' file, in order to be able to create our own ROM images.
I was able to decode a few more fields in the firmware (the memory load address and a few other value) and I have updated the attached 'unpacker.c' accordingly.
Unfortunately a couple of values are still unknown:
- one is a 28 byte (224 bits) field in the header of each image in the firmware - I strongly suspect it is some sort of checksum (224 bits is the length of a SHA224 checksum), but I haven't been able to find out how to generate that value (I tried doing SHA224 checksums of the image,the image+header, and other combinations, but without any luck). If someone here can find how to generate it, big reward!
- the second one is a 24 byte (192 bits) field in the header of the whole firmware - it is probably some other checksum/signature, but I haven't found out any kind of 192 bit signature to make sense of it, so big reward here too if you can figure out what it is.
Both values are printed out by this version of 'unpacker', so you can play around with it and let me know if you find anything.
Finally, I saw from the FCC schematics that the TC970 presents the OMAP3630 UART3/serial port on the 30 pin connector and I saw that one guy ('chinabull') in the TC970 rooting thread was able to connect to it and obtain a shell in recovery mode. My next step is going to be buying the $15 'podbreakout' from sparkfun Electronics (among others) http://www.sparkfun.com/products/8295 (I am not good with the soldering iron; if you are good and have patience, you may want to try with the $4 iPod connector from the same site) and connect to pins 17, 18, and the ground to have a serial connection and be able to see the actual messages when I try to boot with a different MLO x-loader (should be also useful to 'de-brick' the TC970, since I only have this tablet).
I'll let you know how it goes.
Franco
================================================================================
This thread is about gathering and sharing info about the hardware, firmware, Linux kernel and modules for the Mitsunichi/Innocom 'Griffin' M6001 tablet, aka Le Pan TC970 in order to be able to port ICS/CM9 to it, if possible.
I'd like to keep this thread about 'low-level' hardware/kernel, i.e. please do not post questions about rooting this tablet (it has already been done, see here: http://forum.xda-developers.com/showthread.php?t=1353951) or about problems with specific applications.
Below is what I found so far.
- Hardware
According to the application with the FCC, these are the most interesting components:
- Name: griffin
- Model: 6001
- Manifacturer: Innocomm
- Processor: TI OMAP3630 ES1.2
- LCD: LP097X02-SLA3 (transmitter: TI SN75LVDS83B)
- Power regulator: TI TWL5030
- Front facing camera: 2M pixel fixed focus CM8188-A200SF-E
- g-Sensor: BMA150
- e-Compass: YAS529-PZ
- light sensor: EPL5804
- gas gauge: OZ8805
- Wireless/Bluetooth/FM: TI WL1271-YFV
- GPS: GSD-4t
- Firmware:
Le Pan has apparentely two versions of its latest firmware, V4431 and V4431-2. My analysis below is based on the one with MD5 checksum f9cabf696f08f1c3791d0a4ec14876db.
I wrote the attached C program to extract all the 'images' (files) from the firmware.
The program can be compiled with the following command:
gcc -O -Wall -o unpacker unpacker.c -lz
(all these commands should work on Linux - Fedora 64 bit; you may have to change them to run them on a different version of Linux/OS).
The firmware is composed of the following nine 'images':
- recovery ('.cpio.gz' archive - it can be opened with the command: gzip -dc recovery | cpio -idm)
- linux (this is the actual Linux kernel; see more about it below)
- iload (same as the first stage 'MLO' x-loader binary in the firmware installation disk)
- iboot (same as the second stage 'iboot.ism' loader in the firmware installation disk)
- splash (probably a bitmap image for the splash screen)
- chargesplash (probably a bitmap image for the splash screen when charging)
- bootifw_logo (probably a bitmap image with the company logo to be displayed at boot time)
- ramdisk (.cpio.gz' archive - it can be opened with the command: gzip -dc ramdisk | cpio -idm)
- system (a YAFFS2 filesystem - it can be opened with the 'unyaffs' program - available here: http://code.google.com/p/unyaffs/downloads/list)
The griffin board is based on the TI OMAP3630 ARM CPU, which is the same used by the very popular BeagleBoard (http://beagleboard.org/). Most of the information available for the BeagleBoard apply to griffin, included the functions of the files MLO, iload, iboot (see here: http://omappedia.org/wiki/Bootloader_Project - OMAPpedia is definitely a good starting point here).
- Kernel and drivers:
The firmware file 'linux' is the actual Linux ARM kernel; it has some code at the beginning to uncompress it and the rest is a 'gzip' compressed file.
The actual uncompressed kernel can be extracted with the command:
dd if=linux bs=12878 skip=1 | gunzip -dc > kernel
I then ran 'strings -td -a kernel' and it looks like all the drivers are compiled into this kernel (also confirmed by the very few '.ko' files contained in 'system').
The 'strings' command shows the following lines toward the beginning:
183356 twl5030
183392 griffin-i2c-touch
183428 bma150
183464 yas529
183500 OZ8805
183536 epl5800-ls
183572 hynix253
183608 griffin-ha2608-tk
I think these are the drivers which we need to come up in order to be able to compile ICS/CM9 for this tablet.
Here is what I found about them:
- 'twl5030' is the power regulator for the OMAP board and it is already supported by Linux
- 'griffin-i2c-touch' is the capacitive touch screen (see more about it below)
- 'bma150' is the accelerometer and it is already supported by Linux
- 'yas529' is the magnetometer and it is already supported by Linux
- 'oz8805' is the gas gauge - I didn't find much about it
- 'epl5800-ls' is the light sensor - I didn't find much about it
- 'hynix253' is the 2M pixel camera - I didn't find much about it
- 'griffin-ha2608-tk' is the touch key - I found some code about it here http://topic.csdn.net/u/20110810/09/1a96d532-c517-4771-8bbe-d2dd4c980b4e.html
I started looking at the touch screen first, since it is probably the most critical component in this list (and the one that took some work to get to work correctly on the CM7 for the HP Touchpad).
The 'bootinfo.txt' log file posted on the TC970 rooting thread shows the following kernel message lines for the TS:
input: griffin-i2c-touch as /devices/virtual/input/input7
griffin-i2c-touch 2-0055: registered with irq (313)
Goodix TouchScreen Version:GT801NI_1R02_13T
griffin-i2c-touch 2-0055: Create proc entry success!
Goodix debug sysfs create success!
griffin-i2c-touch 2-0055: Start touchscreen griffin-i2c-touch in interrupt mode
which show that the TS is a Goodix GT801.
Search for Goodix Linux drivers, I found the following page (in Chinese) http://blog.csdn.net/baiduluckyboy/article/details/6616533. It looks like it contains the source code for the Linux driver for the TS and it looks like the driver is under the GPL license. Unfortunately the source code refers to a couple of include files ('goodix_touch.h' and 'goodix_queue.h') that I was not able to find anywhere. The guy who posted that source code might have them, I did not try to contact him. Also the 'goodix_touch.ko' kernel drivers out there refer to a source file 'goodix_touch_1024n.c' that I was not able to find either.
Interestingly enough, the schematics posted on the FCC site do not mention any Goodix chip at all (at least I wasn't able to find it there).
This is what I found so far; I'll add more updates as I find them.
I would also appreciate very much if anyone could post information about the source code for the drivers (or even developer's guides, SDKs, datasheets) for the touch screen (most important), the light sensor, the camera, the GPS, etc
Thanks,
Franco
If you want the kernel source, contact the manufacturer, as the Linux kernel is licenced under GPL and they need to release source!
From my fingers to your eyez
just in case 2
Best of luck!!!!
DerKoch
Sent from my SGH-I897 using XDA App
Good luck.
Appreciate the work to gather the info together, OP. Glad another soul fights for our shiny toy
Having a forum would help putting such info in stickies. Keep voting!
Vote +1 Le Pan forum here
As for source code... anyone threatening legal action yet? j/k ...
Dude, problem? Calm down, I think this is the best thread with all the infos right now.
10chars...
$30 US to the first person with a working CM7 (or CM9) custom ROM on the Le Pan, via Paypal!
gfinockio said:
$30 US to the first person with a working CM7 (or CM9) custom ROM on the Le Pan, via Paypal!
Click to expand...
Click to collapse
I'll give $50
Sent from my TC970 (Wi-Fi) using XDA Premium App
Thx OP, nice... Keep up the good work guys!
So, correct me if I am wrong. In theory the first step is to recreate a 2.2 'custom' kernel replace the existing one, repackage, and try to flash it and see if it works, right?
Worst case (assume the boot loader is not messed up), it should be able to flash back to the official ROM image, right?
(or I should say, first test is to replace the boot screen in ROM image to test repackage and see if it works... Yes I am aware you can change the boot logo in the filesystem afterwards but that's not the point)
I do plan to set up a build environment over the holiday, but I hope those alreay have experience can have a head start!
---------- Post added at 06:33 AM ---------- Previous post was at 06:02 AM ----------
OZ8805 Gas Gauge seems to be an obsolete product from O2Micro. However from some old document (http://www.docin.com/p-97287653.html or http://www.scribd.com/doc/61448457/o2m-Int-Power-Brochure) it shows the pin out which looks like I2C interface (SCL/SDA)
Hynix253 Camera:
Bit and piece of info
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/t/135743.aspx
And looks like it is widely available in China for use in cell phone camera, however can't fins much specs other than a few photos. It is made by 冠普科技. http://detail.china.alibaba.com/buyer/offerdetail/891985423.html
ePL580x Light sensor:
according to this page http://www.computex.biz/elan/default.aspx?pagetype=ProductDetail&pdt_id=38766&cid=561 it is made by ELAN Microelectronics Corp. http://www.emc.com.tw But I can't seems to find the product on their website
Digging continues...
I was able to find this website with
more on the tablet. I tried to email them for more information but idk if it sent to them. Maybe someone else can try on a PC, only have my phone for now....
Edit: forgot the Website. http://211.72.69.29/en/product5802.html
So here it is
Sent from my i777 high in the sky
colbynmeghan said:
I was able to find this website with
more on the tablet. I tried to email them for more information but idk if it sent to them. Maybe someone else can try on a PC, only have my phone for now....
Sent from my i777 high in the sky
Click to expand...
Click to collapse
what is the website?
There is a new firmware file on the horizon for the Le Pan TC 970. Not sure if that's of any importance to you...
gfinockio said:
There is a new firmware file on the horizon for the Le Pan TC 970. Not sure if that's of any importance to you...
Click to expand...
Click to collapse
Source?
Op, is there anything community members can do to help?
sockbot said:
Source?
Op, is there anything community members can do to help?
Click to expand...
Click to collapse
A member of le pan support is a member of the le pan group and asked a few members to test out the firmware. It should be released publicly soon.
Sent from my SPH-D710 using Tapatalk
Let us know if theres anything that can be done to help. Would love to see some CM9 port on this thing. Thanks again for the hard work. Keep it up.
Any info on significant changes, I'm pretty happy with the current firmware....
esunday said:
Any info on significant changes, I'm pretty happy with the current firmware....
Click to expand...
Click to collapse
There is a discussion on the new firmware here: http://forum.xda-developers.com/group.php?do=discuss&discussionid=1446&pp=10
It looks like it is mostly stability fixes but it is still a 2.2 firmware.
This thread is about getting a custom 2.3+ firmware on the TC 970 which I want so my apps behave as tablet apps instead of large phone apps. Ever notice how sometimes you see an app screenshot in landscape mode having two panels for navigation and content but when you actually download it it only shows the content? Its because the tablet can only act as a huge phone in 2.2. Need 2.3 and ideally 4.0 in order to have proper tablet behaviour.

[GUIDE/HOW-TO] Beginner's "Getting Started" Guide :: Root, Recovery, Roms etc

[GUIDE/HOW-TO] Beginner's "Getting Started" Guide :: Root, Recovery, Roms etc
Update: Links are dead, mediafire decided to pull them without any notice. However, all important files can be found on my DevHost Account
This guide is made to help newbies get started on the basic customizations they can do to their Galaxy Fit, and with minimum possible risk of bricking it. Plus, recent update will help users to move on from being android newbies to experienced users.
Before you think of posting as ‘copied’, I want to inform you that more than 90% of the guide has been typed by me, using my own experiences with my Galaxy Fit, and has not been simply copy-pasted from anywhere.
Note: Even though care is taken to help you minimize risk of bricking your phone,
no one, except yourself, is responsible for any damage that happens to your phone.
Also, doing most of the modifications below WILL void your warranty.
Do not quote the entire post!
Quote only the part where you are facing problems...
If you completely quote the posts by me, I will not help, since I can safely assume that you are not following instructions as stated.
And do NOT pm me asking help, with regards to this thread...I will not help you there!
If you have questions/problems, ask here...I'll try my best to help you here!
Topics covered in this guide:
Most stuff related to Rooting
Backing up data using Titanium Backup Pro
Installing Stock Roms
Installing Custom Recovery
Installing Custom Roms (Continued in second post)
Creating and Deleting Sd-card Partition
Setting up and using Link2sd
Installing apk’s through “Root Explorer” method
Nandroid Backups (Continued in third post)
Overclocking
Bricked Galaxy Fit
Bootloops (Continued in fourth post)
How to reclaim warranty?
Battery Care
Android Debugging Bridge (In fifth post)
Logcats (In sixth post)
Pre-requisites:
Before you proceed, you need to have the following things ready with you:
Samsung Galaxy Fit S5670 (obviously)
Windows PC (Xp, Vista, 7)
Usb Data Cable
Samsung Usb Drivers installed on your computer (Download)
Usb Debugging Enabled (Enable it from Settings> Applications> Development> Usb Debugging)
A minimum of 50% Battery left for use
Knowledge on how to use a windows pc (optional, but recommended )
A calm mind, and plenty of patience.
Also, remember this:
a.To reboot into “recovery mode”, first shutdown your phone completely, then press and hold power + home button and wait for phone to switch on.
b.To reboot into “download mode”, first shutdown your phone completely, then press and hold power + home + volume down button and wait till phone switches on (you’ll get a yellow triangle with an android inside it, with the word “Downloading” written under it)
Edit: Since a proper "route" to installing custom roms isn't very clear, I'll just add this:-
Let's say you have a stock froyo rom, and want to try some custom rom, then
[OPTIONAL] Root Froyo, if you wish.
Then, you update to Gingerbread.
[OPTIONAL] Root GB, if you wish.
Install ClockworkMod Recovery
Then finally, install the custom rom of your choice.
Hope the "path" is now clearer ​
1. Rooting
Q) What is “rooting”? What are its advantages and disadvantages?
A) “Rooting” your device means obtaining “superuser” rights and permissions to your Android’s software. With these elevated user privileges, you gain the ability to load custom software (ROM’s), install custom themes, increase performance, increase battery life, and the ability to install software that would otherwise cost extra money (ex: Wi-Fi tethering). Rooting is essentially “hacking” your Android device.
For more info, refer Source
Though, one thing worth mentioning, YOU DO NOT NEED TO BE ROOTED IN ORDER TO INSTALL ANY CUSTOM ROM OR RECOVERY, it is optional but recommended…
People usually root beforehand as it helps them to backup their data…and you won't be able to root after you install a custom recovery, since the scripts are made only for stock Samsung recovery​
Q) Okay, now how do I root my Galaxy Fit?
A)
If you are running Froyo (android version 2.2.1), then:
Download SuperOneClick (Source Link)
Make sure your phone is connected to the computer via USB, AND your SD card is NOT mounted.
Run the app
When SuperOneClick launches, you’ll see several large buttons at the top of the screen. Make sure that the debugger can “see” it (activity will start logging).
Click “Root” in SuperOneClick.
If you are running Gingerbread (android version 2.3.x), then:
Download this update.zip file (Link)
Place it on the root of sd card (root here meaning “home directory” of your micro-sd card, i.e. the first folder which you get when you open any file explorer)
Make sure the file’s name is “update.zip” (without the “”)
Now reboot into recovery mode
Select the option: “Apply update.zip”
Wait for it to complete, and you are done!
After you have successfully rooted, you will find an app named “Superuser” in your application menu. If not, you can download it from Play Store.
Also, it is advisable to update the app (as well as the superuser binaries, option present in-app) to the latest version available.​
Q) How do I unroot my g-fit?
A) There might be various reasons why you would want to unroot your fit (the main one being to recover/reclaim your warranty)
For unrooting (in Froyo), just run SuperOneClick again, and click option “Unroot”.
For unrooting (in GB), you have a few ways: one is a sure-shot way (install/flash stock rom), another works for some and doesn’t work for some (update.zip), and one more is false un-root.
1.Sure-shot way: This method will work all the time, i.e. you will be able to unroot successfully with this method. All you’ve got to do is flash a stock rom, and you will be back to factory settings (and even get your warranty back)
2.Update.zip method: This method worked for some users, and didn’t work for some. In this, you just need to download this file, rename it to “update.zip” and install it the same way as you did to root, i.e. reboot into recovery and apply update.zip
3.False un-root: This isn’t actually unrooting, but is a little trick I used to get my warranty back.
1. First download and install Audio Manager aka Hide It Pro
2. Then use it to hide all your root-related apps (like superuser, titanium backup etc.), and done!
Note: The false un-root method isn’t actually un-rooting, as anyone with enough android knowledge will be able to tell that you still retain root access. The method only hides the notifications that you receive from superuser, when any app is requesting root access. Exercise caution when using this method, as all apps can have root access, and you wouldn’t even come to know about it.​
2. Backing up data using Titanium Backup Pro
Since you don’t need to have root access in order to install any custom recovery/rom, hence one of the major reason left to root is to backup your phone settings and data.
You can find plenty of apps on Play Store which can backup AND restore your data, but barely any other app can do it better than Titanium Backup. The free version also does quite a lot of stuff, but in this guide I’ll be explaining how to use the pro-version (v4.8.2), including how to do one-click backup as well as restore, and scheduling backups to run at a pre-defined time automatically.
First, install Titanium Backup Pro
Then, run the app.
(I recommend going through the app settings so that you can tweak it according to your preference)
Now, you can either backup apps (and their data) one-by-one or just backup all of them at once. In order to backup all of them at once, run the app, press menu button > batch > choose option “backup all apps + system data”, and then wait for the backup process to get over.
To restore backups after a data reset, run the app, press menu button > batch > choose option “restore missing app + all system data”.
Note #1: Restore all system data only if you are doing a data wipe. If you have flashed a new ROM altogether, then do not restore system data, only restore missing apps + data, else you will get force closes.
Note #2: Titanium backup automatically store its preferences/settings on your sd-card, and auto restores them after a wipe, so you do not need to bother about it again.
To set-up schedules, run the app, and then go to the “schedules” pane/tab, and then select the ones which were pre-set, or create new ones according to your need.
Titanium Backup has other uses as well (which you can find on your own), but the main important ones have been covered.
Note #3: Use some other app to backup and restore your contacts/call logs/messages...
I use GO Backup or sometimes, MyPhoneExplorer...​
3. Installing Stock Roms
First, download the stock rom of your choice from samfirmware.com
Then download beni.ops and Odin Multidownloader
Remove the sim card and memory card of your phone, and put it in download mode
Next, run Odin, and connect your phone to your windows computer. Odin should respond as detected. Then, select “Ops” as beni.ops. (Doing this would disable all other fields except “One Package”)
After this, select your desired stock rom in “One Package”.
Do not alter any other option other than those mentioned, let them remain as they are.
Make sure that the color of “COM PORT MAPPING” is yellow, and then click “Start”.
Odin will start giving different responses, and the timer in Odin would also start…now all you have to do is wait till Odin completes flashing (You will get a message “Pass”, usually within 10 minutes)
Note: Do not disconnect you phone while the process is on, and till you get that “Pass” message.
After this, it is optional but advised that you reboot into recovery mode and wipe data, otherwise you *may* face bootloops.​
4. Installing Custom Recovery
Q) I already have stock Samsung recovery. Why do I need a different recovery for?
A) The stock Samsung recovery has a very limited functionality, while other recoveries offer various other functions, and support other (better) filesystems also.
Also, to install any custom rom, you will need a custom recovery.
The most popular and commonly used recovery for Galaxy Fit is ClockworkMod Recovery v5 built by tj_style.
This recovery works with all custom roms, but it does not support backing up and restoring (Nandroid Backups) of stock roms (since samsung stock roms are of rfs filesystem).
Hence, you CAN install this recovery on stock roms, but you won’t be able to take (and restore) nandroid backups of stock roms.
However, pratyush.creed has modified this cwm5 to support backups of rfs (i.e. stock roms), you can get this from here
But for this guide, we will stick to the popular, tried and tested, cwm5 by tj_styles​
Your phone needs to be on gingerbread, as this recovery doesn’t work on Froyo.
Note: Even though rooting is not required for installing CWM, it is recommended to do so before, since you can root only from stock recovery, and CWM replaces the stock Samsung recovery.
To install this recovery:
Download the recovery file from the above link.
Also, download beni.ops and Odin Multidownloader
(Beni.ops and Odin are the same files used, so you don’t need to download them again)
Next, run Odin, and connect your phone to your windows computer. Odin should respond as detected. Then, select “Ops” as beni.ops.
Select the recovery file under “One Package”.
Do not alter any other option other than those mentioned, let them remain as they are.
Click “Start”.
Wait till odin completes flashing (might take upto 10 minutes)
Now, after your device has rebooted, restart into recovery mode to confirm that you have successfully installed ClockworkMod Recovery (CWM).
5. Installing Custom Roms
Though Samsung has possibly tried its best to create the best stock roms (compared to other manufacturers), it still has a lot of potential. Custom roms are made to achieve this potential, helping you get more returns from your Fit.​
Q) How to install custom roms?
A) Before proceeding, you will need to have any custom recovery installed, since the stock Samsung recovery cannot be used here. Preferably, use CWM5 by tj_style (the one explained above). Also, remember that your phone’s data (not the one stored on sd-card) will be erased/reset, so be sure to make a backup.
Now, download the custom rom of your choice from the Development Section of our sub-forum.
Optional: Check if the zip file you have downloaded is proper (i.e. not corrupt).
To do this, simply use WinZip (Windows) or other similar program to extract the file on your desktop. If the extraction has completed without any errors, then the file is proper, but if you get any errors while extracting, then the file is corrupt and you will have to re-download it.
Now, copy the file onto your sd-card.
Reboot into recovery mode.
Select “wipe data / reset”.
After this completes, select “wipe cache partition”.
After this, select “advanced”>”wipe dalvik cache”.
Now that you have wiped all data, select “install zip from sd” from the main recovery menu, then “choose zip from sdcard”.
[*] Optional, but recommended: Select “mounts and storage”>”format /system”.
(Important, if you are installing any variation of CyanogenMod 7 (cm7) for the first time, or are moving from a stock based custom rom to a cm based custom rom...else you will be stuck on the "android" text screen)
Now select the custom rom that you had placed on your card, and wait for it to install.
Optional: When the install completes, wipe data, cache and dalvik cache again (steps 5,6,7)
Select “reboot system now”, and be prepared to wait till the phone restarts. (Note: first boot may take upto 10 minutes, so do not panic)
Enjoy your new rom!!!
If you want to get back to your stock rom, you will have to flash the stock rom using Odin.
Also, all custom roms are pre-rooted, so you don’t have to bother with rooting again (though you might have to update superuser and its binaries)​
For your first custom ROM, I would suggest sticking to stock based custom roms...
Some sim cards aren't compatible for CM7 and CM9/10 (cm = short for CyanogenMod)...we don't know the cause and effect relationship between them, as of yet...
So, if your CM doesn't boot into the homescreen, try removing your sim card...
If it then boots up without any additional steps required, then unfortunately, you belong to the group of people who can't use CM7 with their current SIM...
The only workaround available are:
Use phone without SIM (unrealistic, since it wouldn't do the primary functions of a phone then)
Change your SIM card
Use stock based custom rom's, and forgo CM entirely
6. Creating and Deleting Sd-card Partition
Partitioning sd-card is basically virtually “dividing” your sd card into parts, so that you can use each one separately for different purposes.
So, in easy words, you can virtually increase your phone’s internal memory and ram (both of which are unsatisfactorily low in our device)
However, there is a disadvantage to partitioning, mainly a slightly slowed phone. This “slowdown” is caused mostly if you:
Have a low-speed (technical word = “class”) sd card
Have moved dalvik cache to sd partition that you have created
Have attempted to use a swap partition
But a lot of people don’t mind this slowdown a lot, since a partition allows them to have access to more apps.
Also, you will lose hot-swapability, i.e. you won’t be able to remove your card from your phone, will the phone is running.​
Before you proceed, you SHOULD backup all of your data on your card since it will be deleted, as the card will be formatted during the process.​
Q) How to create a sd partition?
A) You will need
• A good micro sd-card, with a class greater than 4
(the class is usually printed on the card itself, it’s the number inside the letter ‘C’)
• A rooted galaxy fit running android 2.3.x (preferably on a stock rom), with ClockworkMod recovery
Steps:
Backup all your data.
Reboot into CWM.
Go under “advanced”>”partition sd card”.
Select the size of your second partition (On my first try, I made a partition of 1024MB but found it too big with a lot of space unused, so I deleted the partition and made a new one of 512MB)
This is your choice, choose one depending on the total size of your card, the no. of apps/games you’ll have etc.
After selecting that, select swap size as 0MB (This one also is your choice, but I’ll explain why to take 0MB, and not anything else)
Now wait till the process is completed, and reboot.
As far as I know, CWM v5 makes a partition of EXT3 format, by default.
Q) Why to select swap size as 0MB?
A) Swap partition is made with the objective of utilizing it as VIRTUAL RAM. Now this may sound as a good thing, but in reality the ram in our fit is way faster than the average class 10 micro sd-card. So, instead of speeding up your system, it will slow down your system horribly after a certain point.
So, in short, you shouldn’t be using a swap partition, hence there is no point in creating one if you are not utilizing it.
You are still free to create a swap partition, but I shall not be providing support for that in this thread.​
Q) What if I want to delete all my partitions and get back my sd card the way it was?
A) There are a few ways to delete your partitions and reset your card, and I’ll explain the easiest one.
Backup the data on your card.
Make sure your card is in the phone’s card slot, and that your phone is booted/running.
Go into Settings>Storage, then select option “Unmount sd card”
When the card is unmounted, you will be able to select the option “Format sd card” (which you previously couldn’t)
Select the option and wait for it to complete.
If you want to delete the ext partition, I recommend doing it after a clean install of a stock rom. Else, make sure to move all your apps from the ext partition to your phone.
7. Setting up and using Link2sd
Now that you have created an ext partition, you need to make use of it (duh).
There are a lot of ways and scripts to transfer apps from your internal memory to the sd ext partition, but the most consistent method I found was Link2sd.
This method works across all roms (rooted stock and custom, both) that I’ve tried, even on all variations of CyanogenMod7 (CM7) as well as on ICS CM9 and JB CM10, and is very easy to setup and use.
However, if a custom rom already has DarkTremor's a2sd (a2sdgui app will be present) or any similar script, then DO NOT configure them.
For example: Creeds v3 has a2sdgui, and if i want to use Link2sd, then after flashing Creeds, I SHOULD NOT run a2sdgui, and directly install (and configure) Link2sd...if you run/configure a2sdgui, then it will clash with the working of Link2sd.
Similarly, if any custom rom has any memory hack already implemented, then you cannot use Link2sd...​
Steps to setup Link2sd:
Download Link2sd from Play Store (it’s a free app).
After it gets installed, run it, and allow root access.
You will get a message to select the format of your sd partition, select “ext3”.
Link2sd will then automatically create mount scripts that it requires to work, and will then tell you to reboot your phone.
Do a proper reboot, and not a ‘hot reboot’.
After rebooting, open up Link2sd, press menu then select “settings”.
Select/check the options “automatically link newly installed applications to sd”, “auto link notification”, “relink lib files at boot” (and “fast scroll”, if you want).
For “install location” option, select “internal”.
Then go to “auto link settings” and select/check all the three options (you can skip/ unselect “link dalvik-cache file” if you wish)
Done
Now, every new app that you will install will automatically be moved to your sd ext partition.​
Link2sd is also an excellent (and fast loading) app manager, with which you can freeze, uninstall, re-install…though you can move only user apps to sd-ext partition.
Also, there is no point in having your entire phone memory empty, so you probably should unlink the dex (dalvik cache) of your apps. I usually link only the apk and lib files, and leave the dex files unlinked and on the phone storage, so as to avoid any sluggishness in operation., though if your phone memory still fills up, you can link the dex of your rarely-used apps, and leave the dex of important and frequently used apps on the phone storage.​
Suppose a custom rom has s2e/app2sd pre-implemented, then after a fresh install, FREEZE the app (rather than uninstall), and then install Link2sd...
Also, if you get error "mount script not created", then choose partition as ext4 (rather than ext3 mentioned below), even though your partition might be ext3...(don't know why this happens with some roms )
If on some ROM, you get “device/resource busy”, then you need to format your SD-EXT partition from CWM (should be under “mounts and storage”)
[DO NOT confuse this with deleting and re-creating a partition]
8. Installing apk’s through root explorer method.
At times, some of your apk files won’t get installed in the normal way, so you can use this approach to install them. This method is coomonly referred to as "root explorer method".
For this, you will need:
•A rooted phone
•Root Explorer or any other file manager.
Since root explorer isn’t a free app, you can use this free File Manager (my personal preference).
If you are unable to uninstall a newer version of any app, then first uninstall the old version, and then use this method.
Steps:
Get the apk file of the app that you want to install.
Now launch Root Explorer
On the top left side, it will be written as “Mount as r/w”, click that, and allow root access. (basically mount system as read and write, if you are using other file managers)
Now place the apk file at either /data/app or /system/app (if you want it as a system file)
Now set appropriate permissions (For /data/app, the default permissions are rwx rwx rwx and for /system/app, the default permissions are rw- r-- r--)
Reboot your phone, and then check your app drawer, you will find your app installed.
12. Bootloops:
If you have flashed any custom rom/recovery/hack/kernel/update.zip, and unfortunately, have got stuck in a bootloop (i.e. you cannot reach the app launcher as the phone keeps rebooting again and again), then before asking for help, do try wiping data, cache, and dalvik cache from recovery mode...
This should stop bootloops (in lots of cases)...​
13. How to reclaim warranty?
Let's just say you need your warranty back for some reason...but have done any of the above stuff (which voids your warranty)...
Then all you got to do is flash any stock rom (preferably, of your region), and you will have your warranty back
(This, ofcourse, assumes that you had warranty, in the first place)​
14. Battery care
A lot of people have said that their battery has swollen. If this is the case, then this could be dangerous for YOUR HEALTH.
If this happens, you SHOULD replace your battery.​
Q) Why would the battery swell up?
A) My phone's battery looks safe enough, so I do not know the perfect cause. But from the users who complained about this, I did notice that most of them just leave their phones plugged in, unattended, for more than 4-5 hours at end (Usually, they just leave it to charge overnight)
So, if you do this on a regular basis, then watch out!​
Q) How do I know if its swollen?
A) To know if its swollen, just see if the battery surface is smooth or not, from all the sides. If there is any swelling, you will notice it.
Also, if you get REALLY POOR battery life, (only 3-4 on single full charge, with light usage), then this could be an indication that you have battery problems. [Just to confirm, ask other fellow users how much usage they get on that rom and baseband, since this could happen due to ROM and kernel also.]​
Q) What do I do if it's swollen?
A) There is no other option but to replace the battery with a new one. I STRONGLY ADVICE to buy them from your local Samsung Service Center. Avoid online sellers, or other 3rd party batteries, as they may not be proper.​
Q) Any precautions that can be taken?
A) Yup, DO NOT LEAVE YOUR PHONE TO CHARGE FOR LONG PERIODS, ALL THE TIME.
That's what has been deduced from the people who have complained.
Take Care!!​
9. Nandroid Backups
Q) What are Nandroid Backups?
A) Nandroid Backups are like an exact copy image of your phone’s state, saved on your sd card. It stores all your apps, data, settings, sd-ext etc. of the phone (obviously, the state when you took the backup). Nandroid Backups are a very convenient way to restore your data after something has gone wrong (or want to change between roms), and their size can be anywhere starting from 150mb+.
If you want to test some stuff from the development section (like different mods/hacks/scripts), it is advisable to make a Nandroid Backup before you proceed...​
Q) How to make Nandroid Backups?
A) Perquisites to make a nandroid backup:
•ClockworkMod Recovery (any version) on your galaxy fit.
•Plenty of free space on your sd card (this depends on how many apps you have, my backups usually average around 450-500 MB)
Steps:
Do a clean reboot into ClockworkMod Recovery (i.e. shutdown properly, then reboot into recovery mode)
Go to “backup and restore”>”backup”
Wait for the process to get completed, and you are done!
The backup that you just made has been saved to your sd-card, in a folder named clockworkmod (complete location is /mnt/sdcard/clockworkmod/backup).
Restoring:
Now, suppose, while flashing any rom, you are stuck in a never-ending bootloop, and you have wiped everything (i.e. data, cache, dalvik cache), and just want to get back the way it was, then just follow these steps to restore:
Boot into CWM
Wipe data, cache, and dalvik cache (optional, but recommended).
Go to “backup and restore”>”restore”, and then select your backup.
Wait for it to complete (time taken depends on the size of your backup, which in turn depends on the number of apps that you had installed), and reboot
You will find that you are now back to last state before you did that backup, with all your apps, settings etc. the way it was left.
If you keep more than one nandroid backup, you may find it confusing to remember which one is what…
So you can rename them in the following way:
Suppose the default name of my backup of a cm7 rom is 2012-03-29.14.04.59 , then I can rename it as cm72012-03-29.14.04.59
In this way, if you ever get a md5 mismatch error while restoring, then you can simply edit it back to the way it was.
However, if you still get an md5 mismatch error, then you can use this method suggested by fellow xda member, arhant. Though if the backup wasn’t created by you (i.e. you took it from someone else), then exercise caution while doing this.​
10. Overclocking
Q) What is overclocking?
A) Overclocking refers to running your processor above the “safe” limit set by Samsung (or the manufacturer, in general). This limit is usually set so that the battery life is extended, less overheating problems occur as well as minimum possible damage is done to the processor in the long run.​
Why to overclock:
Helps make Fit more “usable”, i.e. makes launcher smooth, games a little less laggy etc.
Why not to overclock (Most of this happens only if you don’t overclock properly):
Poor battery life
Abnormal heating of the phone
Increased instability
Q) How to overclock (oc) Galaxy Fit?
A) In order to overclock Galaxy Fit, you need to have a custom kernel, as the stock kernel doesn’t support overclocking, as well as root access.
Note: Stock roms can be overclocked! They just need another kernel, the in-built kernel cannot be overclocked.
• If you want to overclock on stock (at your own risk), you can flash any kernel from this via cwm (so, obviously you need cwm, stock recovery won’t do).
• Most custom roms have oc kernel in-built, so you usually don’t need to flash anything extra.
After you have a custom overclock-able kernel, you just need to install either No-frills CPU Control or SetCPU for Root Users (No-frills is free ) or any other such app, run them, and select the desired max frequency, governor, and i/o scheduler. (Don’t set the max frequency above 800+ mhz, unless you know what you are doing)
You have to use trial-and-error to find out the combination of governor, i/o scheduler, and max frequency, which suits your need…and you will get different results on different kernels, roms and basebands, so keep experimenting.​
11. Bricked phone
Q) What do you mean by a "bricked" phone??
A) A "bricked" phone is a phone which cannot start normally, AND cannot be rebooted into both, the recovery mode as well as the download mode...thus, effectively, it becomes just a paperweight, i.e. a brick
It is more of a "state" your phone can go into, if you do things wrong...​
If your phone can enter recovery mode OR download mode, then it is not bricked!
You can try and fix it yourself!​
If your phone can enter recovery mode, (and assuming you have a custom recovery installed), then you simply have to flash any custom rom to get your phone back in working condition.
If your phone can enter download mode, then you can install any stock rom (via odin), to get back your phone in working condition.
Note: These solutions are general in nature, i.e. they will work for the majority of cases, but may not work for some.​
HOWEVER, IF YOUR PHONE IS BRICKED,
Then there is nothing much that we can do...only the samsng service center will be able to repair it (they replace the motherboard).​
15. Android Debugging Bridge (ADB)
To put it simply, adb is two different applications - one running on your computer (Windows, Linux or Mac) and one running on your phone (which you don’t have to bother about). When your phone is connected, and USB debugging is enabled, you can issue commands and communicate with the phone using your computer screen and keyboard.
Your Android phone uses a modified Linux kernel and tools as a base. This means that quite a few Linux commands can be sent via the adb server (the one running on your computer) to the adb client (the one running on your phone) and they will be executed. – Android Central​Q) How do I setup ADB on my Windows PC?
A) With the help of my friend wilfredcool007, I have made a really simple method to use adb and also provided some tools for hassle-free logcats. This method is portable in nature (you do not have to install any untrusted application), does not need large downloads, neither the full Android SDK installation. You will just have to download a small compressed file, which is all that you require.
Thank You Wilfred!
Make sure you have the device drivers installed beforehand. If you have been following this guide since the beginning, you will have it on your computer. If not, just simply refer the beginning of this thread.
Steps:
Download this file: ADB & Logcat Tools.zip
Extract the .zip file to any suitable location, wherever you wish. I extracted it on to C:\Android Debugging Bridge just so that it’s easy to remember where it is.
Now, once you’ve extracted the zip, you will find 7 files in it [of which the 3 files named as “Logcat xxxxxx”, and “dmesg”, will be used in the later part of this guide for making logcats].
To launch ADB, just hold the “Shift” key and right click on a blank area in the folder, and in the drop down menu which follows, select the option “Open Command Window Here”.
And you’re done! Now you can use any of the adb commands that you wish! It really is this simple!
Some common ADB commands are:
Code:
adb devices – list all connected devices
adb push <local> <remote> – copy file/dir to device
adb pull <remote> [<local>] – copy file/dir from device
adb sync [ <directory> ] – copy host->device only if changed
adb shell – run remote shell interactively
adb shell <command> – run remote shell command
adb emu <command> – run emulator console command
adb logcat [ <filter-spec> ] – View device log
adb forward <local> <remote> – forward socket connections forward specs are one of: tcp:<port>
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)
adb jdwp – list PIDs of processes hosting a JDWP transport
adb install [-l] [-r] [-s] <file> – push this package file to the device and install it
adb uninstall [-k] <package> – remove this app package from the device (‘-k’ means keep the data and cache directories)
adb bugreport – return all information from the device that should be included in a bug report.
adb help – show this help message
adb version – show version num
adb wait-for-device – block until device is online
adb start-server – ensure that there is a server running
adb kill-server – kill the server if it is running
adb get-state – prints: offline | bootloader | device
adb get-serialno – prints: <serial-number>
adb status-window – continuously print device status for a specified device
adb remount – remounts the /system partition on the device read-write
adb reboot [bootloader|recovery] – reboots the device, optionally into the bootloader or recovery program
adb reboot-bootloader – reboots the device into the bootloader
adb root – restarts the adbd daemon with root permissions
adb usb – restarts the adbd daemon listening on USB
More information regarding some common ones will come soon.
You can also refer Google’s Official Page too.​
16. Logcats
A lot of time, you'll see developers asking for logcat. Viewing a logcat is usually the best, and in some cases, the only way to diagnose a problem.
You can do it two ways:
Within the device, through apps like aLogcat or Catlog or any other application that is capable of logging (This is self explanatory, all you got to do is download and run the app, and the app will do the work. Do check out the options to tweak out the settings and other stuff. I shall not be providing help for these in this thread.)
With ADB (explained further)
Thanks to the zip provided in the previous step, it’s really easy to do so via adb.
Steps:
If you haven’t downloaded it already, do download the ADB & Logcat Tools.zip (it’s the same file mentioned above) and extract it to a suitable location.
You have two options now.
You can either run adb as explained above and use the command
Code:
adb logcat >logcat.txt
There will be no further activity on the screen, but the logging will start. Recreate the problem that you wanted, and when you need to stop the logcat, just press “Ctrl” + “C” [Hold Ctrl and press C], and then press “Y” and “Enter” key to stop logging.
You will notice that a file named logcat.txt has appeared, and when you open the file in Notepad, you shall see its contents.
Example:
Code:
--------- beginning of /dev/log/system
I/ActivityManager( 1019): Starting: Intent { flg=0x14000000 cmp=com.whatsapp/.Conversation (has extras) } from pid 18867
D/VoldCmdListener( 891): volume shared /mnt/sdcard ums W/ActivityManager( 1019): Activity pause timeout for HistoryRecord{405690f0 com.whatsapp/.Conversation}
D/VoldCmdListener( 891): volume shared /mnt/sdcard ums
I/ActivityManager( 1019): Starting: Intent { flg=0x14000000 cmp=com.whatsapp/.Conversation (has extras) } from pid 18867
W/InputManagerService( 1019): Starting input on non-focused client [email protected] (uid=10080 pid=18867)
D/VoldCmdListener( 891): volume shared /mnt/sdcard ums
D/VoldCmdListener( 891): volume shared /mnt/sdcard ums
D/MusicControls( 1279): Updating Music Controls Visibility
D/MusicControls( 1279): Music is not active
W/InputManagerService( 1019): Window already focused, ignoring focus gain of: [email protected]
D/MusicControls( 1279): Updating Music Controls Visibility
D/MusicControls( 1279): Music is not active
W/InputManagerService( 1019): Window already focused, ignoring focus gain of: [email protected]
D/StatusBarService( 1279): DISABLE_CLOCK: yes
D/StatusBarService( 1279): DISABLE_NAVIGATION: yes
W/ProcessStats( 1019): Skipping unknown process pid 26719
I/ActivityManager( 1019): Start proc mobi.mgeek.TunnyBrowser:DolphinNotification for service mobi.mgeek.TunnyBrowser/com.dolphin.browser.message.C2DMService: pid=26767 uid=10119 gids={3003, 1015, 1007}
I/ActivityManager( 1019): Process com.google.android.talk (pid 18915) has died.
I/ActivityManager( 1019): Process mobi.mgeek.TunnyBrowser:DolphinNotification (pid 26767) has died.
W/ProcessStats( 1019): Skipping unknown process pid 27439
I/TelephonyRegistry( 1019): notifyDataConnection: state=0 isDataConnectivityPossible=false reason=null interfaceName=null networkType=2
I/TelephonyRegistry( 1019): notifyDataConnection: state=1 isDataConnectivityPossible=true reason=null interfaceName=null networkType=2
I/ActivityManager( 1019): Start proc com.google.android.apps.uploader for broadcast com.google.android.apps.uploader/.ConnectivityBroadcastReceiver: pid=27556 uid=10005 gids={3003}
Logcats get longer the longer they run. So it is advisable that you run the logcat and immediately proceed to recreate the problem.
Also, paste the resulting logcat on sites like Pastebin and share the link to the dev!​
Now, you must be wondering what the rest of the files in the Zip were for…
Well, those files are pre-configured commands for logcats to run. All that has to be done is double click the .bat files, and logging shall start. To stop logging, as stated above, press CTRL+C, then Y and ENTER.
Remember: Do delete/rename/move the output logcat file before creating a new logcat with the following files.
Files:
Logcat 1 (Long and Detailed).bat : Normal Logcat command. Same result as the example given above.
Logcat 2 (Short and Errors only).bat : Shorter Logcat command. Omits out Verbose, Debug and Info. Displays/Filters only Warning, Error And Fatal. Useful when logcat duration is very long, as this displays only the error and fault messages. Example:
Code:
--------- beginning of /dev/log/system
11-13 12:13:40.099 1019 1019 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 12:20:34.359 1019 1360 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 12:22:31.069 1019 1045 W ActivityManager: Activity pause timeout for HistoryRecord{4085daf8 com.quoord.tapatalkxdapre.activity/.forum.ForumNavigationActivity}
11-13 12:23:42.009 1019 1402 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 12:28:36.779 1019 28921 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 12:31:20.980 1019 1402 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 12:58:05.899 1019 1057 W ProcessStats: Skipping unknown process pid 29887
11-13 13:06:11.630 1019 1045 W ActivityManager: Activity pause timeout for HistoryRecord{405d5100 com.android.phone/.InCallScreen}
11-13 13:06:14.400 1019 26640 W WindowManager: Layout repeat skipped after too many iterations
11-13 13:06:14.400 1019 26640 W WindowManager: Layout repeat skipped after too many iterations
11-13 13:06:14.400 1019 26640 W WindowManager: Layout repeat skipped after too many iterations
11-13 13:06:14.400 1019 26640 W WindowManager: Animation repeat aborted after too many iterations
11-13 13:06:14.420 1019 1211 W WindowManager: Layout repeat skipped after too many iterations
11-13 13:06:14.750 1019 1211 W WindowManager: Animation repeat aborted after too many iterations
11-13 13:06:21.069 1019 1045 W ActivityManager: Activity idle timeout for HistoryRecord{405d5100 com.android.phone/.InCallScreen}
11-13 13:17:41.240 1019 28924 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:02:27.259 1019 1328 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:06:00.389 1019 1330 W ActivityManager: Scheduling restart of crashed service com.whatsapp/.messaging.MessageService in 5000ms
11-13 14:06:03.459 1019 28922 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:09:21.689 1019 21101 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:09:23.329 1019 1330 W ActivityManager: Scheduling restart of crashed service com.jim2/.UpdateService in 5000ms
11-13 14:09:35.339 1019 1045 W ActivityManager: Launch timeout has expired, giving up wake lock!
11-13 14:09:35.399 1019 1057 W ActivityManager: Process ProcessRecord{406b4718 32036:com.imgurforandroid/10108} failed to attach
11-13 14:09:41.639 1019 1045 W ActivityManager: Activity pause timeout for HistoryRecord{4050c488 com.imgurforandroid/.activity.LaunchUploadUi}
11-13 14:09:41.679 1019 1034 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:10:23.679 1019 1033 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:11:00.629 1019 28924 W ActivityManager: startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { cmp=com.imgurforandroid/.activity.ImageDetails bnds=[0,138][240,189] (has extras) }
11-13 14:11:25.639 1019 1033 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:11:58.979 1019 1045 W ActivityManager: Activity pause timeout for HistoryRecord{408690f0 com.quoord.tapatalkxdapre.activity/.forum.ForumNavigationActivity}
11-13 14:12:26.129 1019 1360 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:13:20.449 1019 1402 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:13:53.159 1019 28922 W ActivityManager: Duplicate finish request for HistoryRecord{407186d8 com.quoord.tapatalkxdapre.activity/.forum.ForumNavigationActivity}
11-13 14:36:20.180 1019 1034 W InputManagerService: Window already focused, ignoring focus gain of: com.andr[email protected]
11-13 14:36:23.110 1019 1034 W ActivityManager: Scheduling restart of crashed service com.imgurforandroid/.ImgurUploadService in 5000ms
11-13 14:36:53.479 1019 26640 W InputManagerService: Starting input on non-focused client [email protected] (uid=1001 pid=1304)
11-13 14:36:56.649 1019 1033 W BackupManagerService: dataChanged but no participant pkg='com.android.providers.settings' uid=10092
11-13 14:36:56.799 1019 1328 W BackupManagerService: dataChanged but no participant pkg='com.android.providers.settings' uid=10092
11-13 14:37:58.840 1019 1330 W InputManagerService: Window already focused, ignoring focus gain of: [email protected]
11-13 14:43:51.779 484 509 E ActivityThread: Failed to find provider info for com.opera.branding.BrandingProvider
11-13 14:43:51.779 484 509 E ActivityThread: Failed to find provider info for com.opera.branding.BrandingProvider
11-13 14:43:51.789 484 510 E ActivityThread: Failed to find provider info for com.opera.branding.BrandingProvider
Logcat 3 (Radio related only).bat : Displays only messages related to radio (telephony). Useful whenever your developer asks for a Radio logcat. Example:
Code:
D/RILJ ( 1304): [1876]> QUERY_NETWORK_SELECTION_MODE
D/RILJ ( 1304): Serial: 1875
D/RILJ ( 1304): Error: 0
D/RILJ ( 1304): [1875]< REGISTRATION_STATE {1, 1777, 0000d72a}
D/RILJ ( 1304): Serial: 1876
D/RILJ ( 1304): Error: 0
D/RILJ ( 1304): [1876]< QUERY_NETWORK_SELECTION_MODE {0}
D/GSM ( 1304): Poll ServiceState done: oldSS=[0 home TATA DOCOMO TATA DOCOMO 405039 EDGE CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] newSS=[0 home TATA DOCOMO TATA DOCOMO 405039 EDGE CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] oldGprs=0 newGprs=0 oldType=EDGE newType=EDGE
D/GSM ( 1304): [DataConnection] Stop poll NetStat
D/GSM ( 1304): [DataConnection] Start poll NetStat
D/RILJ ( 1304): [1877]> SCREEN_STATE: false
D/RILJ ( 1304): Serial: 1877
D/RILJ ( 1304): Error: 0
D/RILJ ( 1304): [1877]< SCREEN_STATE
D/GSM ( 1304): [DataConnection] Stop poll NetStat
D/GSM ( 1304): [DataConnection] Start poll NetStat
D/RILJ ( 1304): [1878]> SCREEN_STATE: true
D/RILJ ( 1304): [UNSL]< UNSOL_RESPONSE_NETWORK_STATE_CHANGED
D/RILJ ( 1304): Serial: 1878
D/RILJ ( 1304): Error: 0
D/RILJ ( 1304): [1878]< SCREEN_STATE
D/RILJ ( 1304): [1879]> OPERATOR
D/RILJ ( 1304): [1880]> GPRS_REGISTRATION_STATE
D/RILJ ( 1304): [1881]> REGISTRATION_STATE
D/RILJ ( 1304): Serial: 1879
D/RILJ ( 1304): Error: 0
D/RILJ ( 1304): [1879]< OPERATOR {TATA DOCOMO, TATA DOCOMO, 405039}
D/RILJ ( 1304): [1882]> QUERY_NETWORK_SELECTION_MODE
Dmesg.bat : Prints messages from the kernel, useful as tool for debugging drivers and other kernel code. Use this whenever the developer asks to get a dmesg output. Example:
Code:
# c027ce40 : [HSIL] mdp_suspend_sub(1387) will cancel_delayed_work
<4>[34607.196686] [HSIL] mdp_suspend_sub(1391) will flush_workqueue
<4>[34607.196731] [HSIL] mdp_suspend_sub(1395) will atomic_read
<4>[34607.196773] [HSIL] mdp_suspend_sub(1400) will mdp_pipe_ctrl
<4>[34607.196816] [HSIL] mdp_suspend_sub(1402) after mdp_pipe_ctrl
<6>[34607.196854] # c03d7894 :
<6>[34607.196883] # c03d7894 :
<6>[34607.196909] # c03cb4a0 :
<6>[34607.196939] early_suspend: after calling suspend handlers
<6>[34607.205456] early_suspend: after calling sync_work_queue
<6>[34607.205508] early_suspend: abort label / before spin lock
<6>[34607.205564] early_suspend: unlocked main_wake_lock
<6>[34607.205599] early_suspend: end
<4>[34607.205636] [BACLKIGHT] : 17
<4>[34607.205668] Platform V:17, Find V:1
<4>[34607.205714] LCD Backlight re-init - wakeup time tune:1, lcd:32
<4>[34607.205926] [BACLKIGHT] : 15
<4>[34607.205956] Platform V:15, Find V:1
There you have it! Life made simpler, just double click and you are done!​
Q) What’s the difference between Logcat and Dmesg?
A) Read this for info.​
Hope this guide helped you.
I appreciate feedback and constructive criticism, but please, no “haters”/”trolls”.
Whatever questions/doubts you have regarding this guide, then please post it here itself…I don’t guarantee replying tech support questions via pm .
Do consider clicking on the “thanks” button rather than just posting thanks, and also joining us on our Facebook Group
a.cid said:
...
• If you want to overclock on stock (at your own risk), you can flash any kernel from this via cwm (so, obviously you need cwm, stock recovery won’t do)....
Click to expand...
Click to collapse
Pratyush mentioned in:
http://forum.xda-developers.com/showpost.php?p=24719114&postcount=1387
a cwm for rfs / see download-link, therefore exists in theory the possibility to oc stock-roms.
zcop said:
the first troll here hehe
What is s5670? Can i eat it?
Ok good work for newbie - who messup forum
Click to expand...
Click to collapse
Idk what s is, but 5670 are part of the number series...
You know 1 2 3 4 5 6 7 0
martin_s5670 said:
Pratyush mentioned in:
http://forum.xda-developers.com/showpost.php?p=24719114&postcount=1387
a cwm for rfs / see download-link, therefore exists in theory the possibility to oc stock-roms.
Click to expand...
Click to collapse
Ohhh sorry I totally forgot about that...will update the thread tomorrow from comp...
But I haven't tried it personally :/
And other recoveries (like the touch ones) give errors while flashing a few stuff...
Sent from my g-fit using xda premium
martin_s5670 said:
Pratyush mentioned in:
http://forum.xda-developers.com/showpost.php?p=24719114&postcount=1387
a cwm for rfs / see download-link, therefore exists in theory the possibility to oc stock-roms.
Click to expand...
Click to collapse
Ohhh wait, stock rom can be oc'ed, if you install another custom kernel...
That rfs support is for backups and restore...
The post will be clearer after I'll update it...
Sent from my g-fit using xda premium
Aspire said:
Nice, but the links aren't working.
Click to expand...
Click to collapse
Which ones??
Edit: oh okay, will fix them
Thank you
Sent from my g-fit using xda premium
Aspire said:
Nice, but the links aren't working.
Click to expand...
Click to collapse
Deleting
xn--http-fb7a//
in adress helps!
martin_s5670 said:
Deleting
xn--http-fb7a//
in adress helps!
Click to expand...
Click to collapse
Links updated...
i had typed in this in ms word, and it has messed around with the foramtting...
anyways, if you still find something wrong, do inform me
edit: added pratyush's recovery, as well as updated post to clarify...
a.cid said:
...
edit: added pratyush's recovery, ...
Click to expand...
Click to collapse
Pardon, its not pratyush's recovery, ..its of tj's !, see:
http://forum.xda-developers.com/showpost.php?p=24749890&postcount=1392
martin_s5670 said:
Pardon, its not pratyush's recovery, ..its of tj's !, see:
http://forum.xda-developers.com/showpost.php?p=24749890&postcount=1392
Click to expand...
Click to collapse
I know
The most popular and commonly used recovery for Galaxy Fit is ClockworkMod Recovery v5 built by tj_style.
This recovery works with all custom roms, but it does not support backing up and restoring (Nandroid Backups) of stock roms (since samsung stock roms are of rfs filesystem).
Hence, you CAN install this recovery on stock roms, but you wont be able to take (and restore) nandroid backups of stock roms.
However, pratyush.creed has modified this cwm5 to support backups of rfs (i.e. stock roms), you can get this from here
But for this guide, we will stick to the popular, tried and tested, cwm5 by tj_styles
Click to expand...
Click to collapse
a.cid said:
I know
...
However, pratyush.creed has modified this cwm5 to support backups of rfs
...
Click to expand...
Click to collapse
I said, not prat has modified, its tj's.
first of all I really thank you for this wonderful guide...
btw,the main reason to write this post -
what difference does it make if i select EXT4 instead of EXT3 while partitioning SD card
thnx
yzak58 said:
first of all I really thank you for this wonderful guide...
btw,the main reason to write this post -
what difference does it make if i select EXT4 instead of EXT3 while partitioning SD card
thnx
Click to expand...
Click to collapse
The cwm mentioned in my post doesn't give you the option to select ext3 or ext4
It, by default, partitions it to ext3...
Typed on a small touchscreen
Hey friend.. i m unable to root my mobile...
I have installed "GINGERBREAD.DXKT7 2.3.6"
So please say how can i root this stock rom...
akash6448 said:
Hey friend.. i m unable to root my mobile...
I have installed "GINGERBREAD.DXKT7 2.3.6"
So please say how can i root this stock rom...
Click to expand...
Click to collapse
Can you list the steps you did?
Also check if you have downloaded the update.zip correctly (simply try and extract it on your comp)...
Typed using a small touchscreen

Frequently Asked Questions - HTC EVO Shift 4G (Speedy) [5.26.13]

[SIZE=+3]Frequently Asked Questions[/SIZE]
[SIZE=+2]HTC EVO Shift 4G[/SIZE]​
[SIZE=+1]This a short list of frequently asked questions in this device forum and the answers often given as a response. It should serve as a starting point for gathering knowledge and finding solutions to many common problems. Please only post in this thread with feedback on how to improve this document. Do not post "Thank you" type responses. If you have additional questions or require more help, try to find an existing thread or create your own. Do not use this as a general help thread.[/SIZE]
[SIZE=+1]Q1: How do I root my phone....?[/SIZE]There are many simple ways to root the EVO Shift. Please refer to the ROOTing FAQ for more detail. It is located here.​
[SIZE=+1]Q2: What does S-OFF/S-ON mean....?[/SIZE]On HTC devices, the manufacturers enables a security flag on the Nand memory. When you root your phone, you are only given access over the system, meaning that you can flash custom firmware. However, this NAND-lock prevents you from flashing unsigned images to restricted partitions including, but varying by HTC device, the boot partition (where the kernel and other information is stored), the recovery partition, the radio partition, and sometimes others. So due to this NAND-lock, fully rooting an HTC device typically includes gaining S-OFF on said device in order to have full control over the device, be able to update radios/modems as they come out, and other [usually] essentials.​
[SIZE=+1]Q3: Why does my screen black out whenever I pull out my keyboard....?[/SIZE]Your flex cable is most likely shot. This is the part of the device that connects the keyboard to the screen. Common symptoms including crackling or crunching when sliding out the keyboard and blacking out of the screen when pulling out the keyboard. Replacement flex cables can be found on sites such as EBay or Amazon.​
[SIZE=+1]Q4 What is a logcat and how do I get one....?[/SIZE]TODO​
[SIZE=+1]Q5: What is fastboot/bootloader mode....?[/SIZE]
On some Android devices there is a "fastboot" mode by which custom firmware can be flashed after unlocking the device (root). The bootloader is a part of the boot sequence that provides access to fastboot and recovery mode, as well as the normal system. Note that using most fastboot commands requires a rooted/unlocked device.​
[SIZE=+1]Q6: What is a recovery....?[/SIZE]
A recovery is an OS-like portion of the device that lives on its own partition. This specific design is a product of Android itself that allows updating of the device. When a custom recovery is installed, custom firmware packages (not released by the carrier/manufacturer) can be flashed to the device, as well as other packages. For more information,, please refer to ROOTing FAQ #2​
[SIZE=+1]Q7: Where can I learn to dev....?[/SIZE]
There are MANY good places to get started. In my personal opinion, you should read through the entire xda-university site, as well as searching around on XDA and reading whatever catches your eye. I cannot stress enough how important reading and understanding is. Some other good places to look include the following, in no particular order:
[Lists]Guide Ride-From a Newbie to a Dev, Get all you need here
[ INFO ] Links to Get you Started Working with Android
Note that the above is by no means a complete or full list of resources.​
[SIZE=+1]Q8: What is ADB and how do I use it....?[/SIZE]
ADB is a tool for interfacing with your Android device. It can be incredibly useful for debugging ROMs and fixing soft-bricks.
Please see this thread for everything ADB
FULL ADB GUIDE​
*​
Forum Rules | New Users Guide | XDA Tour | Report Posts​
This FAQ is part of a Recognized Contributor Group Initiative. Please look for a similar FAQ thread when visiting another device forum.
A special thanks to everyone who contributed to the production of this FAQ​
Everyone please post any suggestions for the FAQ you may have, it is greatly appreciated and encouraged!
Someones been busy. Good stuff man :good:

[GUIDE] Proxyme - Android System Access Tool

The purpose of this thread is to provide a guide for users who have Proxyme preloaded in their device's firmware and want to find out how to use it effectively. Ideally, this will be a place to share experiences and ideas to further improve the tool and provide solutions to problems that people may have.
Introduction
Proxyme ( proc-zahym ) represents a system access solution comprised of the following components:
System service - provides access to privileged system environment
SSH daemon - provides secure shell (ssh) and file (scp) access (based on dropbear)
proxyme.apk - user interface module
This solution is offered as a preloaded option in firmware images and consequently cannot (should not) be installed as a regular app, either from the Play Store or being side loaded. The reason for pre-loading stems from the requirements of the system service component to be able to integrate at system level and not be bound by operating restrictions within the Android application and framework platform environment (Zygote and Dalvik sandbox). The Play Store has been enlisted as the primary and preferred source in providing updates to the user interface component; the actual app you will be interacting with.
Proxyme offers the following functionality through its user interface:
Installation/de-installation of the su binary to provide/remove root access
(useful only for other applications which require root level access)
The persistent behaviour of the su binary can be controlled by a one-shot switch
Register/de-register tag-along scripts for su enable and disable actions
(more details on this below)
Control availability and location of busybox toolbox
Start/Stop SSH daemon
Configure listening port for the SSH daemon
Configure user accounts for the SSH daemon
Submit and execute a shell script
SU Binary
The option to enable or disable the su binary switch (on/off) in the user interface is the equivalent of rooting and unrooting the device. When enabled, you are providing root access to apps which require it to perform correctly. Currently, Proxyme does not have built-in support for monitoring and 'policing' the actual access to root.
Auto Root @ Boot
This switch in the Proxyme app allows you to indicate whether the su binary should be installed or removed during a reboot or startup of the device. Setting it to the 'on' position will make the su binary persistent throughout reboot cycles and leave your phone permanently 'rooted'.
Registering Tag-along Scripts
Whenever you enable or disable the su binary with the on/off switch in the user interface, there exists an option to execute a user script just prior to and one unique to each action. This is possible by pre-registering a script for one of or both enable/disable actions. A script can virtually perform anything and is always executed within root context. Note that you must be very cautious about the scripts you are registering and be certain about their intentions, because a rogue script could cause irreparable damage to you device.
Each script has the option to override, and thus block, the intended action (enable or disable) by setting a system property named proxyme.override to anything but blank.
One purpose of having tag-along scripts would be to 'freeze' and 'unfreeze' specific root-shy apps, which do not 'like' rooted systems. This is one area where we can share the experience of pre-coded scripts for certain target apps and I do hope it will be put to good use.
To submit a script file, tap on one of the SU Enable Script or SU Disable Script text elements to start browsing for a file.
Busybox
Busybox is just that, busybox. Options are available to determine one of two hard-configured locations where it can be installed and to enable or disable it.
More to follow later...
SSH Daemon
The SSH daemon is based on dropbear. It has been modified to support logon accounts in Android, which are configured with the following parameters:
username
password
home directory
which shell to use
user ID
group ID
For whatever reasons, you can restrict access by specifying non-root user and group (0:0) IDs. The IDs you can choose from are derived from a system list which was used and known within Android at the moment of booting the device. If you have installed new apps in the meantime and would like to use their newly assigned IDs, then please reboot the phone to update this list.
Executing Shell Scripts
The ability to submit and execute a shell script from the user interface can be considered a convenient and quick way to get some tasks done. Take note however that your scripts are run in a privileged environment under the root account and that there are risks involved. A rogue or insufficiently tested script can cause major problems if/when it makes changes to key system partitions, which are normally mounted read only for obvious reasons.
Most rom images will include a sample de-bloating script,which removes ROM specific branding apps. The script. /sdcard/Proxyme/debloat.sh, shows how this is done and could serve as a base for more extensive clean-up of firmware components, if you so desire.
Operational Notes
Whenever a device boots from a factory reset condition (i.e. after wiping data), there will be no UID/GID list available in the user management screen. The reason for this is that the SuMeD setup process will complete before the app data store, the location where aforementioned list is stored. has been initialised. Restart the device in order to make this list available.
Behind The Scenes
For details regarding how Proxyme's system service components are integrated in a firmware image, please follow this trail...
Device Support
Before taking the next step to flash your phone/device, please be aware of the risks involved with performing such an operation. Prepare the device properly, i.e. sufficient battery charge, and be well informed of the correct flashing procedure(s) for your device's make and model. On Samsung devices, rooting will probably trigger 'custom' flag(s) and consequently render the warranty void. No matter how adventurous you may feel, it is always a bad idea to try to flash a firmware image which is not intended for your device. Having said all that, note that you will be flashing your phone at your own risk. You are solely responsible for anything you do to your phone/device, so make sure you are well informed and well prepared before deciding to flash or install anything on it.
The following list will be updated as soon as new firmware images are prepared for new and old devices.
Samsung Galaxy Note 10.1 2014
SM-P600 - (reference post)
Samsung Galaxy J
SC-02F (Docomo) - (reference thread)
SGH-N075T (Taiwan) - (reference thread)
Samsung Note 3
SM-N9005 - (reference post)
SM-N900A - (reference post - unconfirmed)
Samsung Galaxy S4
SHV-E330K - (reference thread)
SHV-E330L - (reference thread)
SHV-E330S - (reference thread)
SGH-I337 - (reference post - unconfirmed)
SC-04E - (reference post)
Samsung Galaxy Grand 2
SM-G710L - (reference post)
Samsung Galaxy S3
GT-I9300 - (reference post)
SC-03E - (reference thread)
SHV-E210K - (reference thread)
SHV-E210L - (reference thread)
SHV-E210S - (reference post)
SHW-M440S - (reference post)
Samsung Galaxy S2 LTE
SHV-E110S - (reference thread)
Samsung Galaxy S2
SHW-M250K - (reference post)
Planned Changes
built-in control of su access (much like what Superuser currently does)
choice of built-in simple file browser or use intents to initiate external app(s) for browsing and selecting files
...
Proxyme - Behind The Scenes
This section details how Proxyme's system service components are integrated in a firmware image.
If you are not up to speed with how a typical Android system is constructed, then I would like to suggest you at least make yourself familiar with this topic in order to fully understand what to do with the following text.
The system service components are integrated in the /system partition (mount point) in Android. In the case of changing a live system this will require mounting the appropriate partition read/write before applying the updates. If a static firmware image is to be updated, then extract the component which represents the /system partition from the package and apply the updates before re-packing the firmware image.
The following list describes the major system service components:
hijacker - this is a module you need to write, which has the role of initiating the system service in a privileged environment.
hjprepper - this module is started by the hijacker to prepare the environment prior to starting SuMeD
SuMeD - this one is what it's all about. The Proxyme app relies on this daemon to be up and running in order to perform any of its privileged functions
SSHD - the SSH daemon is represented by an updated implementation of dropbear on Android
Hijacker
The hijacker is a program you would normally have to write to replace an existing program in your rom, which is started during the boot process by for example initd. This part of the integration process requires your (creative) input, since you need to analyse the rom you are working on and figure out how and where to position the hijacker module. If you do find an existing module to hijack, make sure to always call that original module from your hijacker once it has managed to execute the hjprepper program. In some roms it suffices to start hjprepper from a shell script, which is run with root access... they exist, you just have to look for them.
This is what your hijacker could look like in C
Code:
#define PROP_HIJACK "proxyme.hijack.system"
#define HIJACKEE "/system/bin/original-program"
#define PREPPER "/system/xbin/hjprepper"
int main( int argc, char *argv[] )
{
char *lArgv[5];
char **lArgList;
int lArgCnt;
pid_t pid;
lArgList = (char **)malloc( sizeof(void *) * (argc + 1) );
for ( lArgCnt = 0; lArgCnt < argc; lArgCnt++ )
{
lArgList[ lArgCnt ] = argv[ lArgCnt ];
}
lArgList[ lArgCnt ] = NULL;
/* Fork parent process */
pid = fork();
if ( pid < 0 )
{
property_set( PROP_HIJACK, (char *)"Hijacker Startup... spawning failed, prep first before xfer" );
system( "/system/xbin/hjprepper" );
execv( HIJACKEE, lArgv );
exit( EXIT_SUCCESS );
}
else if ( pid > 0 )
{
property_set( PROP_HIJACK, (char *)"Hijacker startup... spawned, parent ascends phase 2" );
execv( HIJACKEE, lArgv );
exit( EXIT_SUCCESS );
}
if ( execl(PREPPER, PREPPER, (char *)NULL) < 0 )
{
property_set( PROP_HIJACK, (char *)"Hijacker startup... failed to call prepper" );
}
exit( EXIT_SUCCESS );
}
hjprepper
This program is responsible for setting up an operating environment for the SuMeD daemon. If you have full control over a rom's boot image, then include a call in your init process to start this module once during boot. If not, then use a hijacker program or look for existing and suitable scripts to initiate hjprepper.
hjprepper starts the SuMeD daemon once it completes the setup and configuration procedure.
SuMeD
This bad boy is responsible for the user requested actions through interaction with the Proxyme app.
Prebuilt Packages
To get you started, there are pre-built modules available,which you can download here. Currently, availability is limited to Android 4.3 and 4.4.2 only. The following zip archives are organized in a folder tree structure,which serves as a guide for where to place the modules within the /system path.
4.3 Prebuilts
4.4.2 Prebuilts
Filler 2
Filler 2
Filler 3
Filler 3
Please add support in latest SHV-E110S 4.1.2 rom(s)
Title says/asks it all...
Can You guide build pre-rooted rom by proxyme? Thank you very much.
linhbs said:
Can You guide build pre-rooted rom by proxyme? Thank you very much.
Click to expand...
Click to collapse
Behind The Scenes section has been added to the OP.
Can this method be used to prebuilts S3, S4, Note3 not Korea? Thanks so much.
linhbs said:
Can this method be used to prebuilts S3, S4, Note3 not Korea? Thanks so much.
Click to expand...
Click to collapse
Yes. You need to figure out how to get the SuMeD daemon started and that depends on the rom you want to integrate it in. The Behind The Scenes post highlights what areas to focus on when doing this.
Note that the first post includes 2 firmware images (both Android 4.3 and 4.4.2) for the international Note3 (SM-N9005). It's a no-brainer to copy the files from the appropriate directories to an equivalent and same level version firmware for another region of the same device.
Please add support N900A 4.4.2. Thank you very much.
linhbs said:
Please add support N900A 4.4.2. Thank you very much.
Click to expand...
Click to collapse
Has 4.4.2 been released on that device? If yes, a download link for the official stock firmware will help speed up the process. If not, then we wait or you could send a PM to davidcsv with the 10 or 11 digit s/n and he will monitor and download the latest release as soon as it becomes available...after that your new firmware image will be uploaded within a day.
Link: http://www.androidfilehost.com/?fid=23321874045862490. Thank you for your interest!
linhbs said:
Link: http://www.androidfilehost.com/?fid=23321874045862490. Thank you for your interest!
Click to expand...
Click to collapse
N900AUCECMLG (preloaded with Proxyme) (2014-01-04)
This rom implicitly performs a factory reset, so backup your data before flashing it. Unpack the zip archive and specify the resulting .tar.md5 filename in the PDA/AP section of the latest version of Odin.
Use Proxyme to execute the /sdcard/Proxyme/debloat.sh script to get rid of the k n o x messages.
mega.co.nz
torrent, mirror
Apparently, this firmware image is a pre-release/leaked image and not the final deal. It includes an updated bootloader and related components, meaning that it will not be straightforward to revert back to an older version of the firmware. If you encounter problems with this Proxyme preloaded image, then I'd suggest flashing the image from the original download link.
All feedback is welcome and will be appreciated. Enjoy!
Thank you very much. I ask you to add proxyme in I337 4.4.2 rom. Thank you very much.
Link: http://www.androidfilehost.com/?fid=23329332407566813
linhbs said:
Thank you very much. I ask you to add proxyme in I337 4.4.2 rom. Thank you very much.
Link: http://www.androidfilehost.com/?fid=23329332407566813
Click to expand...
Click to collapse
I337UCUFMLD (preloaded with Proxyme) (2014-01-02)
This rom implicitly performs a factory reset, so backup your data before flashing it. Unpack the zip archive and specify the resulting .tar.md5 filename in the PDA/AP section of the latest version of Odin.
Use Proxyme to execute the /sdcard/Proxyme/debloat.sh script to get rid of the k n o x messages.
mega.co.nz
torrent, mirror
Apparently, this firmware image is also a pre-release/leaked image and not the final deal. It too includes an updated bootloader and related components, meaning that it will not be straightforward to revert back to an older version of the firmware. If you encounter problems with this Proxyme preloaded image, then I'd suggest flashing the image from the original download link. A Google search shows that this image does have a few minor issues, so beware.
All feedback is welcome and will be appreciated. Enjoy!
Thank so much. I find the phone test. Will respond to you.
SC-04E Stock Firmware Proxyme Rooter images
Root Ready Stock Images
(Unfortunately, flashing these ROMs will trigger KNOX)
Kitkat 4.4
SC04EOMUFNI3 (Proxyme) (Build Date 2014-09-19)
This zip archive contains an Odin flashable file. It is not the complete stock image, so you MUST have OMUFNI3 already running on your phone or you will need to download it from the above reference sites, which carry complete stock firmware images, and flash it before continuing with this file. Instructions are included in the zip archive.
uploaded.net
mediafire
torrent, mirror2
I337:
- Before flash rom: I337UCUEMK2 version 4.3
- After flash rom I337UCUFMLD (preloaded with Proxyme) fail.
Good.
linhbs said:
I337:
- Before flash rom: I337UCUEMK2 version 4.3
- After flash rom I337UCUFMLD (preloaded with Proxyme) fail.
Click to expand...
Click to collapse
Please post the complete log from the message box in Odin. One more question, is your phone 16GB or 32GB model?
update: and also try again with newer version of Odin v3.09 instead of v3.07

[LOCKED][DEV-TOOL] FIsH is the hack to boot whatever you want - ON ANY* DEVICE

FIsH a la carte - A porting guide for the FIsH framework.
Proudly introducing Android FIsH: Fluffy Incredible steadfasterX Hijack
{
"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"
}
FIsH: Fluffy Incredible steadfasterX Hijack​
First of all:
All this is for the brain of DEVELOPERS.
Well.. to be more specific: not really for developers but for COMPILERS
For using FIsH You do NOT need to DEVELOP anything - normally - the only thing you should be able to do is COMPILING -> e.g. TWRP.
If you have the knowledge to compile TWRP then FIsH is what you need to bring it on your locked device.
Just follow the menu card in the post #3 "Bring FIsH on the menu card" and your job is done.
If you are a user wanting to have FIsH for your device: FIND A COMPILER (a person who is able to compile TWRP/ROMs/.. for your device!!).
DO NOT ASK IF I CAN PORT FIsH TO YOUR DEVICE!
DO NOT ASK IF I CAN COMPILE [FILL IN WHATEVER YOU WANT] FOR YOU!
-> instead find a person willing to port FIsH plus the ramdisk of your choice (e.g. TWRP) and point him/her here.
When do you feel like a compiler or u want to be one: read on
if not: really still here? I said find a compiler!
Table of content
This whole thing here is damn long.. but that's one of the major difference for the FIsH: I try to explain what I do
For a better handling I splitted the guide into several parts:
This post: Explain me the FIsH (What it is)
Post #2: FIsH bowels (What's inside)
Post #3: Bring FIsH on the menu card (porting FIsH)
Post #4: FIsH cuisine (examples)
Post #5: FIsH hydra (multiboot in FIsH)
Post #6: Chew the FIsH (Copying/License)
Post #6: FIsH mutation history (Changelog)
Post #7: Go FIsHing (enduser installation guide example)
Overview
You can not unlock your bootloader? So now it's all over right?
TWRP and flashing custom ROMs on locked devices is impossible right?
Oh no wait there are hacks (up to KK) which have a workaround for this but I couldn't find anything for LL (sorry if I missed something) and what I found was not easy to port so nothing generic which i could just adapt easily.
Here is where the Android FIsH (refered to just FIsH in this whole doc) steps in
FIsH means: [F]luffy ncredible teadfasterX [H]ijack
FIsH is different from Safestrap or other hijacks because it should be better understood as a kind of framework for any ramdisk image you want to load.
FIsH will not harm the Android boot chain! Means it will not modify /boot, /recovery or aboot partitions. It will just modify /system.
FIsH:
... is NOT MultiROM (see post #5: FIsH hydra)
... is NOT efidroid (see post #5: FIsH hydra)
... is NOT Safestrap
... is NOT TWRP (booting with FIsH is tested and works)
... does NOT root your phone
... does NOT unlock your phone
... is a WORK IN PROGRESS!
... but FIsH could (in theory) "BOOT" any of the above!
U got it? FIsH is the hack to boot whatever you want.
This also means atm it is tested on some devices only and the only FIsHFOOD (ramdisk) FULLY tested and so stated to be working is TWRP.
Nevertheless I'm hard working currently on porting either MultiROM-in-FIsH or efidroid-in-FIsH to bring custom ROMs to locked devices as well (see post #5: FIsH hydra).
What the FIsH is (in short words)
Read about the full details of the implementation of FIsH in the next post (Post #2: FIsH bowels (What's inside)) but to give you a short overview:
FIsH is a boot hijack and wants to be a FRAMEWORK for booting any fishfood (ramdisk) you like.
FIsH is portable to other devices
FIsH gives you all possibilities to make the most of your device by letting you boot whatever you like
FIsH will not provide or contain any ROM or recovery by it's own - THATS YOUR HOLY OWN JOB NOW!
FIsH is the tool -> but building a ROM or recovery is (still) up to you.
These questions may come up in your mind now
Will FIsH void your warranty? Not more or less then rooting your device.
Will FIsH unlock your bootloader? omg NO! read it again!
Is there a risk with FIsH? For example could it soft-brick my device? Well.. absolutely! Safe is the death only. There are always risks especially for untested devices. I do all I can to keep this risk as low as possible and I provided a way to get out of bootloops but again you will get no guarantees here and elsewhere.
Will it work on Android version ICS, KK, LL, MM, N, O, ....? Check the pre-requirements. If you can answer them with yes it should work. If not then not. That easy.
Will I need a recovery partition to use FIsH? No. FIsH ran in RAM only. Even if your device does not have a recovery partition it will work.
Will FIsH work for my device? FIsH is more than just a hack for a special device or model it is a hack for ALL devices of ANY vendor! wtf? yes. Your FISHFOOD is device specific so the question would be better: Will the FISHFOOD (e.g. TWRP) work on my device? The answer is it depends. You need to compile it for your specific device and it should but who knows.
To narrow it a little more down:
you have to met the pre-requirements and there has to be done some things to get a value out of it but those are straight forward for a good compiler/developer like you!
FIsH pre-requirements
Here are the pre-requirements you have to met!
If you can't get them: Close this page and FORGET it (until the day you met those reqs)!
Here are the 2 simple requirements you have to met:
a) root by SuperSU >=v2.76 (greater or equal v2.76)
--> to test this requirement just start the installer of FIsH with --check (see next lines) which will check for all requirements and abort if its not possible
--> for many devices - if not all - this means you HAVE TO downgrade/install LL. It also means that you have to upgrade your SuperSU to this version by e.g. FlashFire if you have a lower version installed!
--> SU by phh is NOT supported => It needs a modified /boot and this would void the boot signing chain!
--> Magisk is NOT supported => It needs a modified /boot and this would void the boot signing chain!
--> I will NOT provide downgrading guides there are plenty of them so search and read.
--> I will NOT provide any guides in rooting your device
--> Before you think about downgrading to LL read about ANTI-ROLLBACK protection some devices and may have! Anti-Rollback means you CAN NOT downgrade - it would HARD-BRICK your device (wtf thinking the vendors who we are?? Is this even legal?!)! Check that before!!
b) you have to be able to disable SELinux in your booted Android
--> You do NOT need to set SELinux permanently to permissive. Just CHECK if you COULD get it MANUALLY. If you can get it OK. If not.. you obviously have not full root access but check the forums maybe there is something you can do about this.
--> I will NOT provide any guides enabling SELinux but some lines later you will see how u can execute the very simple check
--> to test this requirement just start the installer of FIsH with --check (see next lines) which will check for all requirements and abort if its not possible
Those above are hard facts so it may NEVER work with MM. Google has changed the way on how the boot chain will be verified and that means changes in /system will void it from now on.
If MM can get fully rooted somehow/somewhen on your device with SuperSU installed and you are able to disable SELinux the method will work there as well.
If you can not meet ALL of the above 2 requirements lay down and cry.
For the others: calm down and read on!
You can simply test those both requirements by downloading FIsH and execute the installer with the testing parameter:
./install.sh --check
Example output:
############# Checking for busybox
...downloading busybox
--2017-03-24 13:37:44-- https://busybox.net/downloads/binaries/1.26.2-defconfig-multiarch/busybox-armv6l
fishing/busybox 100%[========================>] 1,06M 542KB/s in 2,0s
2017-03-24 13:37:47 (542 KB/s) - »fishing/busybox« saved [1107664/1107664]
Waiting for your device... (you may have to switch to PTP mode on some devices!!)
Android Debug Bridge version 1.0.36
Revision 7.1.1_r13
############# checking Android version
-> Good. Matching exact the required Android SDK: 22
############# checking SuperSU version
-> Matching required SuperSU version: 279
############# temporary disable SELinux
-> command ended successfully (err=0)
SELinux mode: Permissive
... restoring SELinux mode to Enforcing
Tests finished! Check the above output!! Exiting here because in checking mode. Nothing installed.
Click to expand...
Click to collapse
The important lines are:
Matching required SuperSU version: XXX
"SELinux mode: Permissive"
If you see "SELinux mode: Enforcing" or any error messages you may doing something wrong or it just do not work for you.
Limitations!
Keep in mind what I said above: FIsH does NOT unlock your bootloader!
That means with FIsH itself you can NOT "install" anything. FIsH actually is the FRAMEWORK(!) for the FIsHFOOD (ramdisk) you want to load.
One good example is TWRP. This can be loaded even on devices do not having a recovery partition (I believe Sony is one of those).
Let's stay by the example of TWRP.
Keep in mind that when you use FIsH to provide TWRP you can NOT
Install a custom ROM like CM/Lineage (this will modify boot = SOFT-BRICK. for this u would need efidroid or multirom as FIsHFOOD)
Install a custom Kernel (this will modify boot = SOFT-BRICK)
Install a custom recovery (this will modify recovery =may SOFT-BRICK)
In short: do nothing which modifies boot or recovery partitions. Those changes will break your boot signing chain.
You can of course flash everything which is modifying /system /data only (e.g. xposed, Audio mods, etc...)
You're able to backup and restore as well of course and doing any other modifications which you may can't while the Android system is running.
Download
You will get the most current downloads at github but I uploaded all stable releases here at XDA as well to mirror them.
Latest stable (well tested and so hopefully fewest bugs): Download latest release at github (click)
Mirror / older stable versions: DOWNLOAD-TAB (click)
Next stable (lesser chances of issues but may still not released yet): github master branch
LIVE/FRESHEST code u can get (high chances of failures, bugs, unexpected behavior - but the latest and greatest features/bugfixes): github develop branch
FIsH helpers
If you want to reboot directly to an implemented version of FIsH from within Android check out this:
Thanks to @sdembiske who has onboarded the developer @AntaresOne we have an option to reboot into FIsH very comfortable now!
Check it out here: QuickReboot App
Support / IRC Channel
(DEVS/COMPILERS ONLY - NO ENDUSER SUPPORT!)
IRC means Internet Relay Chat and you will get best support here only.
This channel mentioned here is NOT an ENDUSER channel!!
It is for developers and compilers only!)
Endusers should use: #Carbon-user instead !
Choose how to get in:
PC (HexChat and Pidgin are only 2 of them! This list is not complete!)
Android (Yaaic, AndChat, HoloIRC, AndroIRC are only a few of them! This list is not complete!)
Web (KiwiIRC-Web,FreenodeWebchat])
When you have to choose a channel it is: #Carbon-Fusion (this is NOT an ENDUSER channel!! It is for developers and compilers only!)
Endusers should use: #Carbon-user instead !
When you be asked for a server network choose: freenode
Credits (without them - no FIsH!!!)
If you feel that someone / you is missing on this list lemme know!
Chainfire for SuperSU! This is the main part of FIsH.
TeamWin for TWRP
@cray_Doze, @dssmex, @Aaahh and @KeiranFTW for their hijack implementations (e.g. https://forum.xda-developers.com/showthread.php?t=2608408, first steps to a G4 hijack)
@dibbled for creating the android FIsH logo
steadfasterX for the android FIsH !
Famous last words
You may say: When this will work for up to LL only.. Why the hell are u releasing this now? We just see the upcoming Android O and you talk about LL? Well.. This whole thing is just a fun project. I want to learn and I want to give back something which helps others.
So at the end.. If u don't like.. its ok. If you don't need it.. ok. If you can't get any value out of it.. ok..
But maybe it helps others out there instead.
So if you're still not scared and want to continue.. what u r waiting for??
XDA:DevDB Information
android FIsH, Tool/Utility for all devices (see above for details)
Contributors
steadfasterX, BigCountry907, Rees86
Source Code: https://github.com/Carbon-Fusion/android_FIsH
Version Information
Status: Stable
Current Stable Version: v3.0
Stable Release Date: 2017-06-14
Created 2017-03-24
Last Updated 2017-09-11
FIsH bowels (What's inside)
This is for ppl understanding the basics. I will not explain it for dummies
Ok prepare urself for the naked magic
Actually FIsH is mostly similar to other RAM hijacks around with 3 major differences:
1. FIsH is based and depends on SuperSU.
YES - I make my life EASY. You actually need a rooted devices for the most kind of hijacks.
... and I assume the most ppl using SuperSU as their su binary.
... and SuperSU does not require to modify boot (at least until LL)
With this in mind and reading the SuperSU docs I had read that beginning from version 2.76 SuperSU
comes with a special kind of internal init.d support means: It executes custom scripts very early with full SELinux perms available.
Check out the docs here: https://su.chainfire.eu/#updates-sud
2. FIsH tries to be a generic framework with instructions to bring it on all devices.
The hack here is not device specific due to its nature of just executing a custom script by SuperSU.
I've made all scripts inside as easy portable as possible and given hopefully good descriptions and
porting instructions for EACH variable you may need to adjust.
3. it works for up to LL (when u can met the pre-reqs for MM or N, O or whatever comes then - it will work there as well!)
I found only methods for up to KK (e.g. 2nd init and others) but nothing for LL (sorry if I missed someone!) so I started FIsH.
So in sum FIsH is:
a set of scripts and tools which gets executed by SuperSU on early boot stage which hijacks the boot process to bring up your own ramdisk.
FIsH vs Flashfire
Flashfire is absolutely an AMAZING tool! You can backup, installing ZIPs etc all without an unlocked bootloader.
Due to it's nature it is not possible to do EVERYTHING with it (on a locked device), e.g. restoring your whole system partition.
TWRP-in-FIsH (FIsH plus TWRP as FIsHFOOD ramdisk) can provide this - even with a locked bootloader.
Besides this FIsH can do more like (hopefully) bringing you custom ROMs on locked bootloader devices.
FIsH vs Safestrap
Safestrap is supported up to KK and besides this it actually is some kind of MultiROM pendant (+ the hijack part).
FIsH supports any Android version up to LL (GB, ICS, KK, LL,..) as long as the 2 bloody requirements can be met.
Safestrap is a very customized version of TWRP and so limited to updates from there.
FIsH lets you boot any ordinary TWRP completely unmodified. This makes it easier to get new TWRP features on your device.
Besides this FIsH wants to be easy to port for everyone thats why it uses standard components only.
AFAIK it is not supported anymore anyways.
FIsH vs other RAM hijacks
The main reasons why FIsH exists are described already (LL support, easy portable and easy to use) so if you still feel that this is not different from the others... i dunno what to say
FIsHing (Hijacking) means:
FIsH kills all running services, scripts, binaries it can find.
Afterwards it will unmount everything and delete all files left behind from the initial ramdisk.
Now in that more or less clean state it will replace the initrd with the FIsHFOOD - means your own ramdisk like e.g. TWRP.
Some other stuff may happen also but at the end a binary will be started - normally a /init from your own ramdisk
So in sum it is a live replacemnt of the current ramdisk with your own.
Requirement <SuperSU>
It prepares the system to run the FIsH init script and also ensures that SELinux can be run in permissive mode.
Keep in mind that FIsH will enforce permissive mode on boot to do it's job so you do not have to do anything (normally) to let the FIsH boot.
Main components of FIsH:
./install.sh (file)
The installer is the first part you may need to adjust when you want to port FIsH.
This installer is for Linux users only. If you want to have Windows users executing FIsH point them to https://tinyurl.com/FWULatXDA !!
.. but you're free to port the installer to Windows (if u like: bring it back to me so I may include it..)
Your FIsHFOOD (your own ramdisk) has to be compatible to your running STOCK ROM. If you have LL 5.x running your ramdisk has to run / build for it.
important variables:
MINSDK: Adjust this SDK level to match your runnin STOCK ROM which has to be compatible with your FIsHFOOD
MINSU: The minimum SuperSU version required. Do not use anything lower than 279 (means 2.79) because this may not work!
BUSYBOXURI: This is a full URL to a busybox binary compatible with your device. You may have to adjust this but ensure u use a compatible version
because we highly depend on its syntax. The reason why FIsH does not come with busybox bundled is besides license stuff (I do not wanted to provide their
sources ) it may be required that you need another binary then me.
fishing/ (directory)
The real FIsH. Means all files which gets copied to the target device.
fishing/busybox (file - will be auto downloaded by the installer)
You should know what it is..
FIsH comes without busybox but the installer will download it automatically and place it here.
FIsH uses busybox to have all commands with the expected syntax in place and we highly depend on this in the hijack process!
fishing/fishfood.gz (file)
The FIsHFOOD is your own ramdisk - in gziped cpio (e.g. TWRP)
This ramdisk has to be compatible to your device's ROM. Means when you have a STOCK ROM 5.1 installed your ramdisk have to be compatible to LL 5.1.
You can ensure this within the installer (see FIsH Installer) where the Android version will be read and compared before FIsH installs actually.
fishing/fishfood.release (file)
The version and content of your FIsHFOOD
I recommend the following naming convention:
[yourFIsHFOOD]-in-FIsH-v[VERSIONNUMBER]_[DEVICE-MODEL]_[Android-Version]
e.g.
TWRP-in-FIsH-v1_LG-G4_LL
You can write in here whatever you like. The content will be send to the fish.log to identify which version the user has installed (helps debugging).
fishing/callmeFIsH (file)
a caller script which gets executed at very first.
The only task callmeFIsH has is to prepare the whole FIsH to get started out of /system and then starting FIsH from /res. After this it immediately exists to not keep open tasks on /system. callmeFIsH will be placed in /system/su.d/ to get autostarted by SuperSU.
fishing/FIsH (file)
The heart of the FIsH.. Get's called by callmeFIsH.
It will be executed by SuperSU on boot and will hijack the process and prepare and setup everything to let your FIsHFOOD coming up.
fishing/FIsH.me (file)
Functions and vars a user/dev normally wouldn't need to change. They are internal stuff only.
fishing/FIsH.porting (file)
As you're trying to port FIsH this file is your main part when it comes to customization for your device.
Here you should find everything required to be adapted and there are very high chances that you HAVE to adjust this to your device.
fishing/gofishing.sh (file)
The remote installer part. It will actually run as root and prepare your system for FIsH.
You normally will never need to touch this.
FIsH target directories
/system/fish/
All the bowels of FIsH like, FIsH, Busybox, fishfood.gz and fishfood.release go here
/system/su.d/
The FIsH caller (callmeFIsH) goes here
/cache/fish/
The most important directory for you: Here you will find all logfiles required for debugging!
.
Bring FIsH on the menu card (porting FIsH)
So you may now have a little bit understanding of what FIsH can do for you and what not.
When you feel FIsH could work for your device then why not just trying to port it?
This guide should help you for this task.
FIsH was made from scratch with portability in mind.
That means I tried to make it as simple as possible for you to port.
I really hope that task has been accomplished..
1. Met the pre-requirements
You have to understood that FIsH will work ONLY when the pre-requirements are met.
There is no way around or "if i met 1 of the 2 - will it work?" NO. You need BOTH!
If you will be asked by a user to port FIsH -> Ensure that the requirements can be met first before investing your time.
There is an easy test u can go for this: just execute the installer like this:
./install.sh --check
The installer will test and check if it get what it needs and then EXIT without(!) any installation.
2. Build your FIsHFOOD (your custom ramdisk)
I recommend to start with TWRP but choose whatever you like. For this guide i stay with TWRP.
Keep in mind that your FIsHFOOD has to be build with the same sources as your running STOCK ROM.
If you want to support multiple STOCK ROM versions you may have to build multiple FIsHFOOD versions.
Testing your FIsHFOOD is not that easy on locked devices so your only option is to go on once you feel your build is ready.
3. Cook the FIsHFOOD
When you build images or ramdisks you may end up with an image file needed some preparation first:
create a gziped cpio of your initial ramdisk u wanna load
example of twrp build by you:
after your build has finished you will find several img files in your out/ directory and you just need to copy the following file:
out/target/product/<YOURCODENAME>/ramdisk-recovery.img
and move it to:
fishing/fishfood.gz
example of an existing twrp image:
abootimg -x twrp.img (will extract the twrp image)
file initrd.img (should tell something like: gzip compressed data. if NOT: gzip it!)
mv initrd.img fishing/fishfood.gz (moves the extracted initial ramdisk)
Some Notes:
- this cpio has to be compressed with gzip (.gz file ending is importat!)
- the name of this file should be fishfood.gz (exactly this)!
- edit or add a file fishing/fishfood.release and type in what ur fishfood is (e.g. TWRP)
and the version of it course (a good example is: TWRP-in-FIsH-v1_LG-G4_LL)
Click to expand...
Click to collapse
4. Prepare the FIsH installer
Download FIsH and extract it.
open the file install.sh
Check the variables u may need to adjust: Check Post #2 above for some explanations and read the comments within
Note about the Android goFIsHing installer (fishing/gofishing.sh)
You normally do not need to touch this file. It may be required if you cannot install FIsH but that should hopefully not happen..
5. Cook the FIsH
open fishing/FIsH.porting
You will find 2 sections: GLOBAL and PORTING
Each section has hopefully meaningful comments to give you an idea what they do and how you should modify them.
Most vars also have example instructions to find the correct values for your device.
When you're trying to port FIsH you may have to try & error FIsH several times before and you may do not want to use your defined key combo to do so.
For this and also as a convenient option when you want to boot directly into FIsH from Android you can set a special flag to always boot FIsH.
Use it with care because it may let it bootloop while in your testing phase.
The file which activates FIsH without a key press is: /cache/recovery/boot
It can make sense to use this for an easier testing process (don't need any key presses to activate FIsH).
In sum the following command comes very handy while developing:
./install.sh && adb shell "su -c touch /cache/recovery/boot" && adb reboot
So the other way is using a key combo without the need to boot into Android.
For this you will find everything you need in the file fishing/FIsH.porting which you usually have to adjust to your specific device.
Providing user feedback for activating the FIsH:
FIsH gets NOT activated by default. That means if you would reboot your device it will just reboot.
To activate FIsH you need either to use a key combination (provided by you) or using the FIsH file flag.
The idea of the FIsH booting process is (see fishing/FIsH.porting)
a) WAIT_LED: show a LED color indicating FIsH has been STARTED (not ACTIVATED)
---> the user has to press the magic key combo NOW
b) VIBRATE: will vibrate to indicate that the time for pressing the magic key combo is over
c) FISH_LED: show a LED color indicating that FIsH has been ACTIVATED .... or NOT!
d) boot into either Android or your FIsHFOOD depending on what the user wants
If your device does not support different LEDs you can instead use the path to vibrate in the LEDs.
e.g. WAIT_LED="$VIBRATE". This will let the device vibrate instead of showing a LED color.
Whatever you end up with you have to check and adapt the enduser installation guide ofc as well..
6. Let the FIsH swim
Now it's time to test your FIsH port. But BEFORE:
You will take a high risk here at this early stage because it CAN bootloop/soft-brick your device if something goes totally wrong!
I hope I had done all to keep the risk for this low but no guarantees!!
So make a FULL backup of ALL your apps and do not forget to backup your internal storage with all your pictures etc.!!! (just a reminder: TWRP does NOT backup your internal storage!! Read the explanation here)
If the worse case happens you may need to totally bring your device back to pure STOCK so you have been warned!
7. Finally give the FIsH a name
If your FIsH swims... omg.. CONGRATS well done !!! The most hardest stuff is done now! Woot u r a REALLY good dev did u know that?! Your community will praise u!
Of course u r free to choose a name but I recommend to name your FIsH package like this:
[yourFIsHFOOD]-in-FIsH-v[VERSIONNUMBER]_[DEVICE-MODEL]_[Android-Version]
e.g.
TWRP-in-FIsH-v1_LG-G4_LL.tgz
Note: Did u see the different use of dashes and underscores? Keeping it that way is important.
This way we all get a clear understanding what it is, which TWRP-in-FIsH version, for which device and for which STOCK ROM version.
8. Release your FIsH to the wild ocean
Ok I will not tell you how you should release but it would be nice if you tell the users where this all comes from
Do not forget to report back to this thread if you have implemented a port so I can add it here for reference.
An example installation guide for your endusers can be found at Post #7: Go FIsHing
If you struggle somewhere you can find me in the IRC (see OP)
When you have to choose a channel it is: #Carbon-Fusion
When you will be asked for a server network choose: freenode
Trouble / Bootloop fix
if you encounter a bootloop (should never happen but who knows) you have 3 choices at least:
Option 1a: (TWRP-Bootloop) Within TWRP open Advanced -> File Manager -> Goto: /system/su.d and click "select" button -> Delete
Option 1b: (TWRP-Bootloop) From your PC: adb shell rm -rf /system/su.d/
Important: Catch the fish log (see next topic)
Option 2 (this works also for a bootloop without twrp): boot into download mode and use LGLaf to get a shell
then:
setenforce 0 <-- if that doesn't work you may have to do a FULL restore to stock
mount -oremount,rw /system
rm -rf /system/su.d/
reboot. You are out of the bootloop.
Important: Catch the fish log (see next topic)
Option 3: Last resort: Reflash STOCK. sorry.. there is always a risk..
Catch the FIsH logs
when in TWRP (or other ramdisk providing adb shell):
adb shell "cat /cache/fish/fish.log"
adb shell "cat /tmp/recovery.log"
OR - when in Android:
adb shell "su -c cat /cache/fish/fish.log"
adb shell "su -c cat /cache/fish/fish.log.old"
adb shell "su -c tar cvzf recoverylogs.tgz /cache/recovery"
adb pull recoverylogs.tgz
Upload the output to https://paste.omnirom.org and paste the link in the IRC channel
FIsH cuisine (examples)
Example implementations
LG G4 (any model):
TWRP-in-FIsH (https://forum.xda-developers.com/g4/development/locked-twrpinfish-locked-g4-devices-t3573048)
HTC Desire 626s:
FIsH-in-SDCARD - big thx to @BigCountry907 (https://forum.xda-developers.com/showpost.php?p=71630297&postcount=35)
HTC DESIRE 526 VERIZON:
FIsH-in-SDCARD - big thx again to @BigCountry907 (https://forum.xda-developers.com/desire-526/general/super-sd-htc-526-vzw-t3596497)
LG Flex 2 (h955):
TWRP-in-FIsH - big thx @ergo911 (https://forum.xda-developers.com/g-flex2/development/fish-flex-2-t3583093/post71690950)
If you have ported another device or know about one just post to this thread so I can list it here
.
FIsH hydra (multiboot in FIsH)
Bringing multiboot to your device is still not finished yet.
I just wanted to release FIsH now because I was able to proof the working concept based on TWRP and as FIsH is nothing device specific anything else should do so as well.
I have little hope that maybe other developers step in and trying to help me with this but well if not it doesn't matter.. just taking longer
The whole thing of multiboot is a WIP (work in progress) currently.
But now you can prepare yourself for a possible way on this by starting a port of TWRP-in-FIsH first to see if the FIsH concept works for your device. This is strongly recommended to start with whereever we will end up here. Then come back here and hopefully until then I have some news about that topic..
So in theory multibooting by FIsH should be possible. FIsH is just executing your ramdisk so..
The only thing we would need is a way to start any of the tools already available right?
Correct. But.. any of them have its own requirements and way of work. So I need to investigate the bowels of them first to adapt them to FIsH.
Let's think about my first choice: multiboot by efidroid.
While it is quite new for me and it's implementation of booting multiple ROMs is very nice and different from MultiROM. Kudos to MultiROM which provide multi boot of custom ROMs for years but I really like the approach of efidroid (even when I just starting to use it).
When you would be able to boot into efidroid with FIsH you could use as many (unpatched) ROMs as you like. Just 1 or 20 - depending on your disk space mainly. So what does that mean? With FIsH you can hijack the boot and jump in efidroid and now u r able to boot whatever custom ROM you like. That's the theory.
The practice is: efidroid is a bootloader and so completely different to TWRP for example. Using the same hack here will not work without modifications of efidroid and maybe FIsH. The key here is to use the efidroid binary plus the cmdline needed to get a custom ROM booted.
Don't get me wrong what NEVER will work is booting into efidroid like fastboot boot uefi_boot.img can provide. The first thing what I'm trying to achieve is to use the efidroid binary plus the needed cmdline to boot up a manually added custom ROM (thx to the efidroid dev @m1cha by the way.. I promise to bug u as often as possible ). When this works we have won. Well it will be far away from user friendly leaving it this way but it should be possible to write a GUI (e.g. based on AROMA) and then doing the actions efidroid offers in its boot menu. So.. at the end some kind of MultROM but without kexec patches would be possible then.
The other way around: multiboot by MultiROM.
A long player in the game of multiboot and often ported to many devices. The problem here is that it is more than just a ramdisk. It is splitted into a modified TWRP plus MultiROM itself which needs to be flashed from within TWRP. This flashing will inject modifications in your /boot image so it will not work this way on locked devices out of the box.
Before I want to dive into the deeps of a possibly MultiROM implentation for FIsH I want to end my testing for efidroid. So atm I cannot say if there will be a way or not because for this I need to find out what MultiROM really do in the boot image and adapt this change to FIsH. I strongly believe that this can be adapted but my time is limited and my priority lays on efidroid for the moment.
Tbh bringing up the modified TWRP version should be easy because it will work the same way as bringing the ordinary TWRP to FIsH but the other part in the boot image is what I'm not sure about what it does (haven't had the time to look into this yet).
If u feel like a developer and you are able to unbrick a soft-bricked device then feel free to investigate and try on your own and let me know
Update (2017-06-27):
I had the time to look into the possibilities of a multirom port to FIsH.
The bad news: its not easy as thought. Its near impossible yet not complete impossible.
I was a little bit confused by a new compile flag in multirom named MR_NO_KEXEC which allows you to use kernels not patched for kexec-hardboot.
Well but its not that easy..
- using kexec-hardboot needs a patched kernel
- and not using it (MR_NO_KEXEC flag set) will replace the whole boot partition(!) when a secondary ROM boots
So both options will break and can't be used.
The only way to go would be to modify the multirom sources (likely the trampoline part) to behave like efidroid does (heavy usage of loop devices instead of the current phys ones).
You can think of that this modification goes VERY deep, means a LOT of work and requires heavy C / C++ skills.
That's why I can't proceed here. I don't think that it is worth it tbh so I will investigate the other options and abandon the MultiROM approach.
The FIsH plate (sdcard booting)
Thanks to @BigCountry907 we could boot FIsH on every qualcomm device in a manner which has the potential to root any device, boot any ROM and more.
You remember? FIsH can be installed on a rooted device ONLY!
That's still true but with this you can boot e.g. TWRP-in-FIsH even on a not rooted MM / N /... by using the FIsH plate..
The whole process makes use of a qualcomm feature which let you do this.
- the whole process is incredible complicated to get it working!!!
- the whole process is very sensitive and you have to find the right combination of needed partitons to make it work
- the whole process is a complete try & error
- if I mean IF I get this working I could patch the bootloader partition on that sdcard partition without touching the REAL bootloader to test without bricking...
- I work together with @BigCountry907 to get it working but we live in complete diff timezones which makes it not easier
-
If you want to help you can find me in the IRC (see OP)
.
Chew the FIsH (Copying/License)
# This is Android FIsH: Fluffy Incredible steadfasterX Hijack
#
# Copyright (C) 2017 steadfasterX <[email protected]>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see http://www.gnu.org/licenses/
Click to expand...
Click to collapse
FIsH mutation history (Changelog)
android FIsH v3.0
Released: 2017-06-14
Full Changelog: https://github.com/Carbon-Fusion/an...oidFIsH_v2.0...Carbon-Fusion:androidFIsH_v3.0
Download: see the OP
Summary Changelog:
adding the possibility to exclude easily process names/pid's from being killed (coming with a default exclusion list already)
check it out: `fishing/FIsH.porting` --> `EXCLUDEPROCS / EXCLUDEPIDS`
several fixes regarding the ramdisk extraction
heavy speed improvements regarding kill & mount
adding a version string to FIsH to be able to identify which framework is running
added a better `ps` command than the one provided by `busybox ps`
android FIsH v2.0
Released: 2017-04-11
Full Changelog: https://github.com/Carbon-Fusion/an...oidFIsH_v1.0...Carbon-Fusion:androidFIsH_v2.0
Download: see the OP
Summary Changelog:
Improved general speed by factor 4
Many bug fixes
Many improvements for the installer like a new clean function (uninstall FIsH)
android FIsH v1.0
Released: 2017-03-24
Full Changelog: https://github.com/Carbon-Fusion/android_FIsH/commits/androidFIsH_v1.0
Download: see the OP
Summary Changelog:
first general public release
Go FIsHing (enduser installation guide example)
COPY & PASTE template for your own XDA thread (completely pre-formatted)
installguide_XDA_format.txt
.
Special FIsH Dinner (Notes)
TWRP
The first step to get a success with FIsH is to use TWRP as your FIsHFOOD.
Once started the first thing coming in your mind may be backup & restore but use it with care!
FIsH will brutally unmount /system in - afaik - all cases because there will be open files on it which can't be avoided.
In order to use TWRP successfully you should set at least this special flag:
# Always use rm -rf to wipe
TW_ALWAYS_RMRF := true
This is a workaround because it means wiping /system or /data will behave differently then you might expect normally. Without this flag TWRP will format the partition. With this flag set TWRP will use rm and delete all files on it without formatting the partition.
Very interesting. I actually have a locked (bootloader) device which I'm looking for a way to unlock. I feel likr I could get something (*cough*TWRP*cough*) working because of this. Keep it up :good:
veez21 said:
Very interesting. I actually have a locked (bootloader) device which I'm looking for a way to unlock. I feel likr I could get something (*cough*TWRP*cough*) working because of this. Keep it up :good:
Click to expand...
Click to collapse
Just remember the limitations and leave thanks to @steadfasterX
I am very happy to have stumbled on this today.
I cant wait to get a little deeper into it but i must say very nice job.
I have been working on a big project myself. For creating a clone of any device emmc.
Burn the GPT Partition Table to a External_SD Card and flash the images.
What I have found is that If you make the SD Card right the Qualcomm Devices will boot from the sd card.
To the extent that If i unlock a device that normally can not be unlocked using my XTC-2 clip then copy the images ect from the unlocked device burn to sd card and then boot into H-boot or Download mode the Unlocked Status for example Bootloader Unlock and S-off and Super Cid ect ect ect will be present on the locked device. Thus giving elevated permissions. My setback has been there is no normal way for me to write any partitions yet. Anything I flash through H-boot writes to the SD Card. And I have been unable to make TWRP boot this way.
My initial though is to set up my unlocked device with fish and get it all working. Then create the sdcard image that includes the installed fish scripts. It would be simple to modify the external sd to meet all the fish requirements. even if the device itself can not meet the requirements. My device currently meets the requirements but it isnt for me. Its for the community of people that dont have java cards. This could potentially lead to a way of overcoming both of our current limitations.
All i need is a way to boot TWRP from my elevated privileged sd card and I can utilize that to provide unlocking.
Awesome
BigCountry907 said:
I am very happy to have stumbled on this today.
I cant wait to get a little deeper into it but i must say very nice job.
I have been working on a big project myself. For creating a clone of any device emmc.
Burn the GPT Partition Table to a External_SD Card and flash the images.
What I have found is that If you make the SD Card right the Qualcomm Devices will boot from the sd card.
To the extent that If i unlock a device that normally can not be unlocked using my XTC-2 clip then copy the images ect from the unlocked device burn to sd card and then boot into H-boot or Download mode the Unlocked Status for example Bootloader Unlock and S-off and Super Cid ect ect ect will be present on the locked device. Thus giving elevated permissions. My setback has been there is no normal way for me to write any partitions yet. Anything I flash through H-boot writes to the SD Card. And I have been unable to make TWRP boot this way.
My initial though is to set up my unlocked device with fish and get it all working. Then create the sdcard image that includes the installed fish scripts. It would be simple to modify the external sd to meet all the fish requirements. even if the device itself can not meet the requirements. My device currently meets the requirements but it isnt for me. Its for the community of people that dont have java cards. This could potentially lead to a way of overcoming both of our current limitations.
All i need is a way to boot TWRP from my elevated privileged sd card and I can utilize that to provide unlocking.
Awesome
Click to expand...
Click to collapse
cool. your project sounds amazing as well keep us updated please .. !
btw I personally do not need FIsH .. lol.. i have all my devices unlocked but there were many users for my current device which cannot unlock (LG G4 -> only a few models can be unlocked) so I started FIsH..
so don't give up and if u need help.. go to IRC channel #Carbon-Fusion on freenode.. see us there
.
You may have just saved the Verizon sgs4 from total death. We have to see if selinux can be changed first.
ninjasinabag said:
You may have just saved the Verizon sgs4 from total death. We have to see if selinux can be changed first.
Click to expand...
Click to collapse
just use the installer..
./install.sh --check
will tell you..
.
steadfasterX said:
just use the installer..
./install.sh --check
will tell you..
.
Click to expand...
Click to collapse
Knox disables selinux permission changes by default. So I know the install.sh will return with a negative.
I posted the link to this thread on the VZW S4 forums in the hopes someone will pick up.
ninjasinabag said:
Knox disables selinux permission changes by default. So I know the install.sh will return with a negative.
I posted the link to this thread on the VZW S4 forums in the hopes someone will pick up.
Click to expand...
Click to collapse
So no root available there?
.
Sent from my LG-H815 using XDA Labs
@steadfasterX
In my mind it is threads like this and projects like this that make this place so great.
Same reason for my project. To unlock HTC devices. Verizon devices cannot be unlocked easily.
If you ever need any help with the bash script let me know.
I'm pretty good with it. Bells and whistles like menus and whatnot too.
I was glad to see your shell scripts.
I know the language and it makes this easy.
steadfasterX said:
So no root available there?
.
Sent from my LG-H815 using XDA Labs
Click to expand...
Click to collapse
Root, but barely. We've gotta use kingroot to open the door before replacing kinguser with SuperSU.
This is where the sd card trick works well.
See if we can boot TWRP off of it then we automatically have root access in adb.
Then its a matter of flashing the right partitions ( Device Specific ) to unlock permanently.
DevUt said:
Just remember the limitations and leave thanks to @steadfasterX
Click to expand...
Click to collapse
No , I reached my thanks limit. I do know the proper ways of man :good:

Categories

Resources