Device tree and proprietary and .sh files - Android Q&A, Help & Troubleshooting

Recently I started making device tree ( I found common repo for my chipset and some device so I edit it to my phone specs).
My question is: does .sh files in device tree (vendorsetup.sh, setup-makefiles.sh and extract-files.sh) should be created manually or some other script creates it?
And, also there is 2 .txt files (proprietary-files.txt and proprietary-files-mtk.txt) they contain location of proprietary files, so how do I get that list is it from running vendorsetup.sh, setup-makefiles.sh and extract-files.sh if yes than how do I creates thoose .sh files to do that what should they look like?

Related

Android's .so files

OK, So I've gotten to breaking down and recompiling those pesky .dex files, but I've run into a new problem.
This is a noob question, I'm sure, but .so files look like unformatted, binary files. How do I open then, edit them, etc? I need to read whats going on in my libs. :-(
Are these X11? I'm running ubuntu 10.04 x64 - so those could be difficult.
ie - unreliable 64 bit support.
$ sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
Click to expand...
Click to collapse
They're native library files, so platform specific machine code I imagine. Look for an ARM disassembler. I'm not familiar with linux internals, so don't know how you find the entry points, but it obviously will be widely documented. Is it impossible to obtain the source code? Assuming most are written in C/C++, reverse engineering from the machine code is not something I'd describe as a pleasant experience. If the source was well written assembly language & not too big, it can be almost enjoyable I guess. But then TBH walking through a randomly selected programmer's source, let alone object, files scares me, in a Tim Burton inspired bad trip kinda way. If you can find the source, it will be an order of magnitude less painful.
Try IDA Decompiler, it should disassemble all so files!
Most of the libs are open source in the aosp. Some are proprietary blobs with the only solution to them being reverse engineering.
.so disassembly
i know how to disassemble it
you will need orion's easy apk disassembler and apk manager
i've tested it once and it worked, but thereĀ“s a problem, i dont know how to re-assemble
1- rename the file .so to .apk like "libtestlib.so" to "libtestlib.apk"
2- put in the folder "place-apk-here-for-modding" of apk manager
3- open script.bat (or something like this) from Apk manager
4- use extract apk option
in the beggining my images inside the lib was corrupted so i used step 5 to fix
5- use option optimise images inside to fix images
6- go to project folder and copy classes.dex file to the root of easy apk disassembler's folder
7- open EasyApkDisassembler.EN.bat and use the "DISASSEMBLY a classes.dex with smali" option
8- give a name to the folder (like "libtestlib")
9- it will create a folder (like "out_libtestlib") with the disassembled files
Orion's easy apk disassembler http://forum.xda-developers.com/showthread.php?p=5826401
Apk multi tool (almost the same as apk manager) http://forum.xda-developers.com/showthread.php?t=1310151
I've tried to open libsurfaceflinger.so from my device with 7zip, and it worked too
thats it
@gkillershots
not working
i renamed .so to .apk and used extract option but getted error :
Processing archive: C:\APKMultiTools\place-apk-here-for-modding\libnative-lib.apk
Error: Can not open file as archive
"An Error Occurred, Please Check The Log (option 26)"

Questions about Android source code for N1

