Newbie dev questions - T-Mobile LG G2x

Hi,
I'm going to start building my own ROMs. I'd like to start from only official sources and drivers. Then add my own improvements and features. Here are a few questions before I can start:
1) I know there is a tool in AOSP to extract proprietary drivers. Can I extract Froyo drivers from G2x and use it with Gingerbread AOSP?
2) I see many users reporting that "XXX doesn't work" (XXX is things like radio, GPS, Wi-Fi) with custom ROMs. Are those issues caused by incompatibility between GB AOSP and Froyo drivers? Or caused by patches done by ROM makers?
3) Does Google provide official sources for Google Apps? Or official binaries to bundle with a ROM?
Thanks!

rhinology said:
Hi,
I'm going to start building my own ROMs. I'd like to start from only official sources and drivers. Then add my own improvements and features. Here are a few questions before I can start:
1) I know there is a tool in AOSP to extract proprietary drivers. Can I extract Froyo drivers from G2x and use it with Gingerbread AOSP?
2) I see many users reporting that "XXX doesn't work" (XXX is things like radio, GPS, Wi-Fi) with custom ROMs. Are those issues caused by incompatibility between GB AOSP and Froyo drivers? Or caused by patches done by ROM makers?
3) Does Google provide official sources for Google Apps? Or official binaries to bundle with a ROM?
Thanks!
Click to expand...
Click to collapse
First off this is a Q&A question, not a dev section issue...
1) Not really...
2) These are typically kernel issues...
3) yes they do, check the CM7 Nightly thread

rhinology said:
Hi,
I'm going to start building my own ROMs. I'd like to start from only official sources and drivers. Then add my own improvements and features. Here are a few questions before I can start:
1) I know there is a tool in AOSP to extract proprietary drivers. Can I extract Froyo drivers from G2x and use it with Gingerbread AOSP?
2) I see many users reporting that "XXX doesn't work" (XXX is things like radio, GPS, Wi-Fi) with custom ROMs. Are those issues caused by incompatibility between GB AOSP and Froyo drivers? Or caused by patches done by ROM makers?
3) Does Google provide official sources for Google Apps? Or official binaries to bundle with a ROM?
Thanks!
Click to expand...
Click to collapse
1. In general for Linux, there are 2 types of drivers, kernel space drivers and user space drivers. The Kernel space drivers are available via kernel source dump from manufacturers, however, the user space drivers are often proprietary so they are released as binary only. In case for G2x, the current official release from LG is Froyo, so often time, CM7 is hacked to work with Froyo user space drivers until an official GB version is released.
2. Because of #1, often times, CM7 team has to work around the limitations they have by writing new code. The new code is not tested as thoroughly as major manufacturers QA department (a whole team of professional testers) so CM team release their nightly builds to serve as open public beta to hammer out bugs for the newly released workarounds/patches. It's amazing what CM team has done without access to all the necessary files and sources.
3. Google Apps are proprietary Google software, so no source code will be available to them (until Google decides to open source their apps, which is 100% their right and decision). Because Google holds the rights to their software, they also have a say in the distribution of their software. CM originally bundled Google Apps with their CM releases, but Google decided not to allow a major independent team to bundle their software and sent CM a legal letter asking them to stop. Ever since, CM team decided to release just a bare AOSP portion without Google Apps. I have followed CM's example and also does NOT bundle Google Apps with my Hybrid AOSP ROM.

Thanks a lot!
Sounds like I'd better build a Froyo ROM first.
For #3, I learned that I can download Google Apps binaries provided by CM team. My question is: where did CM team get the binareis?
faux123 said:
1. In general for Linux, there are 2 types of drivers, kernel space drivers and user space drivers. The Kernel space drivers are available via kernel source dump from manufacturers, however, the user space drivers are often proprietary so they are released as binary only. In case for G2x, the current official release from LG is Froyo, so often time, CM7 is hacked to work with Froyo user space drivers until an official GB version is released.
2. Because of #1, often times, CM7 team has to work around the limitations they have by writing new code. The new code is not tested as thoroughly as major manufacturers QA department (a whole team of professional testers) so CM team release their nightly builds to serve as open public beta to hammer out bugs for the newly released workarounds/patches. It's amazing what CM team has done without access to all the necessary files and sources.
3. Google Apps are proprietary Google software, so no source code will be available to them (until Google decides to open source their apps, which is 100% their right and decision). Because Google holds the rights to their software, they also have a say in the distribution of their software. CM originally bundled Google Apps with their CM releases, but Google decided not to allow a major independent team to bundle their software and sent CM a legal letter asking them to stop. Ever since, CM team decided to release just a bare AOSP portion without Google Apps. I have followed CM's example and also does NOT bundle Google Apps with my Hybrid AOSP ROM.
Click to expand...
Click to collapse

