Related
SuperJustKitchen v0.7 Released.
Go to my site: http://justkitchen.info to get the updates and the info. It takes to long to update every device's forum that is supported, and I plan to support all devices.
Word of warning:
None of the new EXT's have been tested and fixed for the Herald, Opal, Hermes AND Artemis. Please test test and test and then let me know which packages don't work and what YOU've done to fix them. (I don't have time to fix ALL of them by myself.)
(I'm no longer updating each thread separately for each device but just updating my site and posting the release info here.)
Quick Links
FAQ
Installation Walkthrough
Kitchen Usage Walkthrough
Change Log and Known Bugs
Download Links
**Warning**
Before using this kitchen, you MUST read the walkthrough. Any questions that have been answered there and in the FAQ will be ignored. This is your only warning.
**Disclaimer**
I am not responsible for any damage that may be done to your phone with a ROM created in this kitchen.
I am not responsible for any damage done to your computer.
I am not responsible for anything... at all.
Introducing SuperJustKitchen!
SuperJustKitchen is based on ervius's excellent Visual Kitchen.
Features
A completely stripped ROM. All the files have been categorized in order to remake packages of all the programs that come stock on the HTC ROM.
LZX and XPR compression
6.1 and 6.5 support
Auto XIP and SYS porting
Auto ULDR removal (Gain 3mb of storage.)
Auto NBH packing
Auto Flashing (for testing your ROM before it's released to the wild)
Simplified structure. Click on RunMe to run and Support for support
Script to convert old OEM packages to new EXT packages
Auto file conflict fix (don't have to removing older file that conflict (not that there are any. )
Script for auto UPX compression of EXT folders
Script for auto compression of all PNG's in the kitchen
Save custom ROM settings (for cooks for multiple ROMs)
And more!
Builds included
21054 - WM6.1
21869 - WM6.5 with older GUI - Newer internal code - COM2 branch 23071 - WM6.5 with new redesigned GUI - COM3 branch
This is now an ENGLISH only kitchen. It is just too hard to keep up with 13 different languages! If anyone is interested in taking over the other languages, please let me know.
NOTE: In order for me to keep track of whether my time was well spent or wasted, if you use this kitchen to make a ROM, please either include SJK in the name or just mention that it was SJK cooked in your ROM's thread.
NOTE: This kitchen assumes that you know how to flash through SD, recover from a bad flash and are able to backtrack your steps to figure out how you broke your own ROM. If you do not understand these, please learn them first. Do not PM me asking me. I have written numerous walkthroughs on all these except on how to backtrack your steps. For that, just remember what you're doing as you do it and keep backups.
FAQ
FAQ
Q: Can you get me package YYYY?
A: No. I will provide packages as I create them. I will not take requests. It takes a LOT of time to make a package, especially when I'm making it for 13+ languages. It takes a long time to find the corresponding packages or to create them from scratch.
Q: Will this work on my [Insert device other than Herald/Wing]?
A: Not, yet. That is why it's posted on the Herald forum.
Q: Will I be able to recreate JustHome or JustStable with this kitchen?
A: No. This is a completely new base. I made this kitchen and these ROM base from scratch.
Q: Will you personally teach me how to....?
A: No.
Q: My phone won't boot after flashing your ROM!
A: You disabled something you needed. Keep track of what you disable and then reenable the stuff that you need.
Q: My phone is bricked!
A: You didn't follow the instructions!
Q: When I use this, I get an error.
A: You didn't follow the instructions!
Q: How do I flash this?
A: It's not a ROM.
Q: How do I flash a ROM I make with this?
A: You must know how to flash before you use this. You must know how to recover from a bad flash. You must know the difference between USPL and HardSPL. You must know how to flash through the SD if needed.
Q: Will this work with Windows XP, Vista or 7?
A: All of the above. Just remember to follow the install instructions.
Walkthrough
Installation:
Step 1
Download the newest build from the download links.
Step 2
Extract the SuperJustKitchen folder into c:\kitchens\
Now you should have c:\kitchens\SuperJustKitchen\RunMe
Step 3 (Optional)
Extract the SuperJustKitchen shortcut into your desktop.
Step 4(Vista and Windows 7 only)
Go to your Start Menu and then click on Start Search or RUN.
Type in "c:\kitchens\SuperJustKitchen\Working_Folder\" without the quotation marks and press Enter.
Right click on erviuskitchen and click on properties.
Click on the Compatibility tab.
Place a check mark on Run this program as an administrator.
Press ok.
Change Logs and Bug Reports
Known Bugs
23047
No known bugs
21864
No known bugs
21064
Older Arcsoft don't work with this
All builds
No known bugs
******************************
Change Log
Unreleased
To-do for Future Release
Info ported to Herald
Info integrated into kitchen support script
Enhance kitchen support script to auto upload support information
Enhance support script to include system information
Enhance script to give option for kitchen host support and ROM/Device support
Add built in HardSPL installer (if you can use USPL, you can also HardSPL.)
Expand RunMe script to encompass support script and HardSPL.
Once info integration is completed, create script to auto detect incompatible phones
If phone is Herald and the IPL version is lower than 4.0, auto update IPL and SPL to newer IPL/SPL before automatically HardSPL'ing phone.
Include "restore to factory default" option. (Autodownload needed RUU from server, USPL into phone to override HardSPL.)
Indepth Cooking walkthrough to supplement kitchen walkthrough
Scripted installer with desktop shortcuts
Scripted Simple new build Port assistant
Much much more
Released
0.6
Cleaned up the Herald's initflashfiles and older packages (This fixes the double control panel icons.)
Ported 21869 and 23071
Cleaned up the Opal OEM a little.
Organized some EXT into categories. (This is still a work in progress.)
Starting with v0.6, I've created a script on my end that will automatically compress the kitchen and separate it into multiple parts:
SJK - The main kitchen files.
OPAL - The Opal files.
HERALD - The Herald files.
SYS - The Build files (Both SYS and XIP.)
EXT - The EXT files.
This should make it easier to update things from now on. I'm going to have scripts to only update certain things. This way, you should only need to download whatever has had the changes, instead of the whole kitchen. Later on, I hope to create an updater that will do these updates for you automatically. (At first, I won't be able to update the EXT without deleting any custom EXT's added by you, the user.)
0.5
English only support
MANY new EXT's (multiple versions for now)
Opal support
All EXT's are being categorized... work in progress
0.4
Added updated packages for the programs that are language agnostic.
Added 23060 and 23420 builds. Fixed their button issues by using 23053 to fill in the blanks. (230xx's are more stable, 234xx's are newer and have more features as well as more bugs.)
Added descriptions to every package (albeit, they're a little more technical that I wanted, but I got them straight from Da_G's mouth, so they're bound to be correct.)
0.3.1
I only left 3 builds. The newest 6.1, the newest 6.5 with the old gui and the newest 6.5 with the gui (23047, it's really nice!)
0.3
CABtoEXT - Thanks to Apreinchner - Update: Edited the script heavily (it went from 4 lines to 88 lines) in order to make it sort out and move all the newly created EXT's appropiately.
Ported 23034 all languages - even MORE gui changes!
Ported 23037 - stable
Ported 23409 - Again, MORE GUI changes! (A few bugs, though.)
Converted many of the problematic modules to files in the 23034
Change the all the languages' start menu on the 23034 build CPR to 4
Change ROM version to show that the ROM was built on SuperJustKitchen
Fix Adobe bug
Change ROM version to show that the ROM was built on SuperJustKitchen
Port other languages from 23031
Integrate Sort program into prepare structure - Script it
Presets for each build
Addition of 7 more languages?
Clean ROM more
0.2
Russian initflashfile.dat fixed - 6.5 start menu works fine now
Port 23028 0409 96dpi - deprecated
Change landscape mode in 21016 and 23028 to show 4 icons instead of 3
Script new EXT folder creation - extra buttons
Fix cab and sync bugs in 23016 and 23028
Port 21054 all languages (newest (and possibly the last) wm6.1)
Remove extra netcf's, extra dummy fwupdate, extra SQM's
6.5 compatible autorun
Port 23031 0409 96dpi
updated all language initflashfiles
Fixed issue with SMS on 6.5 builds
Fixed ActiveSync issues
Replace all start menu icons in all 6.5 in all languages with nicer ones
Empty folders disappearing fixed - different installer (placeholders fix it but some of those folders have to be empty...)
Remove compatibility for all other DPI's and resolutions other than 96dpi/320/340 for now to keep size down.
Remove compatibility with languages that aren't compatible with the Herald for now to keep size down.
0.1
Initial Release
Download Links
v0.4+
Just go to the new redesigned http://justkitchen.infoand click on the download section and then on the kitchen section.
v0.3.1
Version 0.3.1 is
SuperJustKitchen - With 21054(wm6.1), 23016(wm6.5), and 23047(wm6.5 with redesigned GUI.)
It's just one file with a ReadMe with instructions on how to install it.
v0.2
Version 0.2 is
SuperJustKitchen - With 21054(wm6.1), 23016(wm6.5), and 23031(wm6.5 with redesigned GUI.)
It's just one file with a ReadMe with instructions on how to install it.
v0.1
Version 0.1 was seperated into different pieces.
Main Kitchen Installer
SuperJustKitchen v0.1 - Alpha 1
Device Specific Installer
Herald
Build Installers
21051 - WM6.1
23016 - WM6.5 - Original WM6.5 interface
23022 - WM6.5 - The "new" WM6.5 finger-friendliness
EXT Installers
Non-DPI Specific EXT
Cooking Walkthrough
Cooking with SuperJustKitchen
*Warning: This is NOT a walkthrough on how to cook. It is a walkthrough on how to use this kitchen.*
The Layout
The Kitchen is stored in c:\kitchens\SuperJustKitchen\
To simply run the kitchen, double click on RunMe.
Advanced users: There will be a different walkthrough for you. (As far as how to add packages, builds, etc.)
The Usage
Once you doubleclick on RunMe, you will be greeted with the main kitchen window.
Here is a screenshot of the process. Use it to follow the steps.
{
"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"
}
Step 1 - Click on the Device drop down menu and choose Herald (Yes, even though it already says Herald.)
Step 2 - Click on the language drop down menu and choose your language. To find what the language codes mean, see the first page.
Step 3 - Choose a XIP.
Step 4 - Choose a matching SYS.
Step 5 - Make sure you enter a build number other than 2.00.00 in the field near these. Use 5.2.21051 or something similar instead. If not, the ROM will not flash.
Step 6 - Doubleclick on the packages that you want or don't want. (Green means enabled, gray disabled.)
Step 7 - If you want LZX compression, check the LZX Compression.
Step 8 - Click on create ROM.
Wait.
If you get any errors, you probably did not choose a build/language combination included. Look at the list of languages to see what I mean.
Credits
Credits
Ervius for his wonderful visual kitchen (you'll find a donation link for him under Working_Folder.)
HTC for making the HTC ROM
mrhayami for his brainstorming sessions with me to make the recursive scripts
Everyone else that I haven't mentioned
Advanced Tips and Tricks
Advanced Tips and Tricks
This section will detail both advanced cooking tips and advanced usage of my kitchen.
Kitchen structure:
If you notice, the structure of the kitchen is different from the old kitchens.
The only folders you need to worry about are the following:
Cooking Folders
EXT - This is where you would add new programs. EXT packages are similar to OEM packages, but they have a slightly different layout. They are processed by the kitchen after the OEM, so their settings are never overwritten by the stock settings of the base ROM.
OEM - You'll notice that within OEM, you have a HERALD folder. The reason being that this kitchen supports multiple devices at a time. Within the Herald folder, you'll notice several folders.
The .VM is used for memory mapping. DO NOT TOUCH THIS under ANY circumstance.
The COMMON folder where you would find most of the what you'd normally see in your old style OEM folder. (OEMAPPS, OEMDRIVERS, etc.)
Various folders named with 4 letters/numbers. These are language packs. They used to be part of the OEM folder but have been seperated to allow the kitchen to choose which language to cook more easily.
ROM - Inside you'll notice the following:
Device specific folder - Holds all the device specific XIP files/modules, including the nk (which is NOT a native 6.5 kernel.)
SHARED - Where the non-device specific parts go. This is what gets "ported" automatically by the kitchen. This makes it very simple to release upgrade ports to the kitchen.
SYS - The OS files. These are also divided by language, DPI and by resolution. (QVGA, SQVGA, WQVGA, VGA, etc etc) You will only be able to choose DPI's and resolutions compatible with your device.
Other folders:
RELEASE_Device - This is where your flashing software is and where the ROM ends up at in NBH format.
Prepare - I store things here for different reasons. At the moment, it holds the template for a 13 language EXT package.
Other features:
Extra buttons: Click this to access extra features.
The EXT version lets you choose between different EXT's compatible with different DPI's with the common ones (compatible with all DPI's) always displaying.
To be continued...
---Reserved---
Yep, still reserved.
It's still a work in progress, but I am ready for comments.
ivanmmj said:
It's still a work in progress, but I am ready for comments.
Click to expand...
Click to collapse
Commented. I'm trying it out now...figuring out how to work it.
Hah, love the FAQ
Question: For WM6.5 builds, do you have to check the Real WM 6.5 AKU box on the main kitchen screen? Or does it not matter? (I'll be finding out in a minute, anyways, lol)
i may have found a bug. I dont know remember the packages i chose but when it comes down to creating the rom i get a kitchen_build_rom.bat error. i dont get that anymore after altering the packages with HERALD, 409, EXT 0096, 96 DPI, dpi_96_resh_204_resv_320, 1.01.23016 ver., 23016 XIP, 23016 SYS.
Also, i havent been able to create a flash able rom yet. how do you reset the settings to default?
Edit: forgot to mention im on windows 7 build 7100. And yes i did do what was required on the 1st page.
I keep getting a file is corrupt error when I try to flash?
eichenberg said:
I keep getting a file is corrupt error when I try to flash?
Click to expand...
Click to collapse
Yo tambien.
The FAQ says that we didn't follow the instructions, lol.
My NBH is +50 MB, so idk what's the problem....hmm...
Wow works great! Im flashing through SD though. Just made a quick 6.5 build came out with 67.41 Storage and 25 ram
illconcepts said:
Wow works great! Im flashing through SD though. Just made a quick 6.5 build came out with 67.41 Storage and 25 ram
Click to expand...
Click to collapse
Yea, I think the .NBH files have to be over 50 MB in order to flash through PC. Anyone confirm that? (I'm trying out a 6.1 build, with the new Motorola homescreen, cuz it's sick)
ace10134 said:
Yea, I think the .NBH files have to be over 50 MB in order to flash through PC. Anyone confirm that? (I'm trying out a 6.1 build, with the new Motorola homescreen, cuz it's sick)
Click to expand...
Click to collapse
Let me know if you get that Moto home to auto start... im stumped.....
ace10134 said:
Hah, love the FAQ
Question: For WM6.5 builds, do you have to check the Real WM 6.5 AKU box on the main kitchen screen? Or does it not matter? (I'll be finding out in a minute, anyways, lol)
Click to expand...
Click to collapse
Do NOT check it. It will attempt to set all the modules to use another set of virtual memory that is not available to our NK.exe. It's only for originally 6.5 devices.
DestructDez1 said:
i may have found a bug. I dont know remember the packages i chose but when it comes down to creating the rom i get a kitchen_build_rom.bat error. i dont get that anymore after altering the packages with HERALD, 409, EXT 0096, 96 DPI, dpi_96_resh_204_resv_320, 1.01.23016 ver., 23016 XIP, 23016 SYS.
Also, i havent been able to create a flash able rom yet. how do you reset the settings to default?
Edit: forgot to mention im on windows 7 build 7100. And yes i did do what was required on the 1st page.
Click to expand...
Click to collapse
What was the error and what do you mean altering? I made this kitchen mostly on Windows 7 build 7100.
As far as default settings, I didn't include a default ROM. There are many things you should not disable if you want a booting ROM.
eichenberg said:
I keep getting a file is corrupt error when I try to flash?
Click to expand...
Click to collapse
If your ROM is smaller than 52100kb, then it has to be flashed through your SD card.
ace10134 said:
Yo tambien.
The FAQ says that we didn't follow the instructions, lol.
My NBH is +50 MB, so idk what's the problem....hmm...
Click to expand...
Click to collapse
How big is it? See above answer.
Well, as an introduction to topic, you could read the following entry:
http://forum.xda-developers.com/showthread.php?t=1296186
So far, when using "-static" directive for compiler, the applications could be compiled without doing of these steps, so why do I try this? Well, a statically linked executable is embedding all the required libraries to itself, so it's generally too huge. Also, if you compile all the applications statically, you probably link the same library (like C library, for instance) twice or more for every application you compile. This is definitely unnecessary.
It's why, for a few days now, I'm trying to compile the whole GlibC suite for Android (ARM devices, to be precise). The motive behind it is simple: since all Linux applications rely on full-fledged C library (rather than trimmed version like Bionic), if I compile it for this device, I can run every application; given that its compiled for the device.
Since it's Linux kernel underneath, we don't have to worry about changing whole system from Android to native Linux (hopefully )
So far what I did was following (I'm going to write the steps more systematically once I've time, so don't worry if those steps are too vague for you ):
1- Make a toolchain for ARMv7 architecture (which Desire CPU rely on). You can use crosstool-ng etc. or (if you're masochistic enough ) try to make your own.
2- Compile GlibC with this new toolchain of yours, store the compiled libraries in a folder where you can easily access (I keep mine at Desktop/glibc-arm for instance)
3- Edit Ramdisk of the Kernel. To do this, first you must extract the boot.img; then extract the ramdisk, edit init.rc to accordingly, so the libraries can be searched in a folder other than /system/lib (say, /data/lib). You can tweak PATH env-variable while you're at it as well . This is necessary because /system partition isn't big enough to carry all GlibC lib in it, so we can copy the library to some other folder (like /data/lib) and then make the system search for libraries there as well. The point is, since I'm using Data2ext; my data is large enough for this. I'd recommend the same to you if you're willing to go on this road.
After the editing of init.rc, reconstruct ramdisk; make a boot.img with it and flash it to the device.
4- Copy the libraries to the folder of you picked.
5- Compile some test apps (like Hello world etc ) with your cross compiler and place them to your device as well.
6- Test if they're running.
What I've found so far, the cross compiled executable (like simple Hello world), when dynamically linked, gives "no such file or directory" error when tried to be run at the device (WTF, right ). However, when when I do run it with the cross-compiled ld-linux.so (the linker of C library) it runs perfectly. So what I should do to overcome this is, somehow inform the system that this ld-linux.so binary should be used.
I'll keep you updated as I try new things
Till next time, happy Android'ing
ADDENDUM 1:
EUREKA! Found the solution! It's as simple as symbolically linking the library folder of your GlibC as /lib to root file system. You can edit ramdisk accordingly to do this process automatically.
Another thing I'm going to try is finding a way to change the path of the dynamic-linker option of my cross compiler accordingly. Apparently, the cause of the problem was the compiler, telling the application to look for the dynamical linker at /lib/ld-linux.so.3; while it was at /data/lib (in my case). I can put ld-linux.so.3 to /system/lib and change compiler accordingly; but I don't know which way would be the best for flexibility: symbolic linking of /lib to library dir; or putting dynamic linker to /system/lib (the dynamic linker can look for libraries at the "custom" libdir already, since $LD_LIBRARY_PATH is already showing it).
Will try some tweaks now. If I can make it all work, I'll see if I can make a flashable zip or something (also will write whole process step by step
-------------------------------------
ADDENDUM 2!!
Well, I kept you waiting a lot, but wow, was this process head spinning. This was the first time I actually wrote a recovery script; first time I had to use AWK, SED or regex; and first time I wrote such a long scripts Well, whatever, we're done for now..
There are two zip files attached to the end of this thread: One is an installer and other is uninstaller. Just flash the recovery zip and reboot the phone. Your native C or C++ applications should run flawlessly (only added support for this two language for now) if all other dependencies are also met
Happy Android'ing guys; and well, I'd appreciate if you'd buy me a beer for that (or just click thanks, or just say thanks.. If you did all of those, you're my hero )
Here is the hero of the post :
Glibc for Android v0.9.5
Uninstaller for GlibC
NOTE: Uninstallers erase only files, not directories. Ergo, you might need to erase them yourself (had to do it for not to erase your own binaries and such).
HERE'S HOW YOU'RE GOING TO MAKE TOOLCHAIN YOURSELF (making a toolchain):
http://forum.xda-developers.com/showpost.php?p=18356849&postcount=5
CHANGELOG
Code:
Version 0.9.5:
* Ramdisk-boot image editing tools are included in the package, for some systems might not have it.
-------------------
Version 0.9.4:
* A bugfix for a script syntax error which causes GlibC to pass the installation checks but make binaries give "not found" error.
* A bugfix for Bash, not working well, so causing system to freeze at boot.
-------------------
Version 0.9.3:
* A major bugfix for the bug that was causing bootloops.
* A bugfix for scripting errors inside the recovery zip, causing half-installation
-------------------
Version 0.9.2:
* A small patch added that will allow GlibC to be installed with Apt-get without problems.
* Made compatible with the Sibere's new Data2SD solutions
-------------------
Version 0.9:
* Moved configuration files from /data/etc to /system/etc
-------------------
Version 0.8.1:
* Removed a symlink which may cause some Android apps use wrong version of library.
-------------------
Version 0.8:
* Complete recompilation.
-------------------
Version 0.7:
* Fixed a bug which causes Sibere's Data2sd unrecognized if Droidzone's flasher is not used
* Fixed a bug with the installation of locales.
* Included a basic busybox binary and flash_image to make library installation successfull in all recovery systems - was causing problems in some systems
-------------------
Version 0.6:
* Standart C++, MPRF, GMG and MPC libraries are added to the package
* Library profiling support is added
* All libraries are recompiled with PIC (position independent code) for better portability.
-------------------
Version 0.5:
* LibGD included in package - it's a picture manipulation library
* GlibC Version 2.14 - I'm sure even your Ubuntu-Debian machines have older versions now :)
* Locale support added. Your C/C++ programs can use it freely.
-------------------
Version 0.4:
* /tmp support added, necessary configurations are done
* Package manager support is implemented, allows users to install to both MTD and SD-ext in coexistent way (no more had to choose!).
* Developed a flexible structure, thus allowing libraries to be installed with a helper application (it's going to be shipped later)
-------------------
Version 0.3:
* Stripped libraries and binaries for make them smaller
-------------------
Version 0.2:
* Installs to the MTD Partition instead of sd-ext. Needed for inital-time programs to run correctly.
-------------------
Version 0.1:
* Initial version
-----------------------------------------------------
Thank you very much for donations of:
Mr. Brochard and Mr. Huemer
I really appreciate it.
Eureka! Found an overcome!
Well, forgot to say this: if you want the compiled applications to be installed to some place if possible, create a "defaultinstall" file under sd-card root and write "EXT" (for sd-card) or "MTD" (for internal MTD storage) to the file (note that all uppercase).
Install manager first checks this file and if not found, uses default setting found in package (which I wrote /sd-ext generally for not-so-essential stuff ). You can use this functionality to override this setting.
Note that, some libraries and stuff cannot be installed to a different location - package manager handles this and acts accordingly; so don't worry about it
PS: The stuff I keep calling Package Manager is actually just bunch of scripts, so it's not like I wrote a whole suit
Sounds Interesting
Some compiled applications!
Well, if we're not going to use it, then why did we compiled it, right?
NOTE: The following packages don't have any specific order of installation: you can install them at any order you wish. The only exception is APT - it should be installed after DPKG, or otherwise your system will think you didn't install it
For those who hates command-line interfaces: DesirAPT (the APT front-end for Android) is here DesirAPT v1.0.0
For those who would like to run Enlightenment WM in Desire - this is the mediator application for Android: LinuxInAndroid APK
Note that it requires APT and it's dependencies, along with super user privilages.
---------------------
PACKAGE: NCurses Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: It's a shell extension library which is used to format shell (or terminal output) like colorful texts, and such. Default shell might not use it (but it's definitely something necessary for new applications like nano, like "new" bash etc.)
HOW BIG IS IT: Approx. 3.4 Mb.
WHERE TO DOWNLOAD: NCurses Lib. 5.5.9
UNINSTALL?: Available at NCurses Uninstaller
CHANGELOG:
Code:
v 0.4.1 :
* Made Compatible with Sibere's new Data2SD solutions.
------------------------
v 0.4 :
* Complete recompilation with UTF-8 and wide-char support
------------------------
v 0.3 :
* Fixed the Sibere data2sd un-recognization bug
* Added flasher files into the binary for support of all recovery systems.
------------------------
v 0.2 :
* Adding package manager support
------------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Bash
DEPENDENCIES: GlibC Library, NCurses Library, Readline Library
WHAT DOES IT DO: It's the main command interpreter for a linux system (also Android). Normally, Android is also shipped with it, but it's a very lightweight and trimmed version (also annoying - it doesn't support tab completion!). This is 4.2 version (latest now).
HOW BIG IS IT: Approx. 3.8 Mb.
WHERE TO DOWNLOAD: Bash 4.2
UNINSTALL?: Available at Bash Uninstaller/reverter
EXAMPLE OF A COOLNESS: You can change your shell label (the one shows before $ or # sign) by assigning PS1 environment variable. For instance, this : PS1="[\w]\$ " (with quotes) will show your current working directory at every prompt
(More at: http://www.lifeaftercoffee.com/2006/10/31/customize-your-bash-prompt/ )
NOTES: The bash will run the commands that you write initially on /etc/profile automatically. You can define your PS1 values, environment variables (be careful to add "export" before them) there for whole system )
Code:
v 0.7.2 :
* Made Compatible with Sibere's new Data2SD solutions.
------------------------
v 0.7.1 :
* Included automatic bash_completion file (stolen from Ubuntu :D) into package - now even apt-get packages are auto completed!
-------------------------
v 0.7 :
* Recompiled with LibReadline for history and auto-completion abilities.
------------------------
v 0.6 :
* Added Locale support
------------------------
v 0.5 :
* Complete recompilation with new schematics
* HOME directory set to /data/home by default
------------------------
v 0.4 :
* Fixed the Sibere data2sd unregnization bug
* Added flasher files into the binary for support of all recovery systems.
------------------------
v 0.3 :
* Added package management support
---------------------
v 0.2.2:
* Added ENV variable, thus support for /etc/profile shell starter file. You can define new environment variables there which is valid for all system (you don't need to change ramdisk each time now!)
--------------------
v 0.2 :
* "Jobs" support fixed
---------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Busybox Binary
NOTE: Busybox with GlibC dependency is no longer supported, because package update mechanisms require some command interpreter independent of the updated package. In order to support GlibC Update, Busybox binary will no longer be updated with GlibC support. I recommend you to revert back to static, or Bionic-linked Busybox with the link below.
UNINSTALL: Available at Busybox old version reverter
---------------------
PACKAGE: Zlib Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: It's compression library that is used with various applications like Git, Apt, DPKG etc.. It's recommended to keep it there
HOW BIG IS IT: Approx. 350 Kb.
WHERE TO DOWNLOAD: ZLib 1.2.5
UNINSTALL?: Available at ZLib Uninstaller
CHANGELOG:
Code:
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Fixed a bug causing system library to clash with the installed one
* Fixed a bug causing Segmentation Faults in some cases
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: ReadLine Library
DEPENDENCIES: GlibC Library, NCurses Lib.
WHAT DOES IT DO: Readline is a command line and history manager library that's used in some command line tools like socat. I personally don't know what else uses it
HOW BIG IS IT: Approx. 1.4 Mb.
WHERE TO DOWNLOAD: Readline 6.2 - v0.1
UNINSTALL?: Available at Readline Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: OpenSSL Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: OpenSSL Library is Secure Socket Library that is used in various secure applications and web browsers.
HOW BIG IS IT: Approx. 5.9 Mb.
WHERE TO DOWNLOAD: OpenSSL 1.0.0e
UNINSTALL?: Available at OpenSSL Uninstaller
CHANGELOG:
Code:
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Fixed a bug causing system library to clash with the installed one
* Fixed a bug causing OpenSSL to do Segmentation Fault and crash
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: APT - Advanced Package Tool
DEPENDENCIES: GlibC Library, Curl Library, Zlib library
WHAT DOES IT DO: APT is a front-end for DPKG which installs, removes, updates etc. packages easily. APT also supports dependency tracking, and automatically removal of unneeded packages.
HOW BIG IS IT: Approx. 1.8 Mb.
WHERE TO DOWNLOAD: apt 0.8.10.3
UNINSTALL?: Available at apt Uninstaller
CHANGELOG:
Code:
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Apt now assumes required packages are pre-installed; thus doesn't re-download them unnecessarily ..
* Changed repo host - configuration in sources.list is changed.
--------------------
v 0.1.1 :
* Configuration files are added. Apt-is ready to use out-of-the-box now..
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Cryptography Package
DEPENDENCIES: GlibC Library , Zlib Library, PTH Library, Readline library
WHAT DOES IT DO: This package contains some cyrptographic libraries necessary for various applications. If you're to use APT, it's recommended to install this package, for since it also carries GPG package inside. Package includes
GnuPG (2.0.18), LibGPG-error (1.9), LibGcrypt 1.5.0, LibKSBA (1.2.0), LibAssuan (2.0.2)
HOW BIG IS IT: Approx. 8.2 Mb.
WHERE TO DOWNLOAD: crpyto package
UNINSTALL?: Available at crpyto Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: cUrl
DEPENDENCIES: GlibC Library, OpenSSL Library, Zlib library
WHAT DOES IT DO: cUrl is a secure web client that supports HTTPS protocol. Package includes also libcurl which provides secure web connection API
HOW BIG IS IT: Approx. 916 Kb.
WHERE TO DOWNLOAD: cUrl 7.23.1
UNINSTALL?: Available at cUrl Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Re-Initial Release
---------------------
PACKAGE: Dpkg - Debian Package Manager
DEPENDENCIES: GlibC Library, Zlib library, Tar binary, Linux Utils
WHAT DOES IT DO: Dpkg is the main package for Debian package managing structure. DPKG is the responsible application for installing, removing and updating packages. Using with Apt (or other front-end) DPKG allows users to install new packages easily.
HOW BIG IS IT: Approx. 7.5 Mb.
WHERE TO DOWNLOAD: dpkg 1.16.1.2
UNINSTALL?: Available at dpkg Uninstaller
CHANGELOG:
Code:
v 0.4 :
* Fixed a bug which was causing GlibC not to upgrade from APT.
--------------------
v 0.3 :
* Links renewed
--------------------
v 0.2.1 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.2 :
* Fixed a bug that causes some big archives not to install
* DPKG now informs system that GlibC, OpenSSL, Ncurses libraries are already installed (necessary for DPKG anyway)
---------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: PTH - Portable Threads Library
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: PTH is a POSIX compliant thread library that is used in some linux applications.
HOW BIG IS IT: Approx. 251 Kb.
WHERE TO DOWNLOAD: pth 2.70
UNINSTALL?: Available at pth Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Tar Archiver
DEPENDENCIES: GlibC Library
WHAT DOES IT DO: TAR is and old and multi-purpose compression format used in various places. This tar suite is designed to be 100% compatible with the PC one (busybox one is not so good at this).
HOW BIG IS IT: Approx. 3.7 Mb (1 MB in System partition).
WHERE TO DOWNLOAD: Tar 1.23
UNINSTALL?: Available at Tar Reverter
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
---------------------
PACKAGE: Linux Utilities
DEPENDENCIES: GlibC Library, Ncurses Library
WHAT DOES IT DO: This package includes low-level linux tools that is necessary for a system to run in well manner. Busybox do provide many of those, but they are quite crippled versions - so high level applications may crash using busybox ones (like DPKG).
HOW BIG IS IT: Approx. 5.6 Mb
WHERE TO DOWNLOAD: Linux Utils 2.20
UNINSTALL?: Available at Uninstaller
CHANGELOG:
Code:
v 0.1.2 :
* Made Compatible with Sibere's new Data2SD solutions.
--------------------
v 0.1 :
* Initial Release
Where the hell is the other packages?
Since we know have an APT repository for our distributions, in order to follow all the packages from one source, they won't be published in zip form anymore. In order to obtain them, or update them if you have older versions, you can use apt :
Code:
apt-get install <packagename>
The packages distributed can be list with the following command:
Code:
apt-cache dumpavail | grep Package:
OR, you can use DesirAPT to do these works.
See you around!
NOTE
Before you start anything, don't forget to install build-essentials package. Under ubuntu, the command necessary for it is: sudo apt-get install build-essential - I don't know about other distros..
-------------------------
Well, as promised, now we should write the steps; right?... Now, before we begin, I should really warn that the process is really head spinning if you're to do all by yourself; so take heed to the warnings I give you (I learned the hard way)
Well, first thing is first, we need a Cross Compiler Toolchain, properly built that allows us to build applications, libraries etc. There is one toolchain that's already given to you with Android Native Development Kit (called NDK) but that one is quite restricted because it's built with support for Bionic (trimmed C library that is presented in Android), not Glibc or uGlibC. If you want to develop more native-like applications (especially linux programs) you need GlibC or uGlibC. You can try to build these libraries with that toolchain too, but don't do that, because it's going to fail as well. The reason is that some sort of Chicken-Egg problem is eminent in GlibC-GCC compilation
Let's put the steps to be followed first to build a nice toolchain. I assume you're using Linux - because the tools are developed for this platform only. If you're going to use them in Windows, you need Cygwin or such tools but I can't supply help about that, for since I didn't use them before at all. Google is your friend about this
(Note, the packages I wrote at this list are available at GNU's website www.gnu.org freely, open source)
1- We're going to build "binutils" first. This package includes some important stuff like assembler, linker, archiver (for libraries) etc..
2- We're going to build GCC's prerequisites. These are GMP, MPRF and MPC packages.
3- We're going to build a "bootstap" gcc (God, I hate that name. I like to call it "naked gcc" more ). This GCC just converts source codes to pure assemblies: thus cannot generate linkages or such. We're going to use it to build "actual" tools we're going to use.
4- We're going to extract Kernel source/headers - use Desire Kernel's here. There is some copying, and such to be done tho.
5- We're going to make GlibC headers installed, which will allow us to build more "complex" gcc, which can link applications with those libraries when the library binaries are given (so such thing is there yet, but we fool it )
6- We're going to build a very limited GlibC which will give us support for building more "complex" gcc.
7- We're going to build GCC again. This is called "Pass 1 GCC" or "GCC Stage 1". This GCC can link applications to libraries, with the information in Kernel headers and library headers (it's why we give it the headers, so it can create applications suitable with the Kernel architecture).
8- We're to build actual GlibC now. This glibC will be used for our compiled applications, statically or dynamically. You can, at the end of this step, copy the files to your devices and they would work, but picking files here is harder, so I'd recommend you to leave this alone for now
9- We're going to build "Pass 2 GCC" or "GCC Step 2" This is a full fledged GCC that can do anything we want
Complex isn't it? This is precisely why I recommend you to use Crostool-NG. The other tools (like Buildtools or Crosstool) (sadly) don't create GlibC based toolchains, or use old versions of them, so using this one is recommended. This package automatically will download, setup and link your all toolchain without you worrying about something (believe me, this is what you need. I gave 8 days without this to create a working GCC and Crosstool-NG made another one to me in 50 minutes. )
Well, however, Crosstool-NG won't create "nice" applications (they'll run allright, but they won't be optimized) without some settings done, so, let's go there. First, we need to install Crosstool-NG itself. To do that; go to http://crosstool-ng.org/ website, download and extract it to some place. Even though the steps are written in Crosstool website, you don't need all commands there (like setting PATH is unnecessary). The commands you should use is, after CD'ing to the Crosstool dir;
./configure --prefix="</some/place>"
make
make install
cd "</some/place/bin>"
./ct-ng menuconfig
I used prefix as /home/ahmet/crosstool for instance. Note that this is not going to be where your toolchain is, this is where your "toolchain creator" is .
---- NECESSARY KERNEL HEADER CHANGES ----
OK now, before we start compiling; we need to make some folder moving, copying etc. in Kernel directory. This is needed, because tree structure changed a tad in 2.6 kernels and unless you compiled this kernel before, some directories won't be in their correct place for our cross compiler. Switch to the directory which you extracted the kernel image. Now, from now on, I'm going to assume you're an Qualcomm/MSM board (like Desire, Nexus One etc.) user; but if you're not, change my descriptions accordingly:
1- Go to <kernel dir>/arch/arm/include folder. Copy "asm" directory and paste it into <kernel dir>/include directory.
2- Go to <kernel dir>/arch/arm/mach-msm/include folder. Copy "mach" directory and paste it to <kernel dir>/include/asm directory. It's going to complain that there is another mach folder there and will ask if you want to merge/overwrite. Say yes to all questions.
Now our kernel headers folder is showing a Desire device. Note that if you're not a Desire user, you should use your cpu folder instead of ARM and your board manufacturer in mach-xxxxx instead of mach-msm.
Note this kernel directory, we're going to use it to configure crosstool..
--- CONFIGURING CROSSTOOL ---
After issuing the commands, the crosstool-ng will give you a configuration menu. Most of the setting here are unchanged, but the ones you should change are given below.
1- Paths and misc options
a) Try features marked as EXPERIMENTAL (this is needed to build a toolchain with the latest GlibC support) -> Enabled
b) Local Tarballs directory -> The folder address that you want downloaded stuff to be kept. You might use them again (like for compiling GlibC again for device, you will use them
c) Save New Tarballs -> Enabled ( so that new downloaded files aren't erased )
d) Working Directory and Prefix directory -> Normally you don't have to change them, but you can if you want to install your toolchain to some other location. CT_TARGET signifies your target name (like arm-msm-linux-gnueabi - arm is cpu model, msm is vendor (can be anything), linux is showing the binaries are for linux system (you can use android, but then you'll get not GlibC but Bionic) and gnueabi shows you're going to use open-source EABI structure for your executables. The other option is ELF but EABI is more flexible (because also supports ELF).
e) Strip all toolchain executables -> do it if you don't want to debug GCC itself. this makes toolchain smaller of size, and a tad faster.
The other options can stay the way they are, or you can change them accordingly here. You can get help with ? key, and if you don't understand anything, just leave them default - there are very complex things there that you don't need to know if you're not planning to be a expert on subject
2- Target options
a) Target Architecture -> arm should be selected, cos Desire uses ARM. If you plan to make toolchain for, say, powerpc, pick that.
b) Endianness -> Should be little. ARM processors in Desire uses little endian system.
c) Architecture level -> "armv7-a" this is should be written. Desire uses ARMv7 based instructions and if you leave here empty, the applications will be built with armv5 support - they're still going to run but not use advanced v7 features.
d) Use Specific FPU -> "neon" . Desire uses NEON structure for floating point arithmetic, and if you leave here empty, the applications will not use Desire's FPU abilities (everything will be software based, which is slower)
e) Default instruction set mode -> arm . You can use thumb here for allegedly faster code but not every build system supports it. Leave it ARM.
f) Use EABI -> enabled. EABI is necessary for most flexible desing of binaries.
The other settings be as they were.
3- Toolchain options
a) Tuple's vendor string -> You can leave here empty if you don't want to; it's not necessary to use a string here. I used "msm" but you can write anything. This string here is used in toolchain name as arm-xxxxx-linux-gnueabi, so make it short, I recommend
b) Tuple's alias -> make it something short like "arm-linux" This alias string is used to make calls to your toolchain easier. Instead of writing arm-msm-linux-gnueabi-gcc everytime, you can use arm-linux-gcc to compile your applications. Can write anything here (like toolchain if you want to use toolchain-gcc to compile your applications)
The other settings can stay as they are, for since default values are the best in our case. You can tweak them only if you know Desire cpu like the back of your hand
4- Operating system
a) Target OS -> Use "linux" if you want the applications to run in Android and Linux; use "bare metal" if you're to compile low level applications which won't use linux headers. Default is linux.
b) Get Kernel headers from -> say "pre installed" because otherwise it's going to download standard Linux headers from internet. We needed some changes, so this option is compulsory to be "pre installed"
c) Path to custom headers directory/tarball -> Path to your kernel source folder - which you made changes above. WARNING: I say specifically extracted, because standart tarball won't work for us. We're going to make some changes in kernel directories, which is non-standart (Instructions were above).
d) This is a tarball -> No . We're going to use extracted folder.
e) Build shared libraries -> say "yes"; because we want dynamic linkage, not static one
f) Check kernel headers -> say "no" otherwise some unnecessary check causes compilation to stop.
5- Binary utilities
a) Binutils version - pick the latest one, 2.20.1a. If you use older versions with newer GCC/GlibC, it's not going to succeed.
Leave others as they are, they are not big deal..
6- C Compiler
a) GCC Version -> pick 4.6.1 for since it's the latest and most bug free. Just stay away from 4.5
b) Pick the languages you want support for. I've read online that Java is a tad troublesome in Android platform, for since Java in Android uses Dalvik, not Sun systems. You can try it at your second toolchain if you want Definitely pick C++ tho
c) Link libstdc++ statically -> say yes; it really saves you from big configure scripts later - apparently needed to avoid PPL problems as well
d) Compile lidmudflap/libgomp/libssp -> say no. These libraries are not the most suitable libraries for ARM platform (at least at cross-compiler level. You can compile them later, if you want, with your cross-toolchain.)
You can leave others as default
7- C library
a) C library -> gLibC (recommended). You can use other libraries which are eGlibC (embedded Glibc, like Bionic) and uGlibC (micro-glibc) too, but GlibC is the most spanning solution above those. The libraries are bigger, but they support more.
b) glibC version -> Use 2.13 (experimental) it compiles just fine, and you get a new version of GlibC. Not the newest, but that's ok
c) Threading implementation -> nptl (recommended) . You can use linuxthreads too, but nptl is more advanced ( like giving support to Thread-Local-Storage and such)
d) Force Unwind Support -> Enabled . If you don't use this option, for since we're making this toolchain from scratch, it's going to give you error during compiling that it couldn't find necessary headers (we're building them now, dumbass!)
Leave others default if you don't know what they're about
8- Companion Libraries
Well, go and pick the latest versions, even though when it says "Experimental", otherwise your GCC compilation will give you error about these libraries being old.
After setting these settings, press ESC key twice till it goes way back and ask if you want to save configuration; say yes.
--- STARTING COMPILATION ---
Now to start compilation write
./ct-ng build.
This is going to take approx. 45 minutes, so go watch some episodes of Big Bang Theory or something. Normally, there should be no errors but if there is; most probably either you made a wrong configuration, or didn't set your kernel folders well. Try again with other settings, google your problem etc..
After this process, you're going to have a cross-compiler at your use at /home/<username>/x-tool/arm-<vendor>-linux-gnueabi/bin folder. Note that Crosstool-NG automatically makes this folder read only to make you prevent screwing your toolchain You must edit your path variable to show "/home/<username>/x-tool/arm-<vendor>-linux-gnueabi/bin" folder as well for less headaches during compiling later
Whilst compiling other application, most used configure options you're going to use is "--host=arm-<vendor>-linux-gnueabi" and "--prefix=/some/folder/you/want/this/application/copied". After compilation, you can send binaries to your phone from prefix folder.
More options about GCC and Configure is available at GCC and Autoconf man pages; check them as well
Happy cross-compiling people
Woah, amazing work, congrats!
Sent from my HTC Desire using XDA App
Interesting..It answers some of my unanswered queries regarding cross compiling.. Thanks...Please keep documenting your progress.
THIS POST IS ONLY FOR THE BRAVE MAN
These are packages which are compiled; but not installed and/or tested by myself. Please test them and inform me if they work (PM me if they work or not; it's better that way ).
--------------
NO PACKAGES HERE! Frankly, I did test virtually all of them. They might not work as expected maybe, but at least they don't impede functions of device
Developer Log
Now while preparing a suitable (and as flexible as it can) recovery zip; I realized that instead of editing ramdisk, I can also use init.d script to link /lib to /data/lib. This also allows some flexibility to user (i.e. move library folder around -if needed- and edit init.d script accordingly and still have a running system).
What baffles me most is PATH env-variable. Apparently, if I set it at init.d level, it's not exported quite well - apparently, there is a user mode switch between init.d script run and ramdisk loading process (because PATH variables at Ramdisk are exported to all applications, whilst init.d ones are not) and the only way to set PATH variable for all processes is editing Ramdisk (AFAIK)...
And another point: what if kernel doesn't support init.d? (Go to hell if you're reading this post with a kernel which doesn't ) Ramdisk solution is quite general (i.e. works for everyone) but it's a little harder to edit with scripts and not as flexible as init.d method. I think it's safe to assume that there is init.d support at this level
Maybe I can create two versions (init.d one and ramdisk one) of recovery zip's.. Keep in touch guys..
theGanymedes said:
Now while preparing a suitable (and as flexible as it can) recovery zip; I realized that instead of editing ramdisk, I can also use init.d script to link /lib to /data/lib. This also allows some flexibility to user (i.e. move library folder around -if needed- and edit init.d script accordingly and still have a running system).
What baffles me most is PATH env-variable. Apparently, if I set it at init.d level, it's not exported quite well - apparently, there is a user mode switch between init.d script run and ramdisk loading process (because PATH variables at Ramdisk are exported to all applications, whilst init.d ones are not) and the only way to set PATH variable for all processes is editing Ramdisk (AFAIK)...
And another point: what if kernel doesn't support init.d? (Go to hell if you're reading this post with a kernel which doesn't ) Ramdisk solution is quite general (i.e. works for everyone) but it's a little harder to edit with scripts and not as flexible as init.d method. I think it's safe to assume that there is init.d support at this level
Maybe I can create two versions (init.d one and ramdisk one) of recovery zip's.. Keep in touch guys..
Click to expand...
Click to collapse
Well, what's the difference between init.d and ramdisk, when init.d support means running busybox runparts from ramdisk?
Droidzone said:
Well, what's the difference between init.d and ramdisk, when init.d support means running busybox runparts from ramdisk?
Click to expand...
Click to collapse
Well the difference is caused by Unix variable propagation.
Normally, when ramdisk is loaded and init.d scripts are starting to run (with run-parts binary) the exported variables are valid only for the scripts that run-parts do run. Since Linux only allows child processes to inherit variables from host, when runparts finishes job; defined variables within the scripts vanish.
When you add variables to Ramdisk (init.rc) directly, since variables become declared from init directly (and since init runs all the processes on boot) the variables automatically become available for all processes.
That's the difference I meant
Got it..So the variables from init.rc persist till shutdown..
Droidzone said:
Got it..So the variables from init.rc persist till shutdown..
Click to expand...
Click to collapse
Precisely. It's why the variables (even those which defined by export keyword) are vanished when the system booted up (unless defined in ramdisk)
Well, I've gotta learn RegEx one day anyways
Recovery zip is done! Now, I should test it on my device first
I'm also going to make a uninstaller script I think. It's really messy to clean this up otherwise
Android binaries and dependencies
I've examined the dependencies of all the binaries in /system/bin and /system/xbin in Android system. Too sad that the list contains some non-standart libraries (that's not that bad, sure you can find their sources).
Also, another problem is that you need to compile the binaries themselves from the source code as well (with the GlibC libraries) - which is near to the compiling the whole ROM itself - I'm not even sure if we can find source code (will check the Android source code itself when I've time)
The dependencies in my system, for instance, are as follows:
So that's a no-go for people with closed source system...
@theGanymedes, do you know if the system can mount ext4 at init.rc level (on early init) without using busybox?
Well, it can, but the kernel needs ext4 modules (or direct support). I checked the native mount source, it actually does nothing much more than simply calling kernel's ioctl or mount system call..
I think a simple tweak at ramdisk is all you need for that (and a supporting kernel, of course )
Weird thing about previous issue is, I have the source codes of most utilities, I can compile them too, but I don't have proper makefiles and I'm too lazy to write them myself - that's a lot of trial and error.
Well, apparently, we're not going to be able to switch from Bionic to Glibc completely. I think I can make them coexist tho.
theGanymedes said:
Well, it can, but the kernel needs ext4 modules (or direct support). I checked the native mount source, it actually does nothing much more than simply calling kernel's ioctl or mount system call..
I think a simple tweak at ramdisk is all you need for that (and a supporting kernel, of course )
Click to expand...
Click to collapse
Yup, my compiled kernel has direct support.
This is how mtd is mounted..
mount yaffs2 [email protected] /data nosuid nodev
And this is how I mount ext4 from init.d:
/system/xbin/busybox mount -t ext4 -o barrier=0,noatime,nodiratime,nosuid,nodev,nobh,nouser_xattr,noauto_da_alloc,commit=50 /dev/block/mmcblk0p2 /data
I need to change it to init.rc (init) language...
theGanymedes said:
Weird thing about previous issue is, I have the source codes of most utilities, I can compile them too, but I don't have proper makefiles and I'm too lazy to write them myself - that's a lot of trial and error.
Well, apparently, we're not going to be able to switch from Bionic to Glibc completely. I think I can make them coexist tho.
Click to expand...
Click to collapse
Earlier this month, I was trying to compile dosfstools for Android. But got stuck at static cross compile with ndk gcc
Droidzone said:
Earlier this month, I was trying to compile dosfstools for Android. But got stuck at static cross compile with ndk gcc
Click to expand...
Click to collapse
So, I'm not barking for the hollow tree here.. That's a relief. Seeing that this post is not that active, I was starting to think I'm working in vain..
Well, now, apparently init version of mount is quite restricted about options. The ones it supports are given in mount.c as:
Code:
"async", "atime", "bind", "dev", "diratime", "dirsync", "exec", "move", "recurse", "remount", "ro", "rw", "suid", "sync", "verbose"
I'm checking the mount.c source as we speak. I'm going to inform you if I can find something.
EDIT: BTW, also "no"+options are recognized (like noatime)
ADDENDUM:
The internal mount is exactly the same as the mount we use at busybox. So, most probably, it's the same was in init script.
Try this line
Code:
mount ext4 /dev/block/mmcblk0p2 /data noatime,nodiratime,nosuid,nodev,nobh
Notice that I erased some flags. You might also try to add them, but check if this line works first.
Old Tool
Added on Mar 05, 2014
Updated CTR v2.2 for MTK devices with ubifs ONLY
And Thanks to dhinesh77 for countless beta-testing & most importantly, Master Shifu carliv for looking into those ubifs source code to make it work on MTK devices....
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Download link here...
Solution to cannot see whole sdcard is here by Master Shifu himself, it is actually a new feature/ function... :laugh:
----------------------------------------------------------
Added on Jan 27, 2014
Updated CTR v2.2 Recovery for MT6575,15, 77, 17, 89, 82, 88, 92
MT6572 (ext4 only, ubifs not supported)
Pls support by donation or at least drop your thanks here to encourage Master Shifu for further development...
Download link here
----------------------------------------------------------
Added on June 02, 2014
New Porting Tool CTRv-1.4 for ext4 devices ONLY. . .
Known problems : Touch not working on some MTK devices . . .
Any bugs report here . . .
----------------------------------------------------------
Added on June 10, 2014
New AIO Porting Tool Easy Magic CTR v2.4 Installer for MTK for ALL MTK Cortex-A9/ A7 devices ONLY with either mtd, emmc, ubifs or custpack partition . . .
Any bugs report here . . .
Updates
Thanks to surfturtle for reporting . . .
Workaround : Use Manual mode & select 720x1024 that is the screen res for 720x1280 . . .
This is an AIO porting tool so go ahead & try the differrent res at Manual mode, the unpack/ repack feature, play around with it & you'll learn what is needed for porting custom recoveries . . .
----------------------------------------------------------
Added on June 17, 2014
Users using XP & 720x1280 MTK devices use this fix . . .
----------------------------------------------------------
Added on July 01, 2014
CTRv2.5 refer to here . . .
----------------------------------------------------------
Notice to annoying n00bs & newbies
Most of your questions are already answered on this thread so pls read it...
1) Either your MTK is still ro.secure=1 then use this method here then EXIT/ CLOSE it first then re-start the porting tool...
2) i've already put in alot of error checking to make sure this porting tool works, either the Auto or Manual port, it will leave behind Ported-CTR folder then manually install it via SPFT when it fail to auto install.... Most probably why it fail to install is b'cos you use SuperSu did you bother to look at your MTK device & grant access to Root Shell... There has been cases where the stock recovery is already corrupted then this tool will also port a corrupted CTR too. Re-install your stock 3e recovery.img & make sure you can boot into it then only use the porting tool again or just use the manual port... The differences is Auto will upload whatever recovery already at your device be it older CWM or TWRP & it will repack it with CTR ramdisk. While Manual will use whatever at your stock 3e -> factory_init.project.rc, meta_init.modem.rc, ueventd.rc & etc... Refer to this by Master Shifu carliv... :good: This tool has no log b'cos it is actually a simple copy & paste program, thats what it actually do.... :laugh:
3) Pls bear in mind that this porting tool has been downloaded by many & confirmed working BUT i can't guarantee that it will work flawlessly on your MTK device so continue trying & report back the solution if you found one...
4) This has been mentioned many times on this thread, if you really can't get it to work then don't just say your porting tool doesn't work...
Instead list out everything then it'll be easier to trouble-shoot
a) What OS you are using on the PC & your MTK...
b) Did you disable UAC & Anti-Virus on your PC
c) Did you execute the porting tool at C:\ drive if you're using XP else then at your Desktop READ what the porting tool says & it will ask you to wait then wait for it to continue without pressing the OK button...
As said many times, this porting tool uses Russian Master Shifu Michfood Repack Utils Huge Credits to him, it is actually DOS program with cygwin dll working at the back so all DOS limitation still applies such as it will ONLY operate properly when it is executed at the Desktop on latest OS... Tested working on XP to 8.1
As much info as possible then it'll be easy to identify where it goes wrong & did you bother to read 5 to 10 pages from the back then you would have know what is the latest story...
Last but not least, i didn't compile CTR so any features not working / bugs found pls report it here BUT again, read the whole thread first as most already answered at that thread...
Q&A
1) Touch not working, refer to here...
2) MTK Alcatel devices refer to here & here... Supported on CTRv2.4
3) All MTK devices supported except this...
4) Inverted screen solutions -> Compile your own
5) CTRv2.5
Nice one bro.....will be helpful for many.......!!:good:
Good to see you back......!
--------------------
P.S: Thinking of creating a Multi-tool for MTK6573.......what are features that can be added bro ??
Yo, Bala bro, been quite busy with work, until now only manage to finish this tut...
Yeah, i was thinking about that too, to mod dsixda's android kitchen just for MT6573 platform that includes Bruno Martins's unpack/ repack boot.img, unpack/ repack recovery & port it to CWMR like this tut, replace a2sd with data2ext or ad2sdx; only this two mod stable on MT6573 platform so far that i have tested...
actually did try but give up half way as my scripting skill is still at novice level...
did read it on some other forum that someone is actually doing that too but i never see it got release though...
Well i guess we need dsixda expertise to be able to do that but he is retired now...
Added on Sept 04, 2012 Info Update
Dark Tremor's a2sd/ Apps2sd works well on MT6573 platform after all...
i was using the last version 2.7.5.3 Beta 04 all this while & i always use a2sd datasd all the time & it FC all apps after a few weeks of using/ sometimes a few days even after a fresh install...
After all, DT_a2sd/ apps2sd is actually apps to sd & i always push it as data2sd...
Only until recently that i play with Android Kitchen, use it to extract my system.img & update it with its built-in Darktremor Apps2SD version 2.7.5.2, it works extremely well because 2.7.5.2 doesn't support a2sd datasd feature...
So guys, if you are using DT_a2sd beta 4, don't use the command a2sd data2sd instead use a2sd cachesd...
You can checkout my other post here
great tools and description
hello y2yu,
Glad you find it informative...
According to this site, there will be another 2 new cpu after MT6575/ MT6577... (use google chrome for translation)
This means MT6573 is 5 generation behind MT6588 & it is still unexploit with all info/ tools scattered all over the web...
Thats where i decided to compile all these info & put it here... :good:
Now that i check, i've bought my first mediatek back in 2008...( never knew it until i check it just now ) :silly: It has serve me well for almost 2 years in spite of dropping, a few times from 8 feet height when i was on a ladder & it still works ! It was the last drop that spoilt the mic & render it unuseful. It can still make & receive call to date but the other side can't hear what i say...
At that time, made in china phone was famous for its extra loud speaker/ ringtone but doesn't support android back then...
haha, enough of history, have you manage to port CWMR to your MT6573 ? In fact, i have manage to create a plugin for dsixda's Android Kitchen which can port CWMR to any MT6573 with a few copy & paste features just like Android Kitchen... :good:
Still testing it, may be you would like to be the first beta tester...
Thank you so much for this. I managed to "port" cwmr to my phone without going through the build hassle. Thanks also go to koush for the builder. I had downloaded the source but hadn't managed to completely set up my build environment as there are a couple of gotchas to iron out for ROM development.
Anyway, this serves as a good precursor to actually porting a custom recovery to new devices. Just one problem - cwmr does not recognise any of the hardware buttons for the select action. I can only scroll. The phone has 2 side buttons for volume control, 1 power button on top, and at the bottom on the home row there is a home button, the menu (these 2 also scroll, in stock recovery the home button selects), the previous, and the search. [1][2]
Do you happen to have any cure for this? Is there some place I could remap hardware buttons? One more thing. I made sure root shell access was configured but adb shell will not work (insufficient permissions). Also, adb devices, as is the case for stock recovery, will return question marks. Any idea?
edit: It is important to mention that the flashing had some errors:
Code:
/mnt/sdcard # flash_image recovery recovery.img
mtd: read error at 0x00000000 (Out of memory)
mtd: read error at 0x00020000 (Out of memory)
mtd: read error at 0x00040000 (Out of memory)
mtd: read error at 0x00060000 (Out of memory)
mtd: recovery successfully wrote block at 0x00000000
mtd: recovery successfully wrote block at 0x00020000
mtd: recovery successfully wrote block at 0x00040000
mtd: recovery successfully wrote block at 0x00060000
... <snip>
... <snip>
... <snip>
mtd: recovery successfully wrote block at 0x00420000
mtd: recovery successfully wrote block at 0x00000000
The flash of the stock recovery goes without any error.
[1] http://symphony-mobile.com/index.php?route=product/product&path=63&product_id=75
[2] http://www.tinno.com/en/productinfo.aspx?proid=128
u r most welcome, jason...
i think the button key map is actually built inside /sbin/recovery so there is nothing much you can do about it unless you build the whole recovery from sources & change it from there...
i do have feedback from fellow xda member that has the same problem flashing recovery with error however he reported back, all menu options at cwm works fine...why don't you use mobileuncle tools, its easier that way...found another flashing tool for ZTE, reported unknown image but it works fine on MT6573 platform too...
As for the adb shell at cwmr, it should work by default & if it doesn't then you have the check default.prop & make sure ro.secure=0 As for stock recovery, mine doesn't work at all...
i think after 6.0.0.3 version, ported cwmr has the camera button as enter key for MT6573 if you built it from koush builder...
yuweng said:
u r most welcome, jason...
i think the button key map is actually built inside /sbin/recovery so there is nothing much you can do about it unless you build the whole recovery from sources & change it from there...
i do have feedback from fellow xda member that has the same problem flashing recovery with error however he reported back, all menu options at cwm works fine...why don't you use mobileuncle tools, its easier that way...found another flashing tool for ZTE, reported unknown image but it works fine on MT6573 platform too...
As for the adb shell at cwmr, it should work by default & if it doesn't then you have the check default.prop & make sure ro.secure=0 As for stock recovery, mine doesn't work at all...
i think after 6.0.0.3 version, ported cwmr has the camera button as enter key for MT6573 if you built it from koush builder...
Click to expand...
Click to collapse
Crap, then I have to dig through the sources really hard. This phone has no camera button.
If I'm not wrong the last time I checked "mobileuncletools" uses flash_image. Either that, or nandwrite, or failing that, dd. Coming from a Linux and UNIX background I'm more comfortable with the simpler underlying commands rather than a complex front-end wrapper around those commands. NAND images have some peculiarities so we kinda have to deal with it I guess.
I had triple-checked that ro.secure != 1 I think this is probably a hardware issue where during recovery there is no bridging interface exposed.
Anyway a couple of other things related to the documentation side of this:
* Why not just upload your own recovery.fstab to the builder instead of editing it later?
* Changing the fstab is only needed for those who have an ext-sd, i.e. a second partition for the memory card
* The bin/ folder is empty, and the lib/ folder only contains the ext2 module, so if above not needed, this is also not needed
So in the end, I think we can simply advocate use of the builder as-is. What do you think of putting up a list/database of MTK phones and some details? Like rootable or not, cwmr available or not, etc. I think RootzWiki would be a good place for that?
AFAIK, most readers at xda are non-registered, only when they are stuck somewhere or they really needed help then only they'll register & start posting; that is including me !
You can see my other post where it is nearing to 300 over downloads while the MTK phones list feedback from users is less than 10 !
AFAIK, all MT6573 are root-able & all needs data2sd mod. There are so many apps & games at google play, MT6573's 256 or 512MB internal memory gets filled up pretty fast !
On adb shell, did you have all the three adb files (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) & on linux, i use ./adb shell to get it to work...
yuweng said:
AFAIK, most readers at xda are non-registered, only when they are stuck somewhere or they really needed help then only they'll register & start posting; that is including me !
Click to expand...
Click to collapse
Very true.
AFAIK, all MT6573 are root-able & all needs data2sd mod. There are so many apps & games at google play, MT6573's 256 or 512MB internal memory gets filled up pretty fast !
Click to expand...
Click to collapse
Indeed. I actually want to try just bind-mounting data to a second partition, but I don't know whether init scripts are supported on this phone (would be better instead of editing the init itself). But I will also try this data2sd mod, haven't looked at it yet. After clearing out loads of preincluded apps I was happy for a while, but am now running out of space again!
On adb shell, did you have all the three adb files (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) & on linux, i use ./adb shell to get it to work...
Click to expand...
Click to collapse
Actually I have the Android SDK set up already on my system, so everything is conveniently there including adb. I will have to find some other day to troubleshoot why the bridge would not work during recovery.
re-packing error
Now I am doing this on Xubuntu so maybe that's why it doesn't work:
I get the following when trying to repack:
MTK-Tools by Bruno Martins
MT65xx repack script (last update: 31-07-2012)
Repacking recovery image...
Ramdisk size: gzip: unpack/ramdisk-repack.cpio.gz: No such file or directory
Could not open ramdisk file: ramdisk-repack.cpio.gz
Any ideas?
Unpacking is no problem.
This Android Kitchen plugins only work with cygwin...
Even unpacking shouldn't have work because mkbootimg & 7z is windows exe...
i'm in the mid of modding it so that it can work on linux too...
Thanks for your reply yuweng. 7z is available as a plugin for Ubuntu too.
In the mean time I will try another website which I already posted a link before.
http://www.slatedroid.com/topic/32450-how-to-unpack-repack-systemimg-properly-using-linux/
breaky9973 said:
Now I am doing this on Xubuntu so maybe that's why it doesn't work:
I get the following when trying to repack:
MTK-Tools by Bruno Martins
MT65xx repack script (last update: 31-07-2012)
Repacking recovery image...
Ramdisk size: gzip: unpack/ramdisk-repack.cpio.gz: No such file or directory
Could not open ramdisk file: ramdisk-repack.cpio.gz
Any ideas?
Unpacking is no problem.
Click to expand...
Click to collapse
It will work on any GNU/Linux as long as you have the proper tools installed. Almost all tutorials for Android "modding" are Cygwin-based, which basically emulates a GNU system on Windows (so you can skip all parts about "setting up" anything). Here your file does not exist, please double-check that it does. This is a perl script which utilizes gzip, gunzip, and cpio. Make sure these are available as well.
Btw, this is independent of Android Kitchen. You don't need that if you're using the builder. Android Kitchen is just a front-end to modifying ROMs. So skip the Kitchen for now and do this manually.
Again, the "another website" you link to is about backing up real filesystems (which the boot and recovery partitions are not). See: http://forum.xda-developers.com/showthread.php?t=1744265&page=2
yuweng: What benefit does using the Android Kitchen have over simply using the builder? All you need is a rebuilt /sbin/recovery along with the resources in /res, and optionally an ext2.ko if it does not exist on the phone itself.
This is just a simple tool for n00b/ newbie...
i was a n00b six months ago & even now my android knowledge is still half empty...
As the first post says, there are hundreds if not thousands of android phone based on MT6573 SoC design, each with their own recovery.img-kernel.img & AFAIK, non is compatible for use on others...
i simply provided a plugins based on Android Kitchen so that even a n00b/ newbie can port cwmr to their MT6573 simply by just drag & drop files to it... You are a programmer by profession i presume, so this is chicken feet to you but to a n00b/ newbie they don't no even where to start, like i did... :laugh:
you'll be surprise if i tell you the top download of my tuts is rooting & installing busybox !
As for the builder, you still need to unpack it, copy few files over & repack it with bgcngm's MTK-tools for it to work on MT6573...not alot of n00b/ newbie know how to do that !
the intention of this plugins is to be able to port cwmr to any mt6573 based android phone...
yuweng said:
This is just a simple tool for n00b/ newbie...
i was a n00b six months ago & even now my android knowledge is still half empty...
As the first post says, there are hundreds if not thousands of android phone based on MT6573 SoC design, each with their own recovery.img-kernel.img & AFAIK, non is compatible for use on others...
i simply provided a plugins based on Android Kitchen so that even a n00b/ newbie can port cwmr to their MT6573 simply by just drag & drop files to it... You are a programmer by profession i presume, so this is chicken feet to you but to a n00b/ newbie they don't no even where to start, like i did... :laugh:
you'll be surprise if i tell you the top download of my tuts is rooting & installing busybox !
As for the builder, you still need to unpack it, copy few files over & repack it with bgcngm's MTK-tools for it to work on MT6573...not alot of n00b/ newbie know how to do that !
the intention of this plugins is to be able to port cwmr to any mt6573 based android phone...
Click to expand...
Click to collapse
yuweng, and I thought you were the programmer! (other than bgcngm I see you as our local MTK expert)
Seriously, we are all noobs. That was my main concern :silly: Android Kitchen interface is command-based whereas the builder you just need to upload an image and you will get an image in return.
So do you mean using Android Kitchen there is no need to go through setting up Cygwin, repack, unpack, etc.? Just download the Kitchen, enter some commands, and you will have a recovery.img which you can flash directly?
i'm a half-cook programmer...
yaya, but you need to setup java, Android Kitchen & the plugins scripts will do everything... :laugh: That is for linux...For windows, you already know...
As for the builder, it works on major brands where it can be flash directly but not on mt65xx...
Ahh OK in that case I do suppose the Kitchen would be much simpler.
Ya, the MTK partitions and images are not the same as those of other devices. That's why Bruno wrote the script to help us
jason_cheng said:
yuweng, and I thought you were the programmer! (other than bgcngm I see you as our local MTK expert)
Seriously, we are all noobs. That was my main concern :silly: Android Kitchen interface is command-based whereas the builder you just need to upload an image and you will get an image in return.
So do you mean using Android Kitchen there is no need to go through setting up Cygwin, repack, unpack, etc.? Just download the Kitchen, enter some commands, and you will have a recovery.img which you can flash directly?
Click to expand...
Click to collapse
Hi Jason,
I have cpio and can execute perl scripts. gzip and gunzip are setup too. The script just cannot find the file ramdisk-repack.cpio.gz and I cannot find it anywhere.
Maybe the dump of the recovery.img was not good. I will try again.
*UPDATE*
The mkbootimg executabe I download was not correctly installed. Now the script finishes without error.
However the recovery.img doesn't do anything. I think I have to look for another mkbootimg or compile one from source myself...
For people who are interested to try the Ubuntu way:
Unpacking:
sudo perl ./unpack-MT65xx.pl recovery.img
Re-packing:
sudo perl ./repack-MT65xx.pl -recovery ./recovery.img-kernel.img ./recovery.img-ramdisk ./recovery.img
I will attach the mkbootimg once I succeed
Introduction
You probably know already that starting from Android 5.x (Lollipop) compiled roms (aosp,cm,stock) are not compressed anymore the way they used to be on previous android versions. On previous versions all content inside /system folder that has to be extracted within our device was either uncompressed (simple /system folder inside our flashable zip) or compressed in a system.img file, which it is a ext4 compressed file; both of these, anyway, were readable and we could see all system files (app,framework, etc).
The problem comes in >=5.0 versions, this method is not used anymore. Why? Because roms started to be always larger, so it is necessary to compress them even more.
Note : Introduction was taken from here : https://forum.xda-developers.com/an.../how-to-conver-lollipop-dat-files-to-t2978952 by @xpirt so thanks to him
So in order to save myself and others who most port Custom & Stock Roms, i decided to use some part of my time to write this script for easy work done.
What this script does :
It basically Unpack and Repack system.new.dat alongside with file_context.bin convertion which is seen in android 7.0/7.1
ITS USAGE:
NOTE
First Clone the repo.
Make sure that Android_System_Extraction_and_Repack_Tool is located at Desktop
Run "Xtrakt" from it's location in terminal
Copy "file_contexts.bin" from your Rom to "file_context_zone" folder
Use "f" from menu to convert "file_contexts.bin" to text readable "file_contexts"
Copy : system.new.dat, system.transfer.list & file_contexts to "convert-dat" folder.
Use "i" from menu to unpack, which the output will be name as "rom_system" for modifications of apks & files.
Use "y" from menu to repack, which the complete new "system.new.dat", "system.patch.dat" & "system.transfer.list" will be located at "Finish-new.dat" folder
Done !
EXAMPLE:
Again , Make sure that Android_System_Extraction_and_Repack_Tool is located at Desktop
In your terminal, type the following to start the script:
Code:
git clone https://github.com/iykequame/Android_System_Extraction_and_Repack_Tool.git
mv android_system_extraction_and_repack_tool ~/Desktop/
cd ~/Desktop/android_system_extraction_and_repack_tool/
./Xtrakt
OR
Code:
Double-click the Xtrakt file and choose "Run in Terminal" if your OS supports it.
##ALERT!!!##
sudo is requested in the script.
How To Get It {Tool]
Clone from one of the below ;
From GITHUB :
Code:
git clone https://github.com/iykequame/Android_System_Extractrion_and_Repack_Tool.git
From BITBUCKET :
Code:
git clone https://[email protected]/zac6ix/android_system_extraction_and_repack_tool.git
Or
Download zip
AFH
GIT-RELEASE
Sources :
Android_System_Extraction_and_Repack_Tool
GITHUB
BITBUCKET
Threads :
sdat2img 1.0 - img2sdat 1.2
For file_context.bin conversion by: Pom Kritsada @ MTK THAI Developers.
Credit to :
@xpirt
@SuperR.
-all xda threads which helped
-Android Matrix Development - here
-Nana Yaa for her time.
hi, your tool sounds good but it seems it doesnt work.
i press f and nothing happen ..
Use "f" from menu to convert **"file_contexts.bin"** to text readable **"file_contexts"**
Blackball said:
hi, your tool sounds good but it seems it doesnt work.
i press f and nothing happen ..
Use "f" from menu to convert **"file_contexts.bin"** to text readable **"file_contexts"**
Click to expand...
Click to collapse
Sorry for the Late reply !
Directories linking has been fix .
You can go ahead and try again
Thanks for sharing!
Don't work
When i press i ..Don't work.say file missing.but i already put all file..Please help meView attachment 4249470
Doesn't do anything with file_context.bin, doesn't even check if file is there.
oreo supported???
I am getting this error on repacking:-
Code:
WARNING! WARNING!! WARNING!!!
Please Check & Trace Where Errors.
There Is NO rom_system found
file_contexts -->> Missing !
Android SDK -->> not detected !
Please help.
Black_J said:
I am getting this error on repacking:-
Code:
WARNING! WARNING!! WARNING!!!
Please Check & Trace Where Errors.
There Is NO rom_system found
file_contexts -->> Missing !
Android SDK -->> not detected !
Please help.
Click to expand...
Click to collapse
I see that this thread is not supported.
Anyways, I observed that the tool works for file_contexts.bin but not for other options.
So , I followed the other link in the thread for individual commands and was successful.
Works perfectly on Android Pie! Have to do some tweaks, PM me if anyone wants to make this work for Android Pie.
Jancox Tool Unpack Repack ROMs
Jancox tool is a tool for unpacking and repacking ROMs, in other words this is a tool for modification Android ROM, and it supports Linux, Android and Windows.
Requestment
Requestment Linux
- Installed Python 3
Requestment Android
- Installed Python 3 in Termux
Requestment Windows
- None
How To Use In Linux
]
Code:
~$ ./unpack.sh
~$ ./repack.sh
~$ ./cleanup.sh
How To Use In Android
- Rename your rom to input.zip
- Move input.zip to /sdcard/input.zip or /sdcard/download/input.zip or /data/local/jancox-tool/input/input.zip
- Open termina/termux
Code:
~$ su
~$ jancox
- Output in /data/local/jancox-tool/editor
How To Use In Windows
- Extrack Jancox-Tool-Windows
- Rename your rom to input.zip
- Move input.zip to jancox tool folder
- Run unpack
- Edit rom in editor folder
- Run repack
- Cleanup for clean files
Video
Linux Guide :
Android Guide :
Windows Guide :
Download
Click Here
Source
https://github.com/Wahyu6070/Jancox-tool
https://github.com/Wahyu6070/Jancox-tool-Linux
https://github.com/Wahyu6070/Jancox-tool-Android
https://github.com/Wahyu6070/Jancox-Tool-Windows
Credit :
Jamflux SUR windows : https://github.com/jamflux/SUR
Magiskboot : topjohnwu
make_ext4fs : SuperR
Busybox : https://busybox.net/
7za : https://www.7-zip.org/
Brotli : https://github.com/google/brotli
Img2sdat/sdat2img : https://github.com/xpirt/img2sdat
python : based termux
Changelog
Linux v2.0
- Support img only
- Added brotli support
- Added boot extractor
- Added brotli level set
- and other improvements
Mobile v2.3
- Using kopi installer (support magisk non magisk)
- move zip compression 7z to zip
- improv debloater
- added disable dm-verity
- added change name
- added dat prop (jancox.prop)
- and other improvements
Windows v2.0
- Initial Release
Repack gagal terus pak
How to fix?
Erwin Abs said:
How to fix?
Click to expand...
Click to collapse
try install busybox
Wahyu6070 said:
try install busybox
Click to expand...
Click to collapse
l
Hello! I got error "unzip: invailid zip magic C26CB134"
How can i solve this problem? Busybox was installed.
Thanks
thienmoc198x said:
l
Hello! I got error "unzip: invailid zip magic C26CB134"
How can i solve this problem? Busybox was installed.
Thanks
Click to expand...
Click to collapse
update to version 2.2 if you still find problems send me the log
awesome work bro. thank you so much!
Really excited about this app!
One question: tools can only ota zip? If only .img file is available, then split first in boot.img, system.img, vendor.img etc but then?
How to fix ?
Malware Alert
Sourceforge link is showing a malware alert for your build. See the attached image.
hi, i want unpack only boot.img, made a input.zip with boot.img, unpack perfect, but cant pack again, receive a message please unpack, some idea why?
thanks and good work
sir, do you know how to unpack blackshark1's rom ?
failed by payload dumper
-----
bg, tau cara unpack rom nya blackshark 1 ga ?
pake payload dumper ga mempan
Need to be able to unpack Nokia roms. Format .nb0. Its possible to add this support to your already awesome tool? (Linux) Thanks in advance.
Hi
I unpacked and repacked the miui 12 ROM with this method, but unfortunately, after flashing the ROM, it did not boot and the phone was transferred to fast boot.pleace help to solve this problem .Thank you.
Please help me admin and all,
Has anyone already edited service.jar using the jancoxx tool.?
Wahyu6070 said:
Jancox Tool Unpack Repack ROMs
Jancox tool is a tool for unpacking and repacking ROMs, in other words this is a tool for modification Android ROM, and it supports Linux, Android and Windows.
Requestment
Requestment Linux
- Installed Python 3
Requestment Android
- Installed Python 3 in Termux
Requestment Windows
- None
How To Use In Linux
]
Code:
~$ ./unpack.sh
~$ ./repack.sh
~$ ./cleanup.sh
How To Use In Android
- Rename your rom to input.zip
- Move input.zip to /sdcard/input.zip or /sdcard/download/input.zip or /data/local/jancox-tool/input/input.zip
- Open termina/termux
Code:
~$ su
~$ jancox
- Output in /data/local/jancox-tool/editor
How To Use In Windows
- Extrack Jancox-Tool-Windows
- Rename your rom to input.zip
- Move input.zip to jancox tool folder
- Run unpack
- Edit rom in editor folder
- Run repack
- Cleanup for clean files
Video
Linux Guide :
Android Guide :
Windows Guide :
Download
Android
Linux
Windows
Source
https://github.com/Wahyu6070/Jancox-tool-Linux
https://github.com/Wahyu6070/Jancox-tool-Android
https://github.com/Wahyu6070/Jancox-Tool-Windows
Credit :
Jamflux SUR windows : https://github.com/jamflux/SUR
magiskboot : topjohnwu
make_ext4fs : SuperR
busybox : https://busybox.net/
busybox : https://github.com/Magisk-Modules-Repo/busybox-ndk
7za : https://www.7-zip.org/
brotli : https://github.com/google/brotli
img2sdat/sdat2img : https://github.com/xpirt/img2sdat
python : based termux
XDA:DevDB Information
[TOOL[LINUX][ANDROID][WINDOWS] Jancox Tool Unpack/Repack ROMs, Tool/Utility for the Android General
Contributors
Wahyu6070
Version Information
Status: Stable
Current Stable Version: 2.0
Created 2020-04-11
Last Updated 2020-08-12
Click to expand...
Click to collapse
supports super.img?
How can I add a apk to the priv-apps folder and give the apk all the permissions like camera, location ,draw over other apps, etc
I unpacked miui china rom, added some gapps and now when i am trying to repack i am getting following error.
[system/product/app/LatinImeGoogle] not found in canned fs_config, using defaults
How to fix this issue and continue repacking?
I have only following files related to configs.
RSM10 said:
I unpacked miui china rom, added some gapps and now when i am trying to repack i am getting following error.
[system/product/app/LatinImeGoogle] not found in canned fs_config, using defaults
How to fix this issue and continue repacking?
I have only following files related to configs.
View attachment 5338745
Click to expand...
Click to collapse
add system/product/app/LatinImeGoogle to fs_config file.