Hi,
Followed cyanogen's instruction in his wiki, I could build and flash my own ROM to N1, and it is working. Thanks cyanogen so much for everything he has done with Android.
However, the instruction is based on cyanogen's source code. Now, I am trying to figure out how to build a new ROM from pure Android source code (i.e. the one from AOSD).
I obtained the eclair branch as follows:
Code:
repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair
repo sync
My questions are:
1. There is not any directory under ./vendor for N1 (i.e. passion). I can see only directories for Dream & Sapphire. Does it mean I can build only ROM for Dream/Sapphire? The following result seems support that point. Did I misunderstand some points?
Code:
$ sed -n -e "s/^add_lunch_combo//gp" vendor/*/vendorsetup.sh
aosp_emulator_us-eng
aosp_emulator_eu-eng
aosp_dream_us-userdebug
aosp_dream_eu-userdebug
aosp_dream_us-eng
aosp_dream_eu-eng
aosp_sapphire_us-userdebug
aosp_sapphire_eu-userdebug
aosp_sapphire_us-eng
aosp_sapphire_eu-eng
2. There is not extract-files.sh there. So I suppose I need to use the file from cyanogen. But what else should I do to be able build a new ROM?
Any help is really appreciated!
I'm just as clueless as you are to this--but when I compiled for the HTC Touch, all I did was pull down the stock AOSP build (repo sync) and simply ran "make" from the root directory, which produced a blank System image.
From there, I either copy & pasted the compiled library .so files into the image (to provide driver support), or if necessary to have the source compiled for the version, I included the source into the repo sync directory and ran the "make" which would also produce a compiled library.so that functioned.
Not sure any of this will help, but I figured I'd offer what I could.
Shidell said:
I'm just as clueless as you are to this--but when I compiled for the HTC Touch, all I did was pull down the stock AOSP build (repo sync) and simply ran "make" from the root directory, which produced a blank System image.
From there, I either copy & pasted the compiled library .so files into the image (to provide driver support), or if necessary to have the source compiled for the version, I included the source into the repo sync directory and ran the "make" which would also produce a compiled library.so that functioned.
Not sure any of this will help, but I figured I'd offer what I could.
Click to expand...
Click to collapse
Thanks Shidell. So you meant that it worked for your HTC Touch?
How do you copy & paste library files into image?
How do you include the source into the repo sync directory?

[Q] aosp initramfs/ramdisk source

I am working on building from aosp 4.4.2. I have built it with the pre-built kernel without any problems. Then, I managed to get a custom kernel code in place and it builds. Now the only thing left to do is the initramfs/ramdisk for the custom kernel I have in place. Currenlty my build will not boot. I suspect it is using the initramfs/ramdisk from aosp.
Can someone point me to the source files or files that handle the initramfs/ramdisk? I have found bits and pieces strewn throughout the source code but cannot pinpoint the indivitual files or the script/mk file that produces the ramdisk found in the out folder after my system finishes building.
I kinow I can change the initramfs/ramdisk manually by repacking the boot.img, but I would prefer everything be completed in the updatpackage.
what device do you have?
Anyways, just decompile the working boot.img with dsixda's kitchen, and replace the zImage, build it again and done
broodplank1337 said:
what device do you have?
Anyways, just decompile the working boot.img with dsixda's kitchen, and replace the zImage, build it again and done
Click to expand...
Click to collapse
I have a Nexus 5. I'm trying to avoid the, "build it again."
I would like to envsetup, lunch, make clean, make updatepackage, flash and done.
So, I'm still trying to figure out, how make knows where to get all the files and create the ramdisk in the out directory.
AOSP radisk
I am no expert but I think this is how ramdisk is built and it worked for me al the time. ramdisk is composed from the directory 'root' in the product build output folder. the contents are coming from different part of the build tree, mostly from the device source, vendor source. for eg:- check hammer head tree for omni https://github.com/omnirom/android_device_lge_hammerhead in the device.mk you can see PRODUCT_COPY entries to the root similar thing goes with vendor makefiles. If you are looking for executable built from source you can set
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) so that they will end up in initrd
related to this: I can see using PRODUCT_COPY_FILES to stage files to the root directory. but where is the directory structure created? Such as /firmware ... etc? I am trying to add a directory to the root fs. When I just create a new directory such as /foo the build fails. I want the new directory to be permanent part of the build process so solutions like unpack - modify - repack is less than satisfactory. Thanks

Remix OS Hacked Graphics Upgrade!

Hello once again my name is Cat Stevens and I have done it again you should check out my previous posts. But let's stick with the task at hand. I have been trying to upgrade the graphics for a while now and thanks to Android Kitchen I have been able to unpack and repack ramdisks and initrd.images as well. First you need libGLESv3.so you need to unpack system image of Android x86_64 7.1 with Remix Tools and you will find it in the lib64 folder. Then you need to get Android Kitchen and cygwin for Windows 32 bit is OK. Then copy the contents of the android win tools folder and paste them into the cygwin bin folder. Read the commands when you download the Android Image Kitchen. Unpack the ramdisk.img and you have access to the root of RemixOS. In notepad open init.x86.rc and go to line 11 and will see # export EGL_DRIVERS egl_dri2. Then add to the end of the line drm libGL /system/Lib/egl/libGLES_mesa.so /system/egl/libGLESv3.so eglIs&Lt:Resource&gt:Linked EGL_RENDER_BUFFER EGLDisplay . It's a long line and remember the path in the line because that is where you will need to install your libs. Then alter what ever else you want to the default.prop and repack your ramdisk. When you repack your left with a cpio.gz file you need to use mv command. This is the command mv ramdisk.cpio.gz ramdisk.img. Then you are done. Take care my friends if someone has a ADB binary for 6.0.1 let me know I want to get the VNC going.
Well somebody shut down my ramdisk hack it doesn't work anymore. Next I would like to thank the folks at Bliss ROMS for their hard work Electric Juses creative name. This is a MOD for RemixOS Hacked. I recommend installing Mount Image File and EXT4 driver for Windows. It gives you true ROOT! First download and extract Bliss ROMS x86_64 iso then mount your system image. Copy media_codecs and ffmpeg xmls. You will find them in the etc folder and paste them to your etc folder in Remix OS. Then go back to Bliss and open the vendor folder and copy bin, lib and lib64 folders and paste them to your usr folder in Remix. Then to tie it all together open notepad++ and create a text file you will save as userinit.txt. Then rename it to userinit no extension. This is the script.
#!/system/bin/sh
/system/usr/bin/rtk_attach
Their is the script now paste it to etc/init.d folder in Remix OS system image. Then go to the build.prop file and change persist.sys.disp_density=240 then change ro.sf.lcd_density=240. Unmount the image and boot Remix OS it will take a little bit longer than usual to boot but you will notice the difference with the display and audio. KILLZ! I recommend you should check out SET TV it's a APK file and for$20.00 US a month you get 500 channels and here is the kicker you can install it on three devices anyways I figured it out thanks again to Bliss ROMS and this will truly make your Android x86 system image The Green Machine!

location and function of xbl.elf, qupv3fw.elf, cmnlib.mbn in the AOSP output build

I am doing platform development for an sdm710 board and the flash_all.sh script requires many files that I could not find in the /out folder or anywhere in my AOSP build.
Those files include for example xbl.elf, qupv3fw.elf, cmnlib.mbn or tz.mbn. Are those files usually provided by the manufacturer as binaries?
Or should they be generated when building Android?
I would like to flash them with fastboot but cannot find them.
thank you for any help!

Categories

Resources