Related
Using Java Reflection with Eclipse ADT to Access Internal/Hidden API classes.
Purpose
We present a way to access all the Internal and Hidden Java packages/classes
in the AOS. To do this we need to both repackage the Android.jar and hack the
Eclipse ADT plugin, to allow using these internal packages.
Posting
==================================================
Do NOT post general questions/requests on how to
do this or that, they will not be answered here.
DO post if you have additional tricks, hacks or
information that can help/benefit this tutorial.
==================================================
Background
There are two reasons one cannot use internal packages. One reason is that, if
you're using Eclipse as your development platform, those packages are
internally blocked in the Eclipse ADT plugin. Second reason is that the normal
development android.jar runtime does not contain those *.class files that
belong to the internal packages.
"There is no easy way to use com.android.internal package (internal API) or
anything marked with @hide attribute (hidden API) without using reflection.
That’s because android.jar file does not contain classes from internal and
hidden API and because of this nobody can reference those classes in compile
time."
Thus we need to first restore the "original" android.jar which will allow us
to use internal and hidden APIs. But the runtime equivalent of Android SDK’s
android.jar file is framework.jar. This file is located in the
/system/framework/ directory of your device. We will extract and use this for
our pleasure.
The general procedure:
A) Grab the "full" framwork.jar from your device
B) extract the class files
C) add them to "full" android.jar ??
D) Hack the Eclipse ADT plugin jar.
Finally, NOTHING would have been possible without the excellent step-by-step
instructions on the devmaze-blog by senior Android developer Ievgenii Nazaruk
(aka. "inazaruk"). THANK YOU Ievgenii!References
http://stackoverflow.com/questions/...d-sdk-with-hidden-and-internal-apis-available
http://stackoverflow.com/questions/...-state-permission-for-apps-ran-on-gingerbread
http://code.google.com/p/smali/wiki/DeodexInstructions
http://code.google.com/p/adt-addons/
The General Procedure
NOTE: All this was performed on Windows Vista with Cygwin.(1) Grab BOOTCLASSPATH from init.rc
Find the line in your init.rc file that reads something like:
Code:
[SIZE=2]export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar[/SIZE]
Extract and reformat the path to:
Code:
[SIZE=2]core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar[/SIZE]
(2) Grab the "framework" from your device
Create a working directory somewhere, let's call it "_framework":
Code:
[SIZE=2]mkdir ./_framework[/SIZE]
[SIZE=2]cd _framework[/SIZE]
Grab all the framework files from your device:
Code:
[SIZE=2]adb pull /system/framework .[/SIZE]
Rename directory if needed.
NOTE-1: From now on I'll assume you know where you are!
NOTE-2: Most GB 2.3.4+ devices uses .odex'ed files,
with name pairs like: <package>.jar and <package>.odex.
These need to be converted.
(3) Use baksmali with (1)
You can also use baksmali with the switch: -d <framwork-dir>.
The general command is something like below, but in windows there may be "wrappers"
that allow you to just type "baksmali" without the "java -jar" prefix and without
the ".jar" post fix. Anyway here is the command I used:
Code:
[SIZE=2]java -Xmx1024m -jar ./../../baksmali.jar -a 10 -c :core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -x framework.odex[/SIZE]
==> This results in all files put in the "out" sub-directory.
This directory contain 3 sub-directories (for GB 2.3.4):
Code:
[I]android [/I](Hidden APIs)
[I]com [/I](Internal APIs)
[I]javax [/I](Hidden APIs)
NOTE: If you are using Google's own API's, you will probably also need to add
those packages to the path above. (Eg. Email.jar, etc etc ?)
(4) Then use smali to create a dex file from "out" directory
Code:
java -jar smali.jar out
==> creates out.dex from "out" directory.
(5) Run dex2jar on out.dex
Code:
[SIZE=2]./dex2jar.bat out.dex[/SIZE]
==> creates out_dex2jar.jar
(This .jar contain close to 4900 files at 12 MB!)
(6) Rename "out_dex2jar.jar" to "framework-classes.zip"
Code:
[SIZE=2]mv out_dex2jar.jar framework-classes.zip
unzip framework-classes.zip[/SIZE]
(7) Find and copy your Android SDK's android.jar file
Go to: /path/to/android-sdk-windows/platforms/android-X/android.jar
where X is the API level of interest. This obviously have to match the
API level of the files you extracted from your device in: /system/framework .
This .jar file contain more than 5300 files when expanded, but missing all
the internal packages. Our job is to add them back in.
Let's first make a copy that we can use to expand and add files from (6):
Code:
cp android.jar custom-android.zip
unzip custom-android.zip
(8) Add all *.class files from (6) in to (7)
Copy and replace all existing *.class files from framework-classes.zip into
custom-android.zip:
Code:
[SIZE=2]cp -R /path/to/framework-classes/* /path/to/custom-android/.[/SIZE]
The root content of that directory should then look something like this:
Code:
[SIZE=2]android[/SIZE]
[SIZE=2]assets[/SIZE]
[SIZE=2]com[/SIZE]
[SIZE=2]dalvik[/SIZE]
[SIZE=2]java[/SIZE]
[SIZE=2]javax[/SIZE]
[SIZE=2]junit[/SIZE]
[SIZE=2]META-INF[/SIZE]
[SIZE=2]org[/SIZE]
[SIZE=2]res[/SIZE]
[SIZE=2]AndroidManifest.xml[/SIZE]
[SIZE=2]resources.arsc[/SIZE]
(9) Rename directory and create your new "classy-android.jar"
We rename it so not confuse with the original:
Code:
mv custom-android classy-android
zip classy-android
mv classy-android.zip classy-android.jar
IMPORTANT:
Make absolutely sure that the folder structure of your zip archive
is exactly the same as what you intended. To check, unzip the file
and see if it is what you (and eventually Eclipse) would expect.
(For example, if you use 7zip to zip a directory file called "test",
into "test.zip", you may end-up extracting it to ./test/test/... )
(10) Enabling & Restricting Access to classy-android.jar
Instead of just replacing the android.jar with classy-android.jar, we choose
to create a customized Android platform. This way you can enable the Internal
and Hidden API's for those projects requiring them, while other standard
projects doesn't have access to those.
(a) Go to: /path/to/android-sdk-windows/platforms/
and copy the relevant directory (for example):
Code:
cp -R android-10 android-10-internals
(b) Replace android.jar with your classy-android.jar:
Code:
cp classy-android.jar android.jar
("cp" overwrites!)
(c) Edit the build.prop file:
Edit/replace the following lines:
Code:
[SIZE=2]ro.build.version.sdk=10 ==> ro.build.version.sdk=[COLOR=Black][B]-10[/B][/COLOR][/SIZE]
[SIZE=2]ro.build.version.release=2.3.3 ==> ro.build.version.release=2.3.internal[/SIZE]
(11) Customizing the Eclipse ADT
In order to be able to use com.android.internal packages in the Eclipse ADT,
you have to disable the internal protection mechanism of the plugin, that
prevent you to use these libraries. You can see this by right-clicking on your
project package and navigate to:
Code:
[SIZE=2]==> Properties ==> Java Build Path ==> Libraries (tab) [/SIZE]
[SIZE=2]--> Android 2.x.x --> android.jar [/SIZE]
[SIZE=2]--> "Access rules: 1 rule defined": [B][COLOR=Red](X)[/COLOR][/B] [B]Forbidden: com/android/internal/**[/B][/SIZE]
This can not be removed (bug?), even though the interface allows changing, it
never persists after closing the Properties window. So we have to hack it!
The way to do it, is to hexedit the correct java class file and change the
name from "internal" to "internax". First let's find the correct file. The
plugin file is located in the ./eclipse/plugins/ directory, and its name is
something like:
Code:
com.android.ide.eclipse.adt_18.0.0.v201203301601-306762.jar
(a) make a backup copy of this (with the exact name preserved) in another directory.
(b) make a another copy of this in another directory.
(c) unzip (b) in that directory
Code:
[SIZE=2]cp com.android.ide.eclipse.adt_18.0.0.v201203301601-306762.jar hacked_adt.zip[/SIZE]
[SIZE=2]unzip hacked_adt.zip[/SIZE]
[SIZE=2]cd hacked_adt[/SIZE]
This is a huge directory system, so forget poking around in it,
just go to the correct sub-directory:
Code:
[SIZE=2]cd ./com/android/ide/eclipse/adt/internal/project/[/SIZE]
Then find the correct file and the approximate string location within that file:
Code:
[SIZE=2]strings.exe -f -4 -t x ./*.class |grep "android\/internal"[/SIZE]
It happens to be in "AndroidClasspathContainerInitializer.class". Now, use a
hexeditor to find and change the string "com/android/internal/**"
to "com/android/internax/**". That will do it!
Now zip-up your hacked jar directory and copy it over the old one.
(Remember that "cp" overwrites without warning!)
Code:
[SIZE=2]zip hacked_adt[/SIZE]
[SIZE=2]cp hacked_adt.zip /path/to/eclipse/plugins/com.android.ide.eclipse.adt_18.0.0.v201203301601-306762.jar[/SIZE]
You Are Done!
Enjoy your newly hacked Eclipse! Errors
If you get any errors;
1. make sure you have zipped up everything properly as warned before.
2. make sure you have included Google API packages in your BOOTCLASSPATH in step (3).
3. Try to "clean-up" the Java by: "Right-Click" ==> Source ==> "Clean Up...".
4. Google them
5. Ignore them
6. Give up. Not! But I can't help you!
If it still doesn't work, try to download inazaruk's pre-compiled set of internal android.jar's from here.
(For android 7,8,10,15.)
WIP! <here be dragons2>
For a project using internal package imports, see my thread:
"[TOOL][APP][WIP] Native AT Command Injector"
<here be more dragons>
Following the instructions in posts 1-2 above, may not always work. It is not known to me at this time, why it shouldn't. One theory is that it can have something to do with how Eclipse and Android.jar is packaging their files and the resulting sizes.
This was mentioned in this Stackoverflow post:
"Jar files: why does extracting then compression a jar file create a file of a different size to the original?"
Then reading the man pages for "jar" we can inform ourselves with:
Code:
[SIZE=2] c Creates a new archive file named jarfile (if f is specified) or to
standard output (if f and jarfile are omitted). Add to it the
files and directories specified by inputfiles.
u Updates an existing file jarfile (when f is specified) by adding
to it files and directories specified by inputfiles.
x Extracts files and directories from jarfile (if f is specified) or
standard input (if f and jarfile are omitted). If inputfiles is
specified, only those specified files and directories are
extracted. Otherwise, all files and directories are extracted.
t Lists the table of contents from jarfile (if f is specified) or
standard input (if f and jarfile are omitted). If inputfiles is
specified, only those specified files and directories are listed.
Otherwise, all files and directories are listed.
i Generate index information for the specified jarfile and its
dependent jar files.
[/SIZE]
More info is provided here:
The JAR Overview @
http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html
The JAR File Specification @
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html
The JARIndex Spec @
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html
JAR Tutorial @
http://java.sun.com/docs/books/tutorial/jar/
pack200 Reference Page @
http://java.sun.com/javase/6/docs/technotes/tools/share/pack200.html
Another theory is that it may have something to do with what seem to be, that Google have revoked the the use of MODIFY_PHONE_STATE since Android 2.3, and that this influences the Eclipse behavior, when using and modifying older android.jar's. This was mentioned here and here.
Any help would be very much appreciated!
< bump >
Hi, thanks for the info, I made it using linux and worked really nice, these were the lines that I used, hope be useful.
This is my Android folder at home
Code:
Android/
├── eclipse
├── ndk
├── platforms-internals
├── sdk
└── tools
Start an avd running the desired API to modify in this case API-17
Code:
$ emulator -avd avd_api_17 -no-window &
Get the framework
Code:
$ cd ~/Android/
$ mkdir _framework
$ cd _framework
$ adb -s emulator-5554 pull /system/framework .
Grab BOOTCLASSPATH
Code:
$ adb -s emulator-5554 shell cat init.rc | grep BOOTCLASSPATH > bootclasspath
I didn't have the tools used in this tutorial, so I included the steps for getting them
Decompile with baskmali
Code:
$ cd ~/Android/tools
$ wget https://smali.googlecode.com/files/baksmali-1.4.2.jar
$ cd ~/Android/_framework
$ java -Xmx1024m -jar ../tools/baksmali-1.4.2.jar -a 17 -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:telephony-common.jar:mms-common.jar:android.policy.jar:services.jar:apache-xml.jar -x framework.odex
The parameter -a for baksmali refers to the API we are working with.
Generate out.dex with smali
Code:
$ cd ~/Android/tools
$ wget https://smali.googlecode.com/files/smali-1.4.2.jar
$ cd ~/Android/_framework
$ java -jar ../tools/smali-1.4.2.jar out
Get internal and hidden classes using dex2jar
Code:
$ cd ~/Android
$ wget https://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
$ unzip dex2jar-0.0.9.15.zip
$ rm dex2jar-0.0.9.15.zip
$ cd _framework/
$ ../tools/dex2jar-0.0.9.15/d2j-dex2jar.sh out.dex
$ unzip out-dex2jar.jar -d framework-classes
Add these classes to plataform's default android.jar
Code:
$ cd ~/Android
$ unzip sdk/platforms/android-17/android.jar -d custom-android
$ cp -r _framework/framework-classes/* custom-android/
$ rm -r _framework
$ cd custom-android
$ zip -r ../custom-android.jar *
$ cd ..
$ rm -r custom-android
Create new extended platform
Code:
$ cd ~/Android
$ cp -r sdk/platforms/android-17 platforms-internals/android-17-internals
$ mv custom-android.jar platforms-internals/android-17-internals/android.jar
$ vi platforms-internals/android-17-internals/build.prop
ro.build.version.release=4.2.2
ro.build.version.release=4.2.2.internal
$ ln -s ~/Android/platforms-internals/android-17-internals ~/Android/sdk/platforms/android-17-internals
I use a symlink for keep it a little organized
Hack ADT
Code:
$ cd ~/Android
$ unzip eclipse/plugins/com.android.ide.eclipse.adt_22.0.4.v201307151829--741630.jar -d hacked_adt
Go to right folder
Code:
$ cd hacked_adt/com/android/ide/eclipse/adt/internal/project/
Find file where is our desired string
Code:
$ strings -f -a -t x * | grep "android\/internal"
Edit with an hex editor
Code:
$ bless AndroidClasspathContainerInitializer.class &
Here we change the l for the x.
Replace original file making a backup
Code:
$ cd ~/Android
$ cp eclipse/plugins/com.android.ide.eclipse.adt_22.0.4.v201307151829--741630.jar eclipse/plugins/com.android.ide.eclipse.adt_22.0.4.v201307151829--741630.jar.original
$ cd hacked_adt/
$ zip -r ../eclipse/plugins/com.android.ide.eclipse.adt_22.0.4.v201307151829--741630.jar *
$ cd ..
$ rm -r hacked_adt
This worked for me... thanks E:V:A
I got just one error related to a dropbox class, but i think this is not important... hope that
lenieto3 said:
...Start an avd running the desired API to modify in this case API-17... This worked for me... I got just one error related to a dropbox class, but i think this is not important...
Click to expand...
Click to collapse
Thanks and sorry for late reply. I'm very happy to hear these instructions still works with API-17! Could you also upload your hacked JAR somewhere so that people can save some time when experimenting?
I was just here to check-in and try to bump this thread to see if it is still useful to anyone.
E:V:A said:
Thanks and sorry for late reply. I'm very happy to hear these instructions still works with API-17! Could you also upload your hacked JAR somewhere so that people can save some time when experimenting?
I was just here to check-in and try to bump this thread to see if it is still useful to anyone.
Click to expand...
Click to collapse
ive got access to ActivityManager's hidden methods.
I want to use the removeTask method, but it keeps saying that I dont have the REMOVE_TASKS permissions even though I added it to the manifest (and turned off lint).
Permission Denial: removeTask() from pid=9963, uid=10179 requires android.permission.REMOVE_TASKS
Does someone know if there are any automated tools to do/performs steps 1-9?
I'd like to see a tool to automatically pull (from phone), extract and create a compatible android.jar.
@Mohammad_Adib: Sorry, this is the wrong thread for those type of questions.
see this link stackoverflow.com|questions|30656933|android-system-framework-jar-files
Hello. After reading, reading and more reading i picked one of the most newbe freindly guides on how to make a CWM recovery for a new device.
I my case im going to build CWM recovery for the Tom-Tec 7 excellent.
It hase Android ICS V4.0.3
This guide is alsow to compile cyanogenmod for unsupported device!
I am using Ubuntu 64 bit. (Wy go for less if i dont have to.) But i gues it will work for most linux versions if you got the required packages installend. Even Max OS can be used to build i gues. But thats a bit differant guide..
Step 1:
Install the required packages
Links with info.....
Google’s official guide: http://source.android.com/source/initializing.html
Step 2:
Install java SDK, ADB and?
link adb....
[GUIDE] Lazyman's installation guide to ADB on Ubuntu 10.10 - Now with Ubuntu 11.10: http://forum.xda-developers.com/showthread.php?p=11823740#post11823740
[HOW-TO] Set up SDK/ADB on Ubuntu 11.10 | 32 & 64 bits: http://forum.xda-developers.com/showthread.php?t=1550414
RESERVED SPACE
Step 3:
In you´re ¨home¨ dir make a folder called ICS. (You can give it any name you like.. But i have to start with something right..)
Use the terminal app to cd into ICS folder. (click ¨Dash home¨ icon. from the menu on the left. In the cursor field type perminal to find the app) Just in case you dont know how to cd into the ICS folder. Just type ¨cd ICS¨ in the opend terminal app and you there. (with out the ¨¨)
Step 4:
Now we got to download the Cyanogenmod source files with the terminal app. This can take a very long time. The CWM recovery source comes bundled with the CyanogenMod source.
Pick the version you want to make a recovery for.
I have ICS on my tablet sow im gone use the ICS repo.
Code:
CWM 5 - Gingerbread
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
CWM 5:
repo init -u git://github.com/CyanogenMod/android.git -b ics
? repo init -u git://github.com/CyanogenMod/android.git -b ics android-4.0.4_r2.1 werkt..
CWM 6 - Jellybean
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
Sow i copy pastle this line in the terminal: ¨repo init -u git://github.com/CyanogenMod/android.git -b ics¨ with out the ¨¨ hit enter.
If asked give a name and email adres. Confirm with Y if its right.
Now type ¨repo sync¨ (with out the ¨¨) in the terminal and hit enter.
Downloading the source will take a very long time.
Step 5:
Now we come to the actuall compiling part. Make sure you have synced the latest source files using the "repo sync" command. Personally i run the ¨repo sync¨ command often to get the newest changes (commits).
Now issue this command :
make -j4 otatools
ore: make otatools
of with log: make otatools 2>&1 | tee tom-tec-OtaTools.log
If it wont work you can try: make CC=gcc CXX=g++ -j4 otatools
If it wont works scroll down to the part about Fix compile problems.
This will run a short time. It will make the tools needed to build the recovery. If everything executed properly a new set of files have been created in ICS/out/host/darwin-x86/bin:
Step 6:
Now we are going to add a not officially supported device. This way we can build CyanogenMod.
Using terminal emulator on your device, issue the command
Code:
dump_image boot /sdcard/boot.img
This will dump the boot image to your sdcard. Transfer it to your home directory.
My Tablet did not have the dump_image file on it..
Sow there are some options open:
Option 1:
place the dump_image file in the bin folder of the tablet. You will need to change the read/write rights of the file ofcource.
I used the root explorer app to do this.
Option 2: Take the boot.img from last official rom.
Link: https://helpdesk.tom-tec.nl/KB/a200/firmware-update-voor-de-tom-tec-atf3657-excellent-7.aspx
Ore here: http://portal.tom-tec.eu/KB/a204/firmware-update-for-the-tom-tec-atf-3657-excellent-7.aspx
ore:
http://portal.tom-tec.eu/KB/a204/firmware-update-for-the-tom-tec-atf-3657-excellent-7.aspx
Option 3: Just dump the boot.img file from the tablet. And dump the
recovery.img to.
Dump boot.img this way: dd if=/dev/block/mtdblock0 of=/mnt/ext_sd/boot.img bs=4096
Dump recovery.img this way: dd if=/dev/block/mtdblock6 of=/mnt/ext_sd/recovery.img bs=4096
You can use ADB terminal from pc ore go download a terminal from Google play store on you´re android device.
To build Android from source for a new device, you need to set up a board config and its makefiles. This is generally a long and tedious process. Luckily, if you are only building recovery, it is a lot easier. From the root of your Android source directory (assuming you've run envsetup.sh), run the following (substituting names appropriately):
Code:
build/tools/device/mkvendor.sh device_manufacturer_name device_name /your/path/to/the/boot.img
For Tom-Tec 7 excellent, the command will go as follows :
Code:
build/tools/device/mkvendor.sh YG m805_892x ~/boot.img
and for the recovery: of: build/tools/device/mkvendor.sh YG m805_892x ~/recovery.img
Please note that m805_892x is the device name..... Only use "~/boot.img" if you have the boot image in your home directory. Or else please specify the correct path.
You will receive the confirmation "Done!" if everything worked. The mkvendor.sh script will also have created the following directory in your Android source tree:
manufacturer_name/device_name
YG/m805_892x
In case of the Tom-Tec 7 excellent you can find the output files here:
/home/youreUsernames/ICS/device/YG/m805_892x
Step 7 :
Now that you have the device config ready, proceed.
Type the following code in your terminal in the source directory.
Code:
. build/envsetup.sh
gives:
including device/ti/panda/vendorsetup.sh
including device/YG/m805_892x/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
This will setup the build environment for you to work.
Now launch the command
Code:
lunch full_device_name-eng
For Tom-tec 7 excellent it is: lunch full_m805_892x-eng
But seems best to me to use: lunch full_m805_892x-userdebug
This step will be done in a short time.
This will set the build system up to build for your new device. Open up the directory in a file explorer or IDE. You should have the following files: AndroidBoard.mk, AndroidProducts.mk, BoardConfig.mk, device_.mk, kernel, system.prop, recovery.fstab, and vendorsetup.sh.
Now we can go and eddit the files in the directory: /home/..username../ICS/device/YG/m805_892x
The two files you are interested in are recovery.fstab and kernel. The kernel in that directory is the stock one that was extracted from the boot.img that was provided earlier. For the most part, recovery.fstab will work on most devices that have mtd, emmc, or otherwise named partitions. But if not, recovery.fstab will need to be tweaked to support mounts and their mount points. For example, if your /sdcard mount is /dev/block/mmcblk1p1, you would need the following lines in your BoardConfig.mk
/sdcard vfat /dev/block/mmcblk1p1
Once the recovery.fstab has been properly setup, you can proceed to the next step.
Step 8 :
Now we build the recovery.
Code:
make -j4 recoveryimage
Ore with a log file:
make -j4 recoveryimage 2>&1 | tee tom-tec-revovery.log
(Will be checking build tools if clean command is used.)
This command builds the recovery image
You can use the command
Code:
make -j4 recoveryzip
Ore with a log:
make -j4 recoveryzip 2>&1 | tee tom-tec-fashableZip.log
To make a fakeflash recovery i.e. a temporary recovery to test out on the actual device.
Your recovery can then be found at "your_source_directory/OUT/target/product/m805_892x/recovery.img" and the temporary fakeflash zip in the utilities folder at the same location.
If everything works out well, you will have a working recovery.
At the moment i havent been able to make a CWM recovery with all the options working. Sow a nice bit of user feedback will help making it i hope.
Once you have working builds, notify "koush", on Github and he can build official releases and add ROM Manager support!
IF YOU HAVE ALREADY COMPILED THE SOURCE AND YOU MAKE CHANGES TO THE BoardConfig.mk YOU WILL HAVE TO DO THIS FOR YOUR NEXT BUILD
$ cd ICS
$ make clobber
ore make clean
$ . build/envsetup.sh
$ lunch full_m805_892x-eng ore lunch full_m805_892x-userdebug
of lunch en nummer kiezen
$ make -j4 recoveryimage 2>&1 | tee tom-tec-recovery.log
$ make -j4 recoveryzip
$ make -j4 bootimage
$ make -j4 userdataimage
$ make -j4 systemimage
And for building the rom: make -j4 otapackage 2>&1 | tee tom-tec-build.log
Download files:
New 2014:
CWM recover V6.0.12 last: http://www.mediafire.com/view/w40bzdl1ujh60ay/recovery
info:Making a backup and restore works. The best part i think.
Some options dont work jet. Its to late to tell much about.
Everything works except for:
USB mount
Key test close to working.
choose backup format
I made the recovery flashable from stock recovery. Download it here.
cwm recovery V6.x beta flashable:
later again
Recovery FakeFlash update.zip (recoveryzip): http://www.mediafire.com/?r3uhcqol1t55ii5
You can install this from the stock recovery. It wont harm the system! It will give you the option to make a rom backup.
Its not a full cwm recovery but it is a start.
If you install a rom using Recovery FakeFlash update.zip there will be a log file made in: /cach/recovery/
Very usefull to check if you´re rom is not booting
For me with the Tom-tec. If i restore the userdata.img the device wont fully start. It keeps loading the android image.
Dump you recovery. Flashable file.:
http://www.mediafire.com/?jk929dw8vpw1w1f
If you want to go back to the stock recovery use this file:
flashable stock recovery v3e
http://www.mediafire.com/?q8fgeqtwt2iqau8
If you´re not able to build the otatools.
Download Otatools CM9:
http://www.mediafire.com/?job80hd2n1jfnqa
Download the cm9 rom!:
http://forum.xda-developers.com/android/development/dev-unofficial-tom-tec-7-excellent-t2946072
Links:
Compile Tccutils to unpack and repack images: http://forum.xda-developers.com/showthread.php?t=1873041
How to install the SDK: http://wiki.cyanogenmod.com/index.php?title=Howto:_Install_the_Android_SDK
Official build guide by Google. http://source.android.com/source/initializing.html
Official cm guide: http://wiki.cyanogenmod.com/index.php?title=Building_from_source
Android Platform Developer's Guide: http://www.kandroid.org/online-pdk/guide/
Guide by koush: http://www.koushikdutta.com/2010/10/porting-clockwork-recovery-to-new.html
Newbe friendly guide i used: http://forum.xda-developers.com/showthread.php?t=1866545
Compile ICS on Ubuntu: http://forum.xda-developers.com/showthread.php?t=1354865
Android ROM Development From Source To End: http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763
How To Port CyanogenMod Android To Your Own Device: http://wiki.cyanogenmod.org/w/Doc:_porting_intro
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Some tips :
If you want to compile CWM 6, sync the jellybean branch using the command :
Code:
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
repo sync
If you want to compile CWM 6 on a 32 bit system, you need to sync THIS source too. Instructions are given in the readme.
Run "make clobber" between builds if you change the BoardConfig.mk, or the change will not get picked up.
Credits :
Koush for this guide. Find 1 of his githubs to see the info he gives in the make files. Helps a lot.
Fix compile problems
Fix problems... This the learning part.. Fun but can be really anoying to.
First i got my self:
make otatools did not work.
-Try make -j4 out/host/linux-x86/bin/unpackbootimg
-put "unpackbootimg" in ~/android/system/out/host/linux-x86/bin then i copy it to ~/usr/bin and set chmod.
Im did see a download if it some place. Google.
-copy unpackbootimg to into /usr/bin If it is there, make it executable.
make executable: sudo chmod a+x /usr/bin/unpackbootimg
-Run make clubber from The ICS folder. Than restart pc might help to.
Problem: unpackbootimg not found. Is your android build environment set up and have the host tools been built?
build/tools/device/mkvendor.sh YG m805_892x ~/recovery.img
gives:
unpackbootimg not found. Is your android build environment set up and have the host tools been built?
fix: make -j4 out/host/linux-x86/bin/unpackbootimg
fix2: permission van de bestanden aanpassen.
fix3: copy unpackbootimg file into /usr/bin (change permissing)
(Look on google for: cp file to usr/bin)
how:
Copy unpackbootimg to you´re home dir.
sudo cp unpackbootimg /usr/bin
Give pasword.
chmod +x unpackbootimg ./unpackbootimg
Probleem . build/envsetup.sh with vendorsetup.sh not found (including device/YG/m805_892x/vendorsetup.sh
):
[email protected]:~/ICS$ . build/envsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
Make the file vendorsetup.sh in you´re device tree. Look at a nother device tree how it set up! Have a look in my github.
My device tree is in home dir at: / ICS/device/YG/m805_892x
Now run . build/envsetup.sh again it should be there now.
Still not there? Did you run the command from inside the right folder (project folder). I have to do cd ICS.
probleem:
build/core/product_config.mk:199: *** device/YG/m805_892x/full_m805_892x.mk: PRODUCT_NAME must be a valid C identifier, not "full_m805_892x-evm". Stop.
fix make files settings:
PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
#PRODUCT_NAME := full_m805_892x
PRODUCT_NAME := full_m805_892x-evm
PRODUCT_DEVICE := m805_892x
PRODUCT_BRAND := Android
PRODUCT_MODEL := A777
Change to this:
PRODUCT_NAME := full_m805_892x_evm
And yes you have to use _ insted of - i gues.
Make the change in: cm.mk, device_m805_892x.mk and full_m805_892x.mk
Problem building recovery:
out/target/product/K00F/recovery.img total size is 9388032
error: out/target/product/K00F/recovery.img too large (9388032 > [33792 - 8448])
make: *** [out/target/product/K00F/recovery.img] Error 1
make: *** Deleting file `out/target/product/K00F/recovery.img'
Fix use this in boardconfig (Not for the TomTec tablet but for Asus device):
BOARD_BOOTIMAGE_MAX_SIZE := $(call image-size-from-data-size,0x00010000)
BOARD_RECOVERYIMAGE_MAX_SIZE := $(call image-size-from-data-size,0x00020000)
BOARD_SYSTEMIMAGE_MAX_SIZE := $(call image-size-from-data-size,0x000FC000)
#data-size,0x00010000 this and sow on i found in the Asus stock rom.
Nother problem that i did run into trying to make ext4 images:
make_ext4fs -s -l 0x40000000 -a data out/target/product/m805_892x/userdata.img out/target/product/m805_892x/data
Need size of filesystem
make: *** [out/target/product/m805_892x/userdata.img] Error 4
make: *** Waiting for unfinished jobs..
The sizes need to be in bytes it seems.
make_ext4fs does not support hex in the -l argument
DD dump you´re partitions and you see the amount of bytes.
I put this in my BoardConfig.mk like this:
BOARD_USERDATAIMAGE_PARTITION_SIZE := 1073741824
Use this to finisch waiting jobs..:
make_ext4fs -s -l 1073741824 -a data out/target/product/m805_892x/userdata.img out/target/product/m805_892x/data
problem:
[email protected]:~/ICS$ make -j4 recoveryimage
build/core/product_config.mk:196: *** _nic.PRODUCTS.[[device/YG/m805_892x/device_m805_892x.mk]]: "device/YG/m805_892x/m805_892x-vendor-blobs.mk" does not exist. Stop.
The error is somewhare found in this file:
device_m805_892x.mk I used the original file and start adding things again.
Problem:
make: *** No rule to make target `vendor/cm/proprietary/RomManager.apk', needed by `out/target/product/m805_892x/system/app/RomManager.apk'. Stop.
make: *** Waiting for unfinished jobs....
Copy: out/target/product/m805_892x/system/bin/compcache
Copy: out/target/product/m805_892x/system/bin/handle_compcache
[email protected]:~/ICS$
For that use the terminal and cd to:
cd /vendor/cm
run:
./get-prebuilts
This will download the RomManager.apk and bit of other stuff.
Problem:
build/core/config.mk:162: *** TARGET_ARCH not defined by board config: device/
fix:
open ¨BoardConfig.mk¨
and ad: TARGET_ARCH :=arm (I have it under: TARGET_BOARD_PLATFORM)
Problem:
Which would you like? [full-eng] 5
build/core/product_config.mk:209: *** No matches for product "full_m805_892x". Stop.
Device not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for m805_892x not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
build/core/product_config.mk:209: *** No matches for product "full_m805_892x". Stop.
** Don't have a product spec for: 'full_m805_892x'
** Do you have the right repo manifest?
fix:
What you need to do is to edit your blob to match the PRODUCT_NAME to the file name. For example with mine I have full_m805_892x therefore in this file I need to have PRODUCT_NAME to match it. Whatever error it is looking for you just need to change the PRODUCT_NAME line to match what the error shows. I did have a look in the files: cm.mk, device_m805_892x.mk, full_m805_892x.mk and vendorsetup.sh
probleem building obj/lib/libril.so out:
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: error: out/target/product/K00F/obj/lib/libril.so: unknown mandatory EABI object attribute 44
collect2: ld returned 1 exit status
make: *** [out/target/product/K00F/obj/EXECUTABLES/rild_intermediates/LINKED/rild] Error 1
make: *** Waiting for unfinished jobs....
fix: I did have to change the libril.so settings in BoardConfig.mk I did disable the libril.so settings for now.
I alsow did have to remove the libril.so file in ojb/lib of the project out folder. Than the build will go on.
repo problem:
repo sync gives:
gpg: Signature made do 01 mei 2014 22:34:18 CEST using RSA key ID 692B382C
gpg: Can't check signature: public key not found
error: could not verify the tag 'v1.12.16'
warning: Skipped upgrade to unverified version
Syncing work tree: 100% (255/255), done.
fix:
run: repo selfupdate --no-repo-verify
link: http://forum.xda-developers.com/showthread.php?t=1846651&page=97
known-issues: https://source.android.com/source/known-issues.html
Nandroid errors http://www.droidforums.net/threads/nandroid-error-codes.20546/
Edit make files..
Edit make files..
Edit:
vendorsetup.sh
This file you have to make you self first. Just make a new file in the device tree folder (Lunix OS). Not in Windows OS! Dont use Windows to edit files. Ore use the notpad+ edition if you really have to. You have to donwload it and install it.
I have this in it:
add_lunch_combo device_m805_892x-eng
add_lunch_combo full_m805_892x-eng
add_lunch_combo full_m805_892x-user
add_lunch_combo full_m805_892x-userdebug
add_lunch_combo full_m805_892x_evm-userdebug
The option: add_lunch_combo full_m805_892x_evm-userdebug will be used. Its set in the make files.
full_m805_892x.mk:
Make a nother file full_m805_892x.mk
Look in my device tree to see how its set up.
Most inportant part for now is:
PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
PRODUCT_NAME := PRODUCT_NAME := full_m805_892x_evm
PRODUCT_DEVICE := m805_892x
PRODUCT_BRAND := Android
PRODUCT_MODEL := A777
Make sure that PRODUCT_NAME := PRODUCT_NAME := full_m805_892x_evm uses the name ash used in vendorsetup.sh (and cm.mk and device_m805_892x.mk )
Yes it hase to be PRODUCT_NAME := full_m805_892x_evm
Not full_m805_892x-evm ore m805_892x-evm-userdebug its seems.
Android.mk:
Make this file in you´re device tree.
Put this in the file and save (No enter after it!):
LOCAL_PATH := $(call my-dir)
AndroidProducts.mk
Make this file in you´re device tree. Put this in the file and save:
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/full_m805_892x.mk
There is no \ behind full_m805_892x.mk. There is no \ after the last product! This file hase 1 product in it as you can see. If there are more products than ad \ after every product. But no \ on the last product listed.
BoardConfig.mk
Lost of things are set in this file.
When i made my device tree i got this line in it. (And others ofcourse)
BOARD_KERNEL_CMDLINE := console=null
I did change it to this:
BOARD_KERNEL_CMDLINE := console=vmalloc=256M
I found the cmdline when i did a search in the device kernel config..
I did look for: cmdline
The is a nother way to get the BOARD_KERNEL_CMDLINE :=
Open a terminal on you´re tablet and run: cat /proc/cmdline
ore cat /proc/cmdline > /ext_sd/cmdline.txt and it will put a text file on you´re sdcard.
I did get: cat /proc/cmdline > /ext_sd/cmdline.txt geeft : vmallc=256M logo_addr_size=0x85600000
I did left out het last part. I dont need a logo.. I need a cm bootanimation.
More someday later...
Some links for now.
Links:
build-options: http://vladnevzorov.com/2011/02/08/android-os-build-options/
Create a device tree for MTD devices: http://forum.xda-developers.com/showthread.php?t=2010281
Flash recovery image to tablet.
Flash recovery image to tablet.....
I used a terminal app on the tablet:
First run su
$ need to change to # (Make sure you´re tablet hase root and adb hase root permission.)
This command if you have put the recovery.img on external sd: dd if=/mnt/ext_sd/recovery.img of=/dev/block/mtdblock6
Ore this of you got the recovery.img on internal sd : dd if=/mnt/sdcard/recovery.img of=/dev/block/mtdblock6
ore use flash_image:
In terminal on the tablet
$ su
# cd /mnt/ext_sd
chmod 777 flash_image
(Yes you have to place the flash_image file on the sdcard)
flash_image recovery /mnt/ext_sd/recovery.img)
Using fastboot:
~$ adb reboot-bootloader
~$ fastboot flash recovery recovery.img
I did install a broken recovery on my tablet. And the current rom did not have root.. Using fastboot worked out great. The screem did stay back wile in fastboot mode.
Notes:
Needs fastboot/fastboot.exe in adb platform folder.
Needs you´re recovery.img file to in adb platform folder.
Build rom.
Build rom.....
Some links..
Links:
Tom-Tec websites:
http://www.kmb-international.com/category.php?id_category=33
Tom-tec: http://www.kmb-international.com/category.php?id_category=4&id_lang=4
http://www.tom-tec.nl/
Website Telechip: http://www.telechips.com/eng/Product/consumer_pro13.asp
Telechip wiki: http://en.wikipedia.org/wiki/Telechips
Telechips info: http://zomobo.net/telechips
QNX Neutrino for ARMv7 Cortex A-8 and A-9 Processors: http://www.qnx.com/developers/docs/...echnotes/QNX_for_ARMv7_Cortex_Processors.html
ARM7: http://review.cyanogenmod.org/#/c/15478/1/core/combo/arch/arm/armv7-a.mk
GPU Mali 400 http://en.wikipedia.org/wiki/Mali_(GPU)
Cortex-A8 http://processors.wiki.ti.com/index.php/Cortex-A8
http://androtab.info/telechips/cyanogenmod/
From Zero to Boot: Porting Android to your ARM platform:
http://blogs.arm.com/software-enablement/498-from-zero-to-boot-porting-android-to-your-arm-platform/
Source telechip site: https://www.telechips.com/technical_support/kor/opensource/opensource_list.asp
Source telechips:
Kernel: https://github.com/cnxsoft/telechips-linux
Android V4 and Hardware https://github.com/cnxsoft/telechips-android
source mali 400: https://github.com/rzk/Mali-400-r3p0-04rel0-X11-drivers
? repo init -u ssh://android.telechip.com/androidce/android/platform/manifest.git
repo sync
download android telechip sdk: ssh://android.telechips.com/androidce.com/
kernel source modded?
https://github.com/olexiyt/telechips-linux
Find kernel source for you´re device: http://forum.xda-developers.com/showthread.php?t=1808167
Some telechip doc´s:
http://wenku.baidu.com/view/6545cb13a216147917112879.html###n
XDA Telechips links:
unofficial CyanogenMod 7/ClockworkMod Recovery 5 for TCC8902/TCC8803 tablets: http://forum.xda-developers.com/showthread.php?t=1101094
Root/Clockwork mod on TCC8803 tablets: http://forum.xda-developers.com/showthread.php?t=1119778
HSG (X5A/X6) & Pandawill G11 rooting/dev thread (SetCPU & Root working!) http://forum.xda-developers.com/showthread.php?t=757992
Telechip forum:
http://www.androidtablets.net/forum/telechips-based/
http://www.androidtablets.net/forum/telechips-tcc8902-tablets/
http://androtab.info/cyanogenmod/telechips/
http://www.cnx-software.com/tag/telechips/
http://www.chinadigitalcomm.com/android-tablet.html
http://www.pandawillforum.com/forumdisplay.php?56-Telechips-Tablets
Cortex A8 not all TCC: http://www.slatedroid.com/forum/14-cortex-a8/
Some links with devices similar to the Tom-Tec 7 excellent:
Coby 8042: http://www.androidtablets.net/forum/coby-generation-3-development/
More links comming.
Usefull links:
Building a kernel: http://forum.xda-developers.com/nexus-4/general/guide-beginners-guide-to-building-t2986686
Uotkitchen v4.0 http://forum.xda-developers.com/showthread.php?t=990829
¨Some advice¨ from cyanogen: http://forum.xda-developers.com/showthread.php?t=667298
BoardConfig.mk for kernel developer and AOSP (platform) developer: http://forum.xda-developers.com/showthread.php?t=1630849
about how to unpack/repack recovery.img and boot.img http://forum.xda-developers.com/showthread.php?t=1494036
About how to unpack/repack recovery.img and boot.img https://www.miniand.com/wiki/Allwinner/Unpacking+and+building+LiveSuit+images
How to download and compile ICS from source: http://forum.xda-developers.com/showthread.php?t=1503093
List of arm 5, 6 and 7 devices: http://forum.xda-developers.com/showthread.php?t=1596800
How do you port Armv7 Roms to an Armv6 Device?: http://forum.xda-developers.com/showthread.php?t=1591878
What info to take from new device to build cwm recovery: http://androidforums.com/getitnowma...new-device-recovery-creation.html#post2714334
Dev basic´s: Source, Compiling, Github & co ~ Day 4: http://forum.xda-developers.com/showthread.php?t=1778984
Compile recovery: http://forum.xda-developers.com/showthread.php?t=1866545
Yaffey - Utility for reading, editing and writing YAFFS2 images: http://forum.xda-developers.com/showthread.php?t=1645412
port guide: http://apcmag.com/port-roms-to-your-android-device.htm
About tablets: http://www.androidtablets.net/forum...verything-you-want-know-get-started-here.html
> working-on-cyanogenmod: http://www.intervigil.net/working-on-cyanogenmod
How To Logcat: http://forum.xda-developers.com/showthread.php?t=1726238
Logcat links and some tools. 17-1-13: http://forum.xda-developers.com/showthread.php?p=36846151#post36846151
[Guide] How to use Github http://forum.xda-developers.com/showthread.php?t=1877040
[HELP/Q&A][SourceBuilding,AllDevices] The Source Building Q&A Help Thread: http://forum.xda-developers.com/showthread.php?t=2059939
Tips for CM7/CM9/CM10/CM10.1 :http://forum.xda-developers.com/showthread.php?t=1621301
[Guide and FAQ] CM9 / Android ICS for Defy:http://forum.xda-developers.com/showthread.php?t=1386680
TCC githubs:
source hardware: https://github.com/cnxsoft/telechips-android/tree/master/hardware/telechips/omx
koush githubs: https://github.com/koush
https://github.com/milaq/android_device_coby_em102
https://github.com/naobsd/cm_device_telechips_tcc8803
Kyros7015 https://github.com/csleex/cm_device_coby_kyros7015
https://github.com/Johnsel/android_device_coby_mid1125
https://github.com/mastermind1024/micromax_a70
https://github.com/abhis3k/Micromax_A70_device_folder/tree/master/a70
https://github.com/teamhacksung/and...tree/9b79b35d1554c20178cbe82fad0c8ab253630acb
Some telechips githubs:
> CX-01 mini PC https://github.com/olexiyt/cm_device_telechips_tcc8920st
common telechip stuff: https://github.com/naobsd/cm_device_telechips_common
https://github.com/naobsd/cm_device_telechips_tcc8902rt
https://github.com/naobsd/cm_device_telechips_tcc8902gb
https://github.com/naobsd/cm_device_telechips_tcc8902
https://github.com/naobsd/cm_device_telechips_tcc8803rt
https://github.com/naobsd/cm_device_telechips_tcc8803
https://github.com/milaq/android_device_coby_em102
https://github.com/Dreamboxuser/android_device_telechips_m801
https://github.com/Dreamboxuser/Vinci_m801_88
https://github.com/simone201/neak_bootable_recovery
Asure:
some prop. files https://github.com/Asure/android_vendor_samsung/blob/master/dropad/
https://github.com/Asure/android_vendor_samsung/tree/master/dropad
>> some kernel stuff: https://github.com/xxxFeLiXxxx/UltimateDropad
https://github.com/Asure/android_device_telechips_tcc8902
https://github.com/
Asure/android_vendor_telechips
Recovery builder: http://builder.clockworkmod.com/
Nice to try! Will give manufacturer and device name to!
Official CM tablets:
Not TCC..
cm_encore: https://github.com/fat-tire/android_device_bn_encore/tree/ics
https://github.com/fat-tire/android_device_bn_encore/blob/ics/device.mk
Lenovo_P700i https://github.com/Nikolas-LFDesigns/cm_device_lenovo_P700i
http://www.cyanogenmod.com/devices/nook-color
githubs nook: https://github.com/nookiedevs
http://www.cyanogenmod.com/devices/viewsonic-g-tablet
http://www.cyanogenmod.com/devices/advent-vega
CyanogenMod githubs:
https://github.com/CyanogenMod
Github by cyanogen: https://github.com/TeamChopsticks/cm_device_samsung_skyrocket
Just for me again. Just in case
Partial success on Ferguson S3 clone of this board
Hello,
using your tutorial I was able to successfully compile the fakeflash in-memory version (recoveryzip) from current ICS tree (v6.0.1.2) - View attachment rec-fakeflash-FergS3-v2.zip for Ferguson S3 device based on the same chipset. The touch variant on ICS tree did not build.
However, I have to note that the boot image does not work (the real fstab is generated incorrectly during bootup so it can't mount anything). But since the fakeflash ZIP image works, it is simple to boot into it without replacing the original recovery.
A few things had to be changed in ICS/device/YG/m805_892x/ directory:
There is no "central button", so the BoardConfig.mk must contain following line (you can just uncomment it):
Code:
BOARD_HAS_NO_SELECT_BUTTON := true
To backup correctly .android_secure and be able to use the external SD card for backups at the same time, the recovery.fstab lines for SD and nand were changed to:
Code:
/external_sd vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0
/sdcard vfat /dev/block/ndda1 /dev/block/ndda
UPDATE: if you plan to use sd-ext partition as well (e.g. ext3 partition for Link2SD), you will also need following line (not included in the attatched zip image):
Code:
/sd-ext auto /dev/block/mmcblk0p2
Or maybe we could extend it just in case (if the internal SD-card is usable for this):
Code:
/sd-ext auto /dev/block/mmcblk0p2 /dev/block/ndda2
I have also added following line to BoardConfig.mk based on the (non-working) on-line builder, but it works even without it, so it might not be necessary
Code:
TARGET_ARCH_VARIANT := armv7-a
I´m happy my thread did help you. I´ll well keep adding new stuff to tis thread over time Im first trying to make a working rom and recovey for my self at the moment.
I see you try builing the for JB. Make files for JB work a bit differnt than from ICS it seems to me after a short try. I havent tryed a touch version my self jet. But if you know a nice github that is for making a touch version let me know.
To fix you´re boot.img i gues you should try and unpack the original and the 1 you build. Compaire them. There is a nice guide with tools + instruction here:
http://forum.xda-developers.com/showthread.php?p=23298690#post23298690
I got my self a working boot.img that way. Hope it will be a bit of help to you. Have a look how others use the make files to putt the right stuff in the boot.img and recovery.img
I to did have to use: BOARD_HAS_NO_SELECT_BUTTON := true
to get the button working. I wanted to add that in my guide when i get my rom working.
I would just keep this part in you´re BoardConfig if it works: TARGET_ARCH_VARIANT := armv7-a
maybe even have to make it like this? armv7-a-neon
if you have the neon feature. I think sow.
Try the android info app.
Thx for you´re nice post. If you make a nice github i would like to check it out
Its songs werry interesting for me... I am too want get building CM9/10 for this tablets (i have one... its clone of you tablet named Enot j101 - CPU=Telechip TCC892X GPU=Mali 400mp Ram=512mb (ddr3 - ?) NAND=4Gb Dafault_build=Android 4.0.3 (suckasway )...
I am builds Roms from source for other device, but here many problems...
P.S. I make screenshot by ADB... LOOK on build date... If be needed (for proprientary - i am make dump of system).
And please say you status on Rom..
Hi,
I have some more info on the device here:
Some device info here:
http://www.androidworld.nl/forum/to...ellent-7-inch-android-4-0-tablet-atf3657.html
http://www.androidworld.nl/forum/tom-tec/34668-tom-tec-7-excellent-adb-terminal-info.html
Its Dutch but you're be able te get the specs.
I almost have a working rom at the moment. Some lib*.so file dont work and about 4 framework files.
The picture is to small for me to see right. sorry.
AntiBillOS said:
Its songs werry interesting for me... I am too want get building CM9/10 for this tablets (i have one... its clone of you tablet named Enot j101 - CPU=Telechip TCC892X GPU=Mali 400mp Ram=512mb (ddr3 - ?) NAND=4Gb Dafault_build=Android 4.0.3 (suckasway )...
I am builds Roms from source for other device, but here many problems...
P.S. I make screenshot by ADB... LOOK on build date... If be needed (for proprientary - i am make dump of system).
And please say you status on Rom..
Click to expand...
Click to collapse
Great! Thank you very much! I'm trying to build mk802 recovery image myself. Your post helps me so much!:good:
XmiData Fail In Odin
Solved
can anyone help me with this error
grep: build/target/board/generic/recovery.fstab: No such file or directory
Can I use kernel built from kernel source of Android 5 to build rom for Android 7?
My device repositories are not available on github, But I got device tree and vendor blobs by making changes in similar device repo. That reference device's kernel's lineageos_defconfig is situated in htc msm8974 kernel repo. So how can I get lineageos_defconfig for my device, and which other my device related kernel files(.dtsi or any other) I have to push in htc msm8974 repo and get those files to make things ready for build?
Please help......
gind (git-find)
Hello guys,
I made a little script for searching inside git repositories and I'd like to share it with you guys
Came with the idea when fixing BlueDroid errors while building CM12 for p970 xP
Download
It's here on GitHub:
https://github.com/Alphasquare/Gind
How to use
Types: string, file
Code:
gind <type...> <pattern...>
Installation
To install, simply wget the file or download the zip.
As sudo, do:
Code:
chmod +x gind.sh
to make it executable.
Then, to install it, do:
Code:
mv gind.sh /bin/gind
Now gind is available globally. You can add it to your home directory bin folder instead,
Code:
mv gind.sh ~/bin/gind
Example output:
Code:
$ gind file bd.h
bta/include/bd.h
Please whosoever reads this post and has got a solution to this please reply as i need a solution desperatly.This is my third post of the same help and till now i have not got any help.Is this is what xda all about????
Click to expand...
Click to collapse
hello,
I am using a virtual box with Ubuntu 16.04 as guest and Windows 10 as host
I have downloaded the binaries such as simg2img img2simg,etc...But whenever i am using the command
Code:
sudo ./simg2img system.img sys.raw
i am getting the error
Code:
[email protected]:/media/htc_desire$ sudo ./simg2img system.img sys.raw
sudo: unable to execute ./simg2img: No such file or directory
I have also tried the command
Code:
sudo chmod +x simg2img
but still i am getting the same error.
Is there any other way to make the binaries executable and is there any other way to extract a raw image of out a spare image and then mount the raw image inorder to obtain the system folder so that i can access files and folders such as apks and jars.
Can anyone please help me how to use the binaries such as simg2img,img2simg,make_ext4fs,etc... relations to extracting a rom in Ubuntu 16.04. I have been trying to get the system folder out of the sparse image since a week but i a unable to do so.And i have a system.img file in the rom folder but i do not know weather its a sparse image or a raw image.So can anyone please tell me how to differentiate between a Sparse image and a Raw image so that i can extract it accordingly.
Are the files in the same directory as your terminal is? If not you can use the CD command to change folders or you can use a file explorer and right click open terminal here, and then try running the above commands. Also right click on the files your executing and go to permissions tab and tick the box that says something along the lines of "allow execution of file" (sorry can't remeber of the top of my head).
Also another you can try is using the mount command to mount the system .img to a directory of your choosing and then modify the files. A general example can be
Code:
mkdir /temp-sys
mount -o loop auto system.img /temp-sys/
Note: don't use that exact code but do some research as that was also off the top of my head. Good luck.
A few days ago, I flashed a zip onto my phone that set SELinux to permissive. However, there was a problem: it deleted logd, which is essential to adb logcat. Considering I'm an Android developer, that isn't a good thing! It took me a bit to figure out how to get it back, so I'm making this guide to share with you guys to help whatever poor soul has to fix this next.
Note that these steps were designed with Linux in mind, though they might be adaptable to Cygwin/OSX with some effort.
Also, make sure you delete any SELinux permissive scripts from init.d/su.d first!
Prerequisites
The OTA or custom rom zip that your device is currently running
adb
simg2img (available in the Ubuntu software repositories)
sdat2img (available here)
Instructions
Put your OTA/custom ROM zip file in a new folder and unzip it (this example is using the Pure Nexus ZIP):
Code:
mkdir restore_logd
cp pure_nexus_hammerhead-7.0-20161025-HOMEMADE.zip restore_logd
cd restore_logd
unzip pure_nexus_hammerhead-7.0-20161025-HOMEMADE.zip
Now, look for a file named either system.new.dat or system.img.
If you have system.img, then run:
Code:
simg2img system.img system.raw.img
If you have system.new.dat AND system.transfer.list, instead run:
Code:
sdat2img.py system.transfer.list system.new.dat system.raw.img
Either way, you should now have a file named system.raw.img. Next, mount it:
Code:
mkdir system_mnt
sudo mount -t ext4 -o loop system.raw.img system_mnt
This will mount the system image onto the system_mnt folder.
Plug in your device to your computer and make sure USB debugging is enabled, then run:
Code:
adb push system_mnt/bin/logd /sdcard/logd
adb shell
You should now be in a shell connected to your device. Inside, run:
Code:
su
mount -o rw,remount /system
cp /sdcard/logd /system/bin/logd
chmod 755 /system/bin/logd
exit
This will install the logd binary and close the shell.
This next part is very important! Making sure you closed the adb shell and are still inside the directory you created, run:
Code:
ls -Z system_mnt/bin/logd
If the output looks like this:
Code:
? system_mnt/bin/logd
then you have nothing else to do. Otherwise, it might look a bit like this:
Code:
u:object_r:logd_exec:s0 system_mnt/bin/logd
Copy part before the path; in this case, it's:
Code:
u:object_r:logd_exec:s0
Then, run:
Code:
adb shell su root chcon permission /system/bin/logd
replacing permission with the string you copied.
Now you can unplug and restart your device; logd should now be fully working!
Last but not least, run:
Code:
sudo fusermount -u system_mnt
to unmount the system image from your computer.
Enjoy!
Execute command failed while replacing permission
Code:
adb shell su root chcon permission /system/bin/logd
u:object_r:logd_exec:s0
/system/bin/sh: <stdin>[1]: u:object_r:logd_exec:s0: not found