rhinology said:
Hi,
I'm going to start building my own ROMs. I'd like to start from only official sources and drivers. Then add my own improvements and features. Here are a few questions before I can start:
1) I know there is a tool in AOSP to extract proprietary drivers. Can I extract Froyo drivers from G2x and use it with Gingerbread AOSP?
2) I see many users reporting that "XXX doesn't work" (XXX is things like radio, GPS, Wi-Fi) with custom ROMs. Are those issues caused by incompatibility between GB AOSP and Froyo drivers? Or caused by patches done by ROM makers?
3) Does Google provide official sources for Google Apps? Or official binaries to bundle with a ROM?
Thanks!
Click to expand...
Click to collapse
I've written a good guide for building cm7. (link in my signature)
Sent from my LG-P999 using XDA Premium App

Related

[Q] Original G1 firmwares

I am looking for all the original HTC Dream firmwares, for ROM cooking purposes, but I couldn't find any (except the 1.5 and 1.6 ADP1 updates which aren't enough for me, I want 2.0, 2.1 and maybe 2.2 too).
Please do not misunderstand me, I know there are only a few limited releases for this phone (no official FroYo/Éclair, etc), under original I meant a clean, unmodified firmware (max modification is any app2sd, root). Is there any such file?
I'm very desperate to start cooking (and do not base it on any recent release, like CyanogenMod, or anything else. Of course they are very good, I appreciate all the modders' work, that's why I don't want to make anything based on it - it is like stealing their work. I know how it feels, as I am a Symbian developer for a while - I've been stolen, remade, etc, many times).
Honestly, I think CyanogenMod is the closest you're gonna get to a "vanilla" G1 Eclair/Froyo ROM.
There are plenty of people that base their ROM's off Cyanogen. Obviously I can't speak for him, but I don't think he minds people using his ROM's as long as they give him credit.
You could grab CyanogenMod and remove the extra apps he's put in there like ADWLauncher and that would be about as close to a stock ROM as you'll get, I think.
Here you go
http://android-dls.com/wiki/index.php?title=OTA_Updates
There is not a release from HTC that is for the G1 (ADP1) beyond 1.6. This is because 2.x required more space on /system then the G1 has. that is why the eclair/froyo versions of CyanogenMod require dangerSPL.
If you want a vanilla version of android, you will have to build from source, which you should do any how. You want to get the source from AOSP. But honestly, the work that the CM team has done makes the CM build a better option. Like the addition of FLAC support, for example. All of the source to CM is available on github, so you could, pull from AOSP and CM if you wanted.
CM is anything BUT stock. It is huge, with lots of stuff thrown in. Everything including the kitchen sink.
Another much more "basic" 2.2 to start with is Jubeh's: http://forum.xda-developers.com/showthread.php?t=709201
Note that BOTH have expressed that they have no problem with anyone building on their work and ask only for respectful citation of their work.
lbcoder said:
CM is anything BUT stock. It is huge, with lots of stuff thrown in. Everything including the kitchen sink.
Another much more "basic" 2.2 to start with is Jubeh's: http://forum.xda-developers.com/showthread.php?t=709201
Note that BOTH have expressed that they have no problem with anyone building on their work and ask only for respectful citation of their work.
Click to expand...
Click to collapse
exactly
you could also check out my AOSP roms in my 4shared box
I understand that they do not mind, but I (we) plan to create an Online ROM Kitchen, from base, and for this, I need the most basic firmwares. Probably I will build from source (though there is no proper guide how to build for a specific device, because G1 (dream) is in the added phone's folder (src/device/htc/dream/), and I could not find any guide to build it :S), but that is the last option (mostly because for Ubuntu, Java JDK 5 is not available anymore, and it IS required to build).
One more question: the Cyanogen source, is it the whole stuff I need to build a basic image, or do I need the AOSP too?
fonix232 said:
(mostly because for Ubuntu, Java JDK 5 is not available anymore, and it IS required to build).
Click to expand...
Click to collapse
I believe it is still available, you just need to change your sources list in ubuntu to get it Try this
fonix232 said:
I understand that they do not mind, but I (we) plan to create an Online ROM Kitchen, from base, and for this, I need the most basic firmwares. Probably I will build from source (though there is no proper guide how to build for a specific device, because G1 (dream) is in the added phone's folder (src/device/htc/dream/), and I could not find any guide to build it :S), but that is the last option (mostly because for Ubuntu, Java JDK 5 is not available anymore, and it IS required to build).
One more question: the Cyanogen source, is it the whole stuff I need to build a basic image, or do I need the AOSP too?
Click to expand...
Click to collapse
sdk is now compatible with jdk 6
you can install jdk 5 on ubuntu 9.10+
add
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
to your repositories
then
Code:
sudo apt-get update
sudo apt-get install sun-java5-jdk
fonix232 said:
(though there is no proper guide how to build for a specific device, because G1 (dream) is in the added phone's folder (src/device/htc/dream/), and I could not find any guide to build it :S)
Click to expand...
Click to collapse
Did you do a google search?
http://source.android.com/source/building-dream.html
** note that AOSP 2.2 will build for dream just fine, some things may have changed since that guide, and some stuff will be quite broken. That is why I point you at Jubeh's build -- it is close to stock, but fixed/functional.
but that is the last option (mostly because for Ubuntu, Java JDK 5 is not available anymore, and it IS required to build).
Click to expand...
Click to collapse
Sun/oracle still provides JDK5 from their legacy site... or as mentioned, ubuntu has it still in repo.
One more question: the Cyanogen source, is it the whole stuff I need to build a basic image, or do I need the AOSP too?
Click to expand...
Click to collapse
As I said, you can't build a basic image from CM source -- it simply isn't BASIC, it is as mod as you get.
It is enough to build a full CM build, however....
lbcoder said:
Did you do a google search?
http://source.android.com/source/building-dream.html
** note that AOSP 2.2 will build for dream just fine, some things may have changed since that guide, and some stuff will be quite broken. That is why I point you at Jubeh's build -- it is close to stock, but fixed/functional.
Click to expand...
Click to collapse
Yes I did, I was hoping in a much more modder-made step-by-step tutorial (google was always a bit foggy with their build instructions).
Sun/oracle still provides JDK5 from their legacy site... or as mentioned, ubuntu has it still in repo.
Click to expand...
Click to collapse
Tried to install it over Lucid Lynx (10.04) but both Synaptic both apt-get said the given package does not exist.
As I said, you can't build a basic image from CM source -- it simply isn't BASIC, it is as mod as you get.
It is enough to build a full CM build, however....
Click to expand...
Click to collapse
Under "basic image" I meant a proper, final, working image of CyanogenMod. But if it is enough, I will try with it, thank you.
fonix232 said:
Yes I did, I was hoping in a much more modder-made step-by-step tutorial (google was always a bit foggy with their build instructions).
Tried to install it over Lucid Lynx (10.04) but both Synaptic both apt-get said the given package does not exist.
Under "basic image" I meant a proper, final, working image of CyanogenMod. But if it is enough, I will try with it, thank you.
Click to expand...
Click to collapse
yawn
http://www.oracle.com/technetwork/java/javase/system-configurations-139801.html
or just add the jaunty repos..
AND as I said, you can use JDK 6 which is in 10.04..
http://developer.android.com/sdk/index.html#quickstart
this is all very basic stuff, maybe you should rethink what you want to do and just kang an AOSP FroYo like some other 'devs' did
Firerat said:
yawn
http://www.oracle.com/technetwork/java/javase/system-configurations-139801.html
or just add the jaunty repos..
Click to expand...
Click to collapse
Yea, saw your post too late, sorry
AND as I said, you can use JDK 6 which is in 10.04..
http://developer.android.com/sdk/index.html#quickstart
this is all very basic stuff, maybe you should rethink what you want to do and just kang an AOSP FroYo like some other 'devs' did
Click to expand...
Click to collapse
For the SDK maybe, but I don't want to develop applications, but to understand source compiling, learn how to create ROMs (and maybe automate it), and such things. I never said I'm a developer - I just want to be one. And that will not happen soon, as I have to learn a lot, even though I was following Android from the very beginning.

[Q] Noob development question

I don't know a whole lot about how android phones work so this is probably a stupid question.
If the android operation system code is open source and available for anyone to download what's stopping people from putting pure AOSP goodness on any given phone? Is it the kernel or bootloader or what?
Fe_Man said:
I don't know a whole lot about how android phones work so this is probably a stupid question.
If the android operation system code is open source and available for anyone to download what's stopping people from putting pure AOSP goodness on any given phone? Is it the kernel or bootloader or what?
Click to expand...
Click to collapse
from my understanding it has to be completely recoded or whatever to run on the hardware of a new phone, I think Cyanogen and crew just supply the base and framework to build on... but yes its out there for anyone to try and port, typically takes a team of devs with different specialties
blazing through on my VZ Droid Charge 4G
Kernel, RIL, and potentially a number of other things.
Just like drivers has to be ported for Linux on any PC (if the company didn't already code one for it), drivers has to be ported to a pure AOSP ROM from a TouchWiz source (which is still Android-based).
Most company-applied UIs to Android are deep in the system, therefore, you can't just take some files and put it into an AOSP ROM and have it magically work (known as kanging from another ROM), but you have to write in some stuff and build it specially for AOSP before it works.

dependency of user space on kernel version

Regarding community mods' efforts on porting ICS to all these devices that have no official ICS support (yet), I wonder why so many hardware does not work (see e.g. status of lg optimus 2x p990.
1.) Does ICS depend on so many new kernel features, that they can't use the old kernel of Android 2.3.x?
2.) Howcome the drivers in the 2.3.x's kernel are not available? The kernel is GPL, isn't it? So by distributing phones with Android, the manufacturers have to open-source their drivers. Is there no central Android kernel repository? Why don't they get drivers upstream?
Looks like you need to join this:
https://groups.google.com/forum/?fromgroups#!searchin/android-kernel/relation$20between$20android$20version$20and$20kernel
thorstenhirsch said:
2.) Howcome the drivers in the 2.3.x's kernel are not available? The kernel is GPL, isn't it? So by distributing phones with Android, the manufacturers have to open-source their drivers. Is there no central Android kernel repository? Why don't they get drivers upstream?
Click to expand...
Click to collapse
Correct, but they don't always do it -.-
Sent from my ice cream powered Nexus S

[MOD][4.1.2 or 4.2.1][GPL] OpenPDroid [v1.0, 2013-01-14]

What is OpenPDroid?
OpenPDroid is a set of modifications to the Android framework and libraries which allows fine-tuning of the data which applications are able to retrieve about your device, your account, your messages, and more. Specifically, it is a Privacy service provider (using the PDroid 1.51 interface) forked from CollegeDev's PDroid 2.0, which is itself an extension of Syvat's PDroid.
A word to the wise
I'm just adding this for those who are just looking at OpenPDroid, or are trying to work out how to get involved.
Mateor, wbedard and I are currently in the process of moving repositories etc to a github 'organisation' in order to make it much easier for users to know which are the latest patches, where to report issues, etc. I expect this will be done soon (in the next day or so), and I'll post more information then.
Thanks for your suggestions on ways of managing repositories, patches, etc.
What does it do?
When configured using either FFU5y's PDroid Manager or CollegeDev's PDroid 2.0 App (up to v1.52), OpenPDroid intervenes in API interactions by apps (e.g. when an app attempts to retrieve your location, phone number, or contacts) and provides either real data, empty data, fake data, or random data, depending on the user setting. Unlike apps which actually remove permissions, OpenPDroid does not actually modify the permissions that an app has and so is much less likely to cause the app to crash as a result of data access being denied.
Note that CollegeDev's PDroid 2.0 App does not officially support OpenPDroid, so please don't contact CollegeDev for support if you're having problems with PDroid 2.0 App with OpenPDroid. You can post here, and we may be able to help you.
PDroid Manager does officially support OpenPDroid.
The complete list of data and functions controlled by OpenPDroid can be found at the end of this post, in What (specifically) can I control with OpenPDroid?, but at present it is identical to that offered by PDroid 2.0
For a list of issues which have been identified, please see below the Known Issues.
What makes OpenPDroid different to CollegeDev's PDroid 2.0 or Syvat's PDroid
There are a few differentiators, some technical, and some are philosophical or pragmatic. Both are important
Technical
Two major security issues are fixed, which allow apps to bypass many or all PDroid or PDroid 2.0 settings. (We are in the process of notifying CollegeDev of these issues, and sample code will not be released for at least a week to give him a chance to fix the problems in PDroid 2.0. Fixes have been added to PDroid in auto-patcher, so if you are using PDroid please consider re-patching your ROM).
It is available for Android 4.2.1
Database access threading has been rewritten, as the implementation actually caused bottlenecks and didn't protect from simultaneous read-writes (which is generally the goal of this type of code)
A bug which was causing 'null pointer exceptions' to occur (but not a crash) is fixed.
Other code tidy-up or restructuring which doesn't change functionality
Non-technical
The intention of OpenPDroid is to have a PDroid version which is developed in the open, and which welcomes (although doesn't necessarily always adopt) user input - especially code. This means that the source for OpenPDroid versions in progress is on a public repository (Github at the moment), that changes are put into the Github as they are made, and that other people can contribute code to it. We also hope that by having engaging people more in the development process, there will be more eyes trying to understand the code, and so security-related issues will be identified and address more efficiently.
We also want to make the discussion/decision making processes for what is in and what is out transparent, so that users can understand why some things are included and others are not, and actually influence the decision-making process.
How do I install it?
There are two 'supported' ways to install OpenPDroid:
mateor's auto-patcher (available for OS X, Linux and Windows) is the recommended way if you are not familiar with building from source, and have a supported ROM (CM10, CM10.1, AOKP Jellybean 4.1.2, AOKP Jellybean 4.2.1, AOSP 4.1.2, and AOSP 4.2.1).
Patch and build a ROM from source (see How do I compile a ROM with OpenPDroid). Patches are provided for: CM10, CM10.1, AOKP jb, AOKP jb-mr1, AOSP 4.1.2, AOSP 4.2.1
If you are using a stock ROM, then someone may have implemented OpenPDroid into that ROM - and if they have, they deserve huge credit because it is a difficult and unpleasant job.
Currently we are not aware of any ROMs which include OpenPDroid: if you are aware of one, please notify us and we'll list it here.
There are several reasons your preferred ROM may not currently be supported. First, adding support for a ROM in auto-patcher requires building the ROM with the OpenPDroid patches. We are only able to do this if the source is available for the ROM. (Note: strictly speaking, it is possible to build patches for ROMs where source is not available, as for stock ROMs. However, for non-stock ROMs the rate of change makes this fairly unmaintainable).
Second, there are a great many ROMs out there and it is not possible for us to build for all these ROMs. However, if you are able to patch source and build, then you may be able to build a version of your preferred ROM with OpenPDroid support - and even better, contribute patches for your preferred ROM to auto-patcher. For more details about contributing patches to auto-patcher, please contact Mateor.
How do I get the source?
The source is available as patches, or in complete form, from the OpenPDroid repositories
The source-code patches from the OpenPDroidPatches repository: . Note that there are two branches: 4.2.1 and 4.1.2. These source patches presently work against numerous roms (including CM 10/10.1, AOKP 4.1.2/4.2.1, AOSP 4.1.2/4.2.1, and potentially others)
[*] Complete repositories for the modified sections of the system are likewise located in the [URL=https://github.com/OpenPDroid/]OpenPDroid github. There are several repositories and branches; see the section 'What are all these repos and branches?' for more details about the content of the github.
What is the licence?
PDroid was under under the GPL v3 licence (as shown on the Google Code page), and as a result all derivative works (e.g. OpenPDroid) are likewise under the GPL v3 (or later) licence. Thus, OpenPDroid is under the GPL v3 licence, with no additional special conditions. The only way a PDroid derivative can be under any other licence is if the author contacts Syvat, gets him to agree provide PDroid under another licence, and then the author extends it.
Who's work is it?
PDroid was original developed by Syvat (with contributions and ports from others such as Pastime1971 and Mateor), and then CollegeDev extended it to created PDroid 2.0 (previously called PDroid Addon, then PDroid Extension). PDroid 2.0 has been forked by FFU5y, Mateor and wbedard to create OpenPDroid. Thus, OpenPDroid is the product of the work of many.
The following list includes all the contributors I know of for any of these version of the core (in alphabetical order):
CollegeDev (PDroid 2.0)
FFU5y (OpenPDroid)
Mateor (Porting PDroid to 4.x, porting PDroid 2.0 to 4.1.2, OpenPDroid)
Pastime1971 (Porting PDroid to 4.x, porting PDroid 2.0 to 4.1.2)
Syvat (PDroid)
Wbedard (OpenPDroid)
How do I report issues?
The best way to report an issue is to lodge it in github, although you may want to also post in this thread to let others know that the issue exists (and has been lodged). Please ensure you provide details of the issue you are experiencing (i.e. under what circumstances does it happen, what do you observe, etc) and please include a logcat: see how to get a logcat.
If you don't have a Github account, you can post the issue here (and note that you haven't lodged it in Github) so one of the team can add the issue to Github.
I want to contribute
Great! The whole point of OpenPDroid is to encourage community contribution in the form of ideas, testing, code, etc.
Presently, there isn't really a lot (read: any) documentation about how OpenPDroid works. However, this will be forthcoming, as will an API specification for the Privacy service, which will allow you to write your own management application (like PDroid Manager or the PDroid 2.0 App) if you so desire.
Right now, these are the particular areas of the service which would benefit from developer/code contributions.
Transient caching of privacy settings read from the database, ideally with destruction of cache entries when they are too old or memory conditions are low
Refining the locking code to ensure that reads are not unduly held up by write locks (note: this isn't a problem *yet*, but will be with the inclusion of batch support. More details soon).
Other performance optimisations
Adding good quality code comments - mainly function descriptions, etc
Back-porting of OpenPDroid to pre-4.1.2, so users currently only able to use PDroid can move to OpenPDroid and get the new features.
There are many other things you can work on, including adding whole new options (i.e. security features). If you are planning on creating new security features, however, please lodge the enhancement in github first so it can be discussed. Not every feature which seems like a good idea will be a good fit for OpenPDroid, and it may save some time if a prospective feature can be refined before it is fully coded.
How do I compile a ROM with OpenPDroid
To build a ROM with OpenPDroid, you will need to patch the source code using the provided patches, and then build as you normally would.
To patch the source:
Download the most relevant of the source code patch packages attached to this post
Extract the patch files from the package
On the command line, go to the root of your Android source code: it will contain folders such as 'build', 'frameworks', 'vendor', etc.
Patch the source code with each patch file using the following command
Code:
patch -p1 < <patch_filename>
You can then build your ROM as you would normally.
If you have previously built the ROM in the folder you are using, or you have previously built PDroid 2.0, Syvat's original PDroid, etc it can be helpful to delete the following directories:
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates
out/target/common/obj/JAVA_LIBRARIES/framework2_intermediates
out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates
Not all of these directories will exist for all ROMs, so if you try to delete one and it is missing that is not cause for concern.
What (specifically) can I control with OpenPDroid?
Currently, access to the following data and functions can be controlled (note this list exactly matches PDroid 2.0):
Code:
[b]Data access:[/b]
Device ID (IMEI/MEID/ESN)
Phone/voicemail number
Sim Card Serial (ICCID)
Subscriber ID (IMSI)
Source number of incoming calls
Destination number of outgoing calls
Network location
GPS location
Authentication credentials
List of accounts, including identifiers (e.g. gmail e-mail address)
Contact list and details
Call log
Calendar
Read and send SMS
Read and send MMS
Record audio (not phone calls)
Camera
Browser bookmarks and history
System logs
Wifi Info, such as current access point, IP address
Network information (detailed network information such as connection state, IP address, etc)
Android ID (a unique installation ID for your Android installation)
SIM information (your phone operator and country)
Restrict access to iptables command
ICC Access (reading or writing SMS on the SIM or R-UIM)
[b]Actions:[/b]
Make phone calls
Start on Boot (or more accurately, get notified when the boot is complete)
Switch Wifi State (turn wifi on and off, change access points)
Switch network state (turn off or on mobile data)
[b]Other[/b]
Force online state (always tell the app that the device is online: only needed if denying Wifi info and/or Network info)
Known Issues
Thanks to those users who have posted bug details, we now have a list of known issues. I have tried to indicate which will be fixed in the next release, but it is tentative. These issues can also be found (and discussed) on the github issues list
Requests for tower location are always blocked (ETA unknown)
Device lags when GPS is active (ETA: next release; experimental fix in 'devel' branch of 4.2.1-based ROMs: same fix as the below camera lag issue)
Camera lags when OpenPDroid is installed (ETA: next release; experimental fix in 'devel' branch of 4.2.1-based ROMs)
What are all these repos and branches?
In the github account containing the OpenPDroid repositories, there are numerous repositories. Many of these are OpenPdroid related: but not quite all of them. In addition, not all of them are relevant to each ROM.
The main repositories to be aware of are:
platform_frameworks_base
This contains the framework/base/* code, which constitutes the most important guts of OpenPDroid in 4.1.2 and 4.2.1. Other projects sometimes use the name android_frameworks_base for this.
platform_frameworks_opt_telephony
This contains the framework/opt/telephony code, which was split out from framework/base/* in 4.2.1.
platform_build
This contains the build code, mostly makefiles, and is present in 4.1.2 and 4.2.1.
platform_libcore
This contains core operational code outside of the framework (e.g. executing shell tasks, etc).
platform_packages_apps_mms
This contains the code for the Mms app, for 4.1.2 and 4.2.1.
platform_packages_apps_mms
This contains the code for the Mms app, which is modified to affect the ability of apps to send and receive MMS.
platform_packages_apps_videoeditor
This contais the code for the VideoEditor app. The only change here is including 'framework2', which is only required for AOSP 4.1.2.
platform_system_core
This contais a range of important core code, and is modified only for AOSP 4.1.2 to include 'framework2.jar' in the paths included at boot time.
The branches used include two key naming components. First, the rom:
e.g.
cm-10.1* = CyanogenMod 10.1
cm-jellybean* = CyanogenMod 10, cutting edge
cm-jellybean-stable* = CyanogenMod 10, stable release
aokp-jb-mr1* = AOKP 4.2.1-based
aokp-jb* (without the mr1) = AOKP 4.1.2-based
jb-mr0* = AOSP 4.1.2
jb-mr1* = AOSP 4.2.1
pa-jellybean* = ParanoidAndroid (currently buggy)
then the OpenPDroid version:
-openpdroid = the current stable release of OpenPDroid
-openpdroid-devel = the current development line of OpenPDroid
For development, the jb-mr1-release-openpdroid-devel is where I do my initial development, and I think expand it to be on the other -devel branches once I've tested it a bit.
FAQ
How do I include PDroid Manager in the ROM I am building so it can update from Google Play: see here
How do I include PDroid Manager in the ROM I am building so it is compiled during build: see here: TamCore provided a fix for the problem he mentioned, and it has been merged.
How do I build using the bleeding-edge (devel) code: see here, although there is a bit more to it than that. I'll provide extra details when time permits, but the important stuff is in this thread.
I have a question or issue not covered in this post
We'll be adding more to this post in the next day or two. Please be patient =)
Note to mods
I wasn't sure if this belonged in this forum, or in 'Apps and Games' but since it is not trivial to install I figured this was a safer bet.
reserved
Thank you!!!! I'll test
Sent from my LG-P920 using xda app-developers app
Announcement: OpenPDroid build patches, as well as the entire history of the PDroid framework, have been rebuilt and restructured and pushed to our github page. There are build patches for all Android versions from 2.3 to current. You can also take a look at the commit history of the original PDroid framework by svyat, from initial commit to the point where he halted development, 1.32 for gingerbread.
Build patches are here.
PDroid project history is here.
OpenPdroid for Android 4.2.1/4.2.2
These are the current build patches for Android 4.2.1 and 4.2.2 and should generally reflect the current state of the jb-mr1-release-openpdroid branch. The latest commist are not always reflected in the build patches, bleeding-edge development is in the -devel branches.
We realize that the patch/branch situation is not perfect, it is work in progress.
These build patches should work for most roms. As of their creation (1/17/13) they applied cleanly to AOKP, AOSP, Cyanogenmod, ParanoidAndroid and others.
The current best advice as to how to apply/remove them is below. Some easier application methods are being discussed.
To Apply
Code:
cd ~/android/system/build; git checkout -b pdroid; patch -p1 < ~/openpdroid_4.2.1_build.patch
cd ~/android/system/libcore; git checkout -b pdroid; patch -p1 < openpdroid_4.2.1_libcore.patch
cd ~/android/system/packages/apps/Mms; git checkout -b pdroid; patch -p1 < openpdroid_4.2.1_Mms.patch
cd ~/android/system/frameworks/base; git checkout -b pdroid; patch -p1 < openpdroid_4.2.1_frameworks_base.patch
cd ~/android/system/frameworks/opt/telephony; git checkout -b pdroid; patch -p1 < ~/openpdroid_4.2.1_frameworks_opt_telephony.patch
cd ~/android/system; . build/envsetup.sh; brunch <DEVICE_TARGET>
To Remove
Code:
cd ~/android/system
rm -rf out/target/common/obj/JAVA_LIBRARIES/framework_intermediates \
out/host/common/obj/JAVA_LIBRARIES/layoutlib_intermediates \
out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates \
out/target/common/obj/APPS/Mms_intermediates
[OR]
Code:
cd ~/android; make clobber
and to reset your source tree**
Code:
cd ~/android/system/build; git checkout . ; git clean -df
cd ~/android/system/libcore; git checkout . ; git clean -df
cd ~/android/system/frameworks/base; git checkout . ; git clean -df
cd ~/android/system/frameworks/opt/telephony; git checkout . ; git clean -df
cd ~/android/system/packages/apps/Mms; git checkout . ; git clean -df
cd ~/android/system; repo abandon pdroid
If OpenPDroid intrigues you, yet the thought of applying all these patches gives you pause, there is a tool that can attempt to patch the framework of an already compiled rom called The Auto-Patcher.
OpenPDroid is an open source fork of the PDroid framework, as written by Svyat and expanded by CollegeDev. We are always looking for contributors, come see us on XDA or submit a pull request.
I'm glad to see there's a more open PDroid project happening. I'm not sure what I'll be able to contribute, but I'll find something to help out with.
Looks like I'm going to have to spend some quality time with the CM10.1 codebase tonight.
Decimalman:
If you look in my github (http://github.com/wsot) you will find there are forks of all the modified parts of Android, and these include forks from cm-10.1 (branches called cm-10.1-openpdroid). You can pull directly from these repositories into your existing repositories if you would prefer to do that, rather than apply patches to the source.
For cm-10.1, the repositories you'll care about are:
* platform_frameworks_base
* platform_libcore
* platform_build
* platform_packages_apps_mms
* platform_opt_telephony_common
Each of these has a branch for cm-10.1-openpdroid with the changes included.
This is great work guys, thanks!
I will test it and if everything works, I will release the next extended CM10/FXP ROM with it.
Is there already a solution for including PDroid Manager and still being able to get updates from the market?
I have one question, did you fix this bug too?
Is there any plan to cooperate with CollegeDev?
It would be a pity if development for PDroid would be fragmented.
M66B said:
I will test it and if everything works, I will release the next extended CM10/FXP ROM with it.
Click to expand...
Click to collapse
Excellent!
M66B said:
Is there already a solution for including PDroid Manager and still being able to get updates from the market?
Click to expand...
Click to collapse
If you include PDroid Manager as-is from the PDroid Manager thread, then it has the same signature as the one in the market. Because of that, it should be able to update from the market.
M66B said:
I have one question, did you fix this bug too?
Click to expand...
Click to collapse
No, thanks for pointing that out. I've updated the source and pushed it to Github with that change. It'll be in the next release, which I don't imagine will be all that far away.
M66B said:
Is there any plan to cooperate with CollegeDev?
It would be a pity if development for PDroid would be fragmented.
Click to expand...
Click to collapse
We have not discussed with CollegeDev any kind of collaboration at this stage. Because both OpenPDroid and PDroid 2.0 core are GPL licensed, I imagine there will be code migration in both directions as things are fixed and improved.
The main reason that OpenPDroid has appeared (rather than us just making a 4.2.1 port of PDroid 2.0) is because long periods of development of PDroid 2.0 went on without the code being available, and so there was really no scope to collaborate.
The reason we are planning to produce an OpenPDroid API document is essentially so that there is a clear (and shared) idea of what can be expected from a minimal PDroid implementation, which both PDroid 2.0 and OpenPDroid cover at this stage. That way even if additional features are added (or someone creates a whole new PDroid implementation from scratch) there can be a shared interface to allow interoperability of management apps (like PDroid Manager).
I think there will be some 'fragmentation', but our hope is that there can be a common API between the versions that users will not have to suffer as a result, and can continue to use their preferred management app, and so forth.
Whether than will happen, I can't say yet.
Thank you! That's what I've been waiting for. I'll integrate this in OpenSensation2 asap
FFU5y said:
If you include PDroid Manager as-is from the PDroid Manager thread, then it has the same signature as the one in the market. Because of that, it should be able to update from the market.
Click to expand...
Click to collapse
Good! Could you make a 'latest' URL available somewhere (github?), so I can integrate it in my build process?
M66B said:
Good! Could you make a 'latest' URL available somewhere (github?), so I can integrate it in my build process?
Click to expand...
Click to collapse
Just added https://github.com/wsot/pdroid_manager_build - the sole purpose of which is now to have the latest PDroid Manager binary.
You will be able to get the file from: https://github.com/wsot/pdroid_manager_build/blob/master/PDroid_Manager_latest.apk?raw=true
FFU5y said:
Just added https://github.com/wsot/pdroid_manager_build - the sole purpose of which is now to have the latest PDroid Manager binary.
You will be able to get the file from: https://github.com/wsot/pdroid_manager_build/blob/master/PDroid_Manager_latest.apk?raw=true
Click to expand...
Click to collapse
Thanks, I will integrate this tonight in my build process and I will document here how I did that, so other developers can maybe do the same.
M66B said:
Thanks, I will integrate this tonight in my build process and I will document here how I did that, so other developers can maybe do the same.
Click to expand...
Click to collapse
That would be excellent! Let us know how it goes.
Thanks for improving pdroid!
Great work :good:
but the Problem I got is that I want to test it on my Nexus 4 with ParanoidAndroid...
when will it be possible ?
because i feel a little bit naked without pdroid and i don´t like to use LBE
seety said:
Thanks for improving pdroid!
Click to expand...
Click to collapse
Cheers. We're happy to be able to expand on the great work done by others.
seety said:
... I want to test it on my Nexus 4 with ParanoidAndroid...
when will it be possible ? ...
Click to expand...
Click to collapse
If you haven't already, I suggest you try to patch with auto_patcher: I believe that quite a lot of the unofficial PA builds will actually patch even though we haven't specifically compiled for them.
While we were preparing for release, the source for ParanoidAndroid was not available, which is why there are not specific patches for it. The source has since been made available, so I expect we will have specific patches for PA integrated into auto_patcher quite soon. Exactly how soon is a bit hard to say, but we are certainly working on it.
Hi
I tried to find PDroid Manager in Play Store but can't find it.
Did a Web install from Play Store & it says my device is not compatible with the app.
I'm on Samsung Galaxy S3 i9300.
Is it really incompatible? If no where can I get the app?
Thanks.
Edit: lol Found the app in OP
Ignore me
Thanks for the good work, I'm test compiling to my build now.
temasek said:
Hi
I tried to find PDroid Manager in Play Store but can't find it.
Did a Web install from Play Store & it says my device is not compatible with the app.
Click to expand...
Click to collapse
Actually, it is a really valid question. I haven't updated the PDroid Manager in Google Play to be marked as supporting 4.2.1 yet. This will be done within the next 24 hrs, and you'll then be able to update from Google Play as new releases come out.
temasek said:
Thanks for the good work, I'm test compiling to my build now.
Click to expand...
Click to collapse
I hope it all goes smoothly, but if not let us know.
FFU5y said:
Cheers. We're happy to be able to expand on the great work done by others.
If you haven't already, I suggest you try to patch with auto_patcher: I believe that quite a lot of the unofficial PA builds will actually patch even though we haven't specifically compiled for them.
While we were preparing for release, the source for ParanoidAndroid was not available, which is why there are not specific patches for it. The source has since been made available, so I expect we will have specific patches for PA integrated into auto_patcher quite soon. Exactly how soon is a bit hard to say, but we are certainly working on it.
Click to expand...
Click to collapse
Hey thanks for the quick answer!
I tired the auto_patcher several times sadly it doesn't work...
maybe these logs are interesting for you:
Try to patch with CM Patches / With AOSP Patches
Perhabs it work if you try to patch this rom, but i am not angry if you got no time for this.
thanks in advance
seety said:
Hey thanks for the quick answer!
I tired the auto_patcher several times sadly it doesn't work...
maybe these logs are interesting for you:
Try to patch with CM Patches / With AOSP Patches
Perhabs it work if you try to patch this rom, but i am not angry if you got no time for this.
thanks in advance
Click to expand...
Click to collapse
Thanks for the details. We will be prepping patches for PA as a high priority so don't worry, you shouldn't be waiting long
I've compiled successful OpenPDroid and booted up fine. So far so good.
I'm letting my users of CM10.1 i9300 Unofficial BUILD to try your wonderful work.
This is my changelog for my CM10.1 Unofficial build V34 for i9300
http://forum.xda-developers.com/showpost.php?p=36697391&postcount=6919
Again, thanks for your good work.

List with devices having official releases of TWRP, LineageOS and other roms

Dear community, I think this list is the first of its kind.
Purpose
The main purpose of the whole project is to help newcomers find the relevant TWRP and Roms for their devices and ultimately make the installation process as easy as possible. This list also serves the purpose of giving an overview of devices which can run custom android roms for people who do not have such a device yet and would like to buy one but don't know which ones to choose from.
Goal
Its goal is to contain as many devices (with name, model name and codename) as possible which also have official releases of TWRP, LineageOS, Resurrection Remix, Omnirom or Carbonrom. The list also contains some working TWRP builds and roms that I saved to a personal archive some time along the last years - mainly for older devices without newer roms and for good roms that just did not made it to an official release.
The Free-Droid project
The creation and continuous update of this list is tied to the Free-Droid project, mainly because it is scraped and put together by the same ruby code that is used inside the Free-Droid One-Click Rom Installation Assistant.
Why only these chosen roms? Can another rom be added?
The choice of roms showing in the list is constrained by these factors:
free and open source (no google apps included)
The website with the official releases can be scraped (programmatically read and evaluated) with ruby code down to the individual download links for the roms
(Preferred) The rom zips have signature spoofing support or are patchable with the NanoDroid patcher
A lot of roms fail at one of these constraints. I tried to add crDroid, but their website is pure javascript and can't be scraped easily. AospExtended was added by using the OTA API, but it turned out that the API server is way too unreliable. What might be possible and get added are mokee and /e/.
Updates
The list is automatically updated weekly and should always point to the latest available roms.

Categories

Resources