Building APK from source for specific Android API version - Android Q&A, Help & Troubleshooting

Hello,
I have an MTK device (Ixion MS155, with MT6737 chipset, to be pricese) that I flashed with a custom ROM. Unfortunately, being new to flashing, I carelessly didn't backup the NVRAM with the IMEI numbers, which got reset to Null. I know that this problem can be addressed through the MTK Engineer Mode. But to activate the right menu option, I need an auxiliary package usually called CDS_INFO.apk, which was not included in the ROM. I found some versions of that package online, but they don't seem compatible with my specific device and/or ROM combination (one version almost works, but it seems that it was compiled against a different Android API/ABI version). This is not a very popular device model, so there are not many ROMs available for it, and I've not yet found one that is capable of running Engineering Mode with the right menu options.
Now, my main question is this: I did find a repository on GitHub (can't post a direct link: user Danile71, repository android_kernel_zte_run4g_mod, path /tree/master/mediatek/packages/apps/CdsInfo) with the source code for CDS_INFO.apk (as well as other low level packages like EngineerMode.apk itself). What could really help me is compiling these packages against the Android 7.1 API/ABI (which I believe would be API version 25). Now, I don't have any direct experience building APK packages from source. Could some kind soul help me out and build an appropriate version of these packages? CDS_INFO.apk and EngineerMode.apk would be sufficient for my purposes, but they might have some other internal dependencies.
Please let me know if there's a better subforum where to direct this request. Thank you in advance for any help!

Related

[Q]Cooking the framework layer

Dear experts,
like many ppl, I am new to Android Development, and would be able to cook my own rom with amazing home-made features before the end of the week... and I want it to be easy, funny, and eventually Fast....
... Indeed, I don't want all of this, so I'll try to be realistic in my incoming questions and beg for your indulgence if some things sound stupid / inexact / already documented and so on : I have performed a long search process before I decided to post here and would not ask it otherwise.
So, first, here's what I have know about android:
- Android Architecture (various layers)
- Android + java programming (beginner with both but skilled with general OOP and smartphone -iPhone- programming)
- Rom flasing process : rooting, bootloader / recovery flashing , using adb, filesystem of a ROM
- Android official source building (from git repository) and patch apply.
- Basic cooking without any source code modification: use of dsixda's kitchen with xda members' home-made roms mainly
Then, the material I am working with :
- Max OS 10.6.5
- A HTC - Tattoo : rooted, with nandroid and busybox installed (also have an available HTC - Hero)
- adb 1.0.26
- HTC Android Kitchen 0.106 - by dsixda
- Android official source from http://android.git.kernel.org/
Now, what I don't know about is advanced cooking... I read a lot about ppl wondering the same, and generally there was no basic answers (not to mention guide/tutorials).
Since I will surely be the nth to ask this, let's try to ask a specific question.
I downloaded from Android github a patch I am very interested in. This patch applies on the framework and does not impact any other layer (especially not the kernel nor the hardware related libs). After building the source, I thus get a framework.jar I would like to replace some target framework.jar with .
I was quite sure it was not very bright to do such with a custom ROM, even a quite standard FroYo-based one, since there was little chance that such a cooked-rom used a virgin framework taken as-it from android github. But I tried anyway with some of the FroYo-based roms taken from the xda list for my tattoo device. I basicely replaced the framework.jar with mine.
... and indeed, it failed : I kept getting stuck at the boot screen everytime I do such.
So.... I am trying to understand what I do wrong.
- I am quite sure I miss some signing process, but although I read many threads about such a signing about apk files, I did not manage to figure out how to do this with frameworks / jar files. Could someone bring me some light about this?
- Provided the signing is not the (only) problem here, could someone explain where / why I am wrong?
- Eventually, since I did not manage to find full source for a FroYo-based (running) cooked rom , do you know of such a source repository I could work with instead of working with android official sources (including the framework java files + compatible with HTC-tattoo / HTC-hero if possible)?
Thanks for all of you for reading until here, whatever your answers (or silence) may be.
And thanks in advance to those who may have some answers or any constructive criticism.
Roger_Rabbit
--------------------------
An old fashioned rabbit

[Q] Making a custom Kernel?

I've had a search and a look around but can't see anything specific enough to answer this.
I have read that the SGS2 uses the new BCM4330 chipset for it's WiFi-N support.
It looks to me that for existing kernels they are using either the existing kernel support or possibly the b43 driver.
I need to find out, and while I have compiled custom kernels in nix in the past, I have never done so in Android, so I'm a little out of my comfort zone here.
I want to compile a kernel where the WiFI driver will support monitor mode, ideally it would be the CM7 kernel with just this extra functionality added, however a number of the tools that I would use to identify the existing configuration do not seem to be available in the standard CM7 build (lspci being one).
I don't want to frack around too much without having read up first so could anyone point me at a good guide for creating my own Android Kernel, even better if the guide was specific to the CM7 version.
Lastly I mostly run a Fedora environment, however the bits I have read seem to suggest a number of tools are only available in a Ubuntu guise (heimdall springs to mind and while I'm sure it's possible to recreate it for Fedora I'm trying to reduce the number of dependencies I'll have to recreate as much as possible). Therefore can I get some advice regarding the least complicated way to generate an Android build environment in Linux.
Thanks
For kernel compilation on android, you can check the several repositories there are for the several kernels. Depending on each kernel/repository/user, you can find a predefined .config inside them, so you can get the basic configuration to compile the kernel, don't know if CM7 has it in its repository...
As for the enviorment, I haven't tried compiling a kernel, but I did compile some ROM on Gentoo Linux, so I suppose it could also be done in Fedora without many problems. The main thing about using Ubuntu is that is very extended, so they're using it as main Linux base, but that doesn't mean it can't be done in other linux distros. You can check CM7 wiki for building from source to install the required packages for your enviorment. In my case I cross checked the Ubuntu packages with Gentoo to install gentoo's version of that packages/tools to be able to compile without problems.
Also in the case of building kernels, you need a toolchain to be able to compile, but there are several webs/tutorials with info on how to use that.
EDIT: You have a complete tutorial for CM7 in their wiki with the needed packages for both Debian and Red Hat based distributions...
Very useful, thanks for the info.
Very useful info.
Hi,
I'm interested in compiling a custom kernel to support wifi monitor mode, but I read in a previous post that it can be a hardware limitation which makes it impossible to use monitor mode. Can anyone confirm that? Maybe a statement/answer from Broadcom?
I'm just asking it because I don't want to start playing with kernel compilation and driver hacking if it can't be done because of some missing code on the chipset or something.
Thanks.
kepten said:
Can anyone confirm that? Maybe a statement/answer from Broadcom?
Click to expand...
Click to collapse
I doubt Broadcom will answer that, but you can try to search the chipset info in Broadcom's web and see if its supported. Also you can check kernel modules if they can compile against that version.
AzureusPT said:
I doubt Broadcom will answer that, but you can try to search the chipset info in Broadcom's web and see if its supported. Also you can check kernel modules if they can compile against that version.
Click to expand...
Click to collapse
Well, Broadcom's website says nothing about monitor mode but I've found a driver (https:// github.com/cyanogen/galaxy-2636/blob/ics/drivers/net/wireless/bcm4330/src/include/wlioctl.h#L1153) which at least mentions it. This is for Galaxy Tab 10.1 which has the same chipset so maybe someone with a Tab 10.1 could verify if monitor mode works with that kernel/driver? ??

Found Kernel Sources, Help me narrow down the one for my device!

Hey Guys,
My Android lacks development, the only ROMs availible are just apk mods and build.prop edits. I am planning to build CM or some other AOSP-based ROM for my Phone. I found the source code for Qualcomm phones at CodeAurora: https://www.codeaurora.org/xwiki/bin/QAEP/WebHome
My Android runs 2.3.5 and the ro.product.board is msm7627a.
The problem is, there are 2 Gingerbreads for my msm7627a... "gingerbread" and "gingerbread_chocolate". And if I select one of them, I am presented with tons of other options.
I have built software from source in Ubuntu but something tells me that Android is completely different. Can somebody please point me in the right direction? After I find my device's source code, how will I use it to port CM?
And Mainly, which one is my Android's?
Note: I have attached the build.prop of my Rooted Stock ROM.

"contemporary" device specific code

I am new with the rom development and I would like to know if there is a way to create device specific code (mostly the device tree and the proprietary blobs) depending on the desired android sdk version. To be more specific, my device (Huawei P8 Lite) will not get an official nougat update and I would like to know the prerequisites and a good guide to follow, in order to create (and contribute to others - currently active devs) device specific code for my phone, since there is no open source for this phone.
Thanks in advance.
Many might think that this could be duplicate, but I haven't seen any question regarding the connection of the device tree and the android version ...

Android source code for Alcatel pop c7

Where can I found the source code for build android for Alcatel pop c7 ?
I wrote a whole piece on how you could contact them, but they actualy shared sources for alott of their phone's and such already.
But that doesnt make it a ready 1-2-3 step compile android for yourself Ow no, Alcatel like many companies only comply by the licenses to share any source they used or modifications they made if required by lisences. If they have a NDA with Mediatek (wich they do) they are probably not required to include proprietary software, tools or sources they got from mediatek.
Think mediatek chipset specific header files, drivers, firmware (only binairy blobs might be shared). maybe they share enough for you to compile a working kernel and filesystem, but no signing keys, maybe the resulting files will run on a rooted, Custom firmware phone but No updates, some hardware not working, maybe the phone funstion doesnt work (due to missing specific code to use the mobile chipset).
Quick google, Alcatel shared it on sourceforge: https://sourceforge.net/projects/alcatel/files/ search for (ctr+f)
Code:
OT_7041_20141204.tar.xz
A quick look inside reveals alott of the expected sources, generic hardware support and specific drivers (in blob form it seems). A readme with instructions seem to be included, but very basic,
So, here you go. The "sourcecode". all 162MB of it. or go search on Baidu, maybe an ex dev leaked internl documents and firmware sources :fingers-crossed: maybe this is just what you needed, enjoy

Categories

Resources