How can I add Project Fi support to my ROM? - Nexus 6 Developer Discussion [Developers Only]

I've compiled 7.0_r1 for the Nexus 6, and I'd like to get project fi working (with wifi calling, if possible). I tried adding opengapps and the Google Dialer suggested in the Pure Nexus thread, but it seems I'm missing some packages because I can't get the phone to register with Fi.
Can someone point me to the right documentation, packages, git commits, makefile, etc.? I'm familiar with the build system and AOSP internals, just not sure what specific pieces I need.
Thanks.

Out of curiosity, do you get error messages during the registration process? What happens, specifically?

Related

[MOD] [HACK] Modifying stock Mms.apk to change user-agent

I have been reading around on the net about people previously modifying stock Mms apps on different Android based devices to change the user-agent used when sending MMS.
I can extract all the files, modify them and recompile and push back to my phone. But the strings I'm editing currently are having no effect on the messaging, or they're just causing the Mms app to FC when you add an image to the message.
Is there anyone out there that could help me with this as I'm sure a lot of people would benefit from this.
I can provide the Mms.apk extracted with the contents of classes.dex extracted too if anyone requires them.
So far I've edited the following files:
/com/android/mms/transaction/HttpUtils.smali
/com/android/mms/MmsConfig.smali
But literally only made small changes to various strings.
I hope there's someone who can help me out.
You do know the source of mms.apk is available right?
This is why I'm asking for help.
Last time I asked about the source someone told me that the latest stuff wasn't available.
This has already been done and the source is here, and the commit that added user agent selection is here.
If you want to see the code for the true stuck Mms, that can be found here.
Compiled for you and attached. There's also a whole bunch of extra bits that aren't in the stock Mms.apk like black background, customizable notifications, and other features that have been added in.
ChainsDD said:
This has already been done and the source is here, and the commit that added user agent selection is here.
If you want to see the code for the true stuck Mms, that can be found here.
Compiled for you and attached. There's also a whole bunch of extra bits that aren't in the stock Mms.apk like black background, customizable notifications, and other features that have been added in.
Click to expand...
Click to collapse
Awesome work! Works great on my Liquid.
appreciate posting the question and the Mms.apk. looks and works great on my N1.
ChainsDD said:
This has already been done and the source is here, and the commit that added user agent selection is here.
If you want to see the code for the true stuck Mms, that can be found here.
Compiled for you and attached. There's also a whole bunch of extra bits that aren't in the stock Mms.apk like black background, customizable notifications, and other features that have been added in.
Click to expand...
Click to collapse
Thanks for the info, I had seen one previously modified but it wasn't for the nexus one. I'll give this a try later.
Can I ask how you compile a single app from the git repo? I was having trouble doing it earlier and found the only way it would work successfully is if I compiled the entire OS image and took out the app I wanted. I'm clearly doing something wrong
Using ubuntu 32bit, I have the git repo already sync'd.
As far as I know, the only way to compile a single app is to compile the whole OS. Once you've compiled it all, you can just type 'make (app you want to compile)', for example 'make Mms', or 'make Launcher2', from the root directory of the source. Capitalization is critical, the apps are located in packages/apps and the folder name is what you use to make each. Once an app is compiled, it'll be located in out/target/product/passion/system/app.
ChainsDD said:
As far as I know, the only way to compile a single app is to compile the whole OS. Once you've compiled it all, you can just type 'make (app you want to compile)', for example 'make Mms', or 'make Launcher2', from the root directory of the source. Capitalization is critical, the apps are located in packages/apps and the folder name is what you use to make each. Once an app is compiled, it'll be located in out/target/product/passion/system/app.
Click to expand...
Click to collapse
Thanks, I'll try that on this current build I just compiled and see what happens.
Are there any adverse effects of compiling the stock OS and recompiling an app to then copy to a different version of the OS? I obviously don't run stock OS on my device, I run Cyanogens ROM.
Just want to make sure I could compile on 2.1-update1 and run on Cyanogens.
Often times there's no problem with that, but it's usually best to use a build environment that matches your run environment. You can download the full CM source from his github much the same was you did the stock android source, full instructions here. The only thing those instructions leave out is that after you've synced up, you need to plug your N1 in and from the source root run
Code:
cd vendor/google/passion
./extract-files.sh
That pulls in the required binaries that aren't open sourced yet.
does this work on non-rooted phones?
No. And it's implemented in just about all the custom ROMs now.
i'm about to root my phone, does this app resize pix and stuff like Handcent?
Any words for MMS mod for sense rom?
Hey there, i am just wondering weather you finally succeeded to modify your mms.apk
I am on htc with sense rom, updated to latest one. after update mod mms from cm keeps giving me FC...no longer able to use mms... i want to mod the mms.apk. any help will be very useful.
Thanks!

[Q] Where to start?

Hello,
I want to compile Android from source. I want to just build a fully default Gingerbread that would run nice on my phone. I got the Android source, kernel source (kernel-2.6.32-U8800-Froyo) and now I don't know what to do next. I compiled the generic one already (lunch full-eng) and it ran fine on the emulator.
My most important question is, if I make it otapackage and flash it, would it start? If it doesn't, can I recover? What folders/files are essential if I make my own device for example in "device/huawei/u8800"
Also, where can I find a GOOD porting guide? I have found some that are old and not used anymore.
Some links
Start by going through source.android.com for the general basics if you havent already.
Also, even though Google removed the PDK (Platform Developer's Kit) from the site, it has been mirrored on kandroid here: http://www.kandroid.org/online-pdk/guide/index.html
The stuff in the the PDK, although inadequate, is still very important and explains how to create the necessary makefiles to add to the build, configuring for a new market, etc. etc.
Also,
watch these two videos over here. These were very helpful in my ROM development:
http://www.youtube.com/watch?v=1_H4AlQaNa0
http://www.youtube.com/watch?v=rFqELLB1Kk8
Learn to use github. It is helpful for you to keep track of your changes as well as incorporate others works into your own.
http://help.github.com/
Finally, Cyanogenmod repos are your BEST friend. Almost all major AOSP ROM devs owe some sort of thanks to those guys who have done so much. If you want to check out some of the code changes and patches that you want to incorporate look here on their gerrit:
review.cyanogenmod.com
If you want to look at the other changes that are actually in the cyanogenmod builds, best to look at their git repos here:
https://github.com/CyanogenMod
I am still learning right now while I create my ROM but your welcome to PM me if you have any questions
Glad someone helped. Now that ICS is available, I will build that instead. Now, I will follow the kandroid tutorial and add hardware_msm7x30 from cyanogenmod's repos. Then I'll make my own makefiles in the huawei/u8800 and I'll see if that works.
Also, some things I am not still clear. If I am not adding any recovery files, it shouldn't replace it, right? I want to make sure I can recover. However, my phone has a bootloader mode, which should still work, even if other's messed up. And the kernel, if I already have a compiled kernel for android 2.2, should it work for newer versions?
Thanks
Well AOSP as far as I know adds the stock recovery into the build so if you have a stock ROM, then you will lose your recovery (unless you change the source to skip the adding of recovery to otapackage).
Your bootloader should be fine. so you will theoretically be able to re-flash a custom recovery with fastboot as long as your bootloader is unlocked (assuming your phone is already rooted and has a custom rom, then it should be unlocked)
If you are using CM7 as base, then you dont have to worry about it as it is configured to NOT replace the recovery during the building and creating the otapackage.
The kernel should not be compatible as there were significant changes from Froyo and you should not use it. By the way, for now, work on the ROM first. Creating a custom kernel from scratch is hard work and should be left as the last task to do (assuming you know linux kernel development). Just use the stock pre-built kernel that comes with the source.
Also, according to Google:
Starting with IceCreamSandwich, the Android Open-Source Project can't be used from pure source code only, and requires additional hardware-related proprietary libraries to run, specifically for hardware graphics acceleration.
Click to expand...
Click to collapse
This means you need to find the correct hardware drivers first. Where to find that is beyond me. Check CM repos. It would be easy if everyone had a Nexus S/ Galaxy Nexus as the drivers are immediately available on source.android.com. Ah...well....
Personally, I am going to wait a few weeks before dabbling into ICS ROMs. Wait till CM7 comes out with a nightly for my nexus one and then rip the drivers from their ROM and use it for mine
I got ICS source and made the necessary Android.mk, AndroidProducts.mk, BoardConfig.mk and u8800(my device).mk, also vendorsetup.sh . Now, when I am trying to build it doesn't give me an error, more of a suggestion. It says to include "LOCAL_MODULE_TAGS := optional" in the hardware/msm7k/liblights/Android.mk. I added that, and tried again. Got that message again, but with other type /libril/Android.mk
About fastboot, I am not sure if my device has that. It can be turned on with volume up and down + power, but it boots to so called "pink screen". When I mount phone using usb to my pc, I can browse the recovery.img and other related stuff. If I have the otapackage, can I just take the recovery out from there or what should I modify in source? Add something to the makefiles?
Yeah I am pretty sure you should add the LOCAL_MODULE_TAGS to all of the relevant pre-built files. maybe they made the compiler less harsh in ICS when compared to the one for gingerbread. In gingerbread, it outright crashed the compile and asked you to add the tags.
According to Google engineers, here is the reason why they use these tags:
Short answer: lack of time.
The urgent concern was to prevent new modules from using a user tag
(implicitly or explicitly), and we took care of that. We haven't had
time to deal with the existing modules, there are over 1000 of those.
JBQ
Click to expand...
Click to collapse
By the way, I hope you have git setup and the changes you have made are being staged and commited to your repo in github. If you ever make a mistake that hardcore crashes your compile and you dont know what you did, git will be there for you to rollback the changes as well as keep track of everything you have done from commit to commit
As far as I know, CM repos dont have everything complete for a full build of ICS but I could be wrong.
So you are working with AOSP correct?
As for the fastboot every android phone should have a fastboot by default but I believe each phone has a slightly different version. I will post how my fastboot looks like in a bit.
As for the removal of recovery, there should be somewhere in either source, makefiles or argument for the otapackage command that should leave out the recovery when making update.zip. You could just remove the recovery from the update.zip, change the updater-script and repackage it but its not a clean solution and those changes should be done in a uniform manner so you dont repeat this step every time you do a new build.
Where exactly is it, I have yet to know. Still learning much of this myself.
I now completely understand what modes of turning on my phone has... First one is normal, second is recovery, third is update-bootloader(I can access all files with it too) and four being the fastboot. The custom recovery I have on has an issue that it wants to boot to charging mode when I type "adb reboot bootloader". I can get to fastboot with the custom ROM I have on right now though. I think I am safe if I have issues.
I edited msm7k Android.mk to remove libaudio and libgralloc (errors with those), and it compiles to the step where it says it has no rule to make kernel requied by boot.img. I have put into BoardConfig.mk the line TARGET_PREBUILT_KERNEL with my kernel. I don't understand, what's wrong now...
My goal is to simply get it booting up. I'll look into libraries and other later.
-e-
Got the kernel thing sorted out. Copied device.mk from tuna device and edited to fit my device. Also modified full_u8800.mk and made the call to inherit from device.mk. Compiling now and I think I got past that.
-e2-
Got it built successfully. Fastboot won't let it install, because it has no mount points. Added mount points and let's see...
Nice to see you are making progress.
Got it built, but the fastboot is kinda buggy in my device, maybe custom rom issue. I can't make otapackage, it says "no rule to make target otapackage". I have a possible fix, trying that later.
Otherwise, I read its possible to flash system.img from recovery via advanced restore, update.zip package or advanced flash_image, but I don't know. Will post results.
Sent from my u8800
-e-
Tried make otapackage again. It still says "make: *** No rule to make target `otapackage'. Stop.". Maybe some things are still missing, I don't know. adb flash_image command will always post -1 to me, update.zip didn't work, advanced restore is not for this. I have a compiled image and I can't wait to test it, but I can't flash it...
If nothing works I'll revert to stock ROM and try again.
Blefish said:
Got it built, but the fastboot is kinda buggy in my device, maybe custom rom issue. I can't make otapackage, it says "no rule to make target otapackage". I have a possible fix, trying that later.
Otherwise, I read its possible to flash system.img from recovery via advanced restore, update.zip package or advanced flash_image, but I don't know. Will post results.
Sent from my u8800
-e-
Tried make otapackage again. It still says "make: *** No rule to make target `otapackage'. Stop.". Maybe some things are still missing, I don't know. adb flash_image command will always post -1 to me, update.zip didn't work, advanced restore is not for this. I have a compiled image and I can't wait to test it, but I can't flash it...
If nothing works I'll revert to stock ROM and try again.
Click to expand...
Click to collapse
If you successfully compiled, take the boot.img and system.img and package them into a zip and use dsixda's kitchen to make it flashable
Blefish, is it possible for you to share your device/vendor structures somewhere? I just finished setting up a build machine for ICS (using Cyanogenmod's repos in my case), and made a working full-eng image that seems to boot just fine in the emulator, so I'm seemingly all ready to hack around our device's specifics. But I would rather not do duplicate work, so I decided to ask
I'm also grabbing Huawei's new 2.6.35-based package to get the new kernel config, can't wait for them to release the actual sources for the update.
I'll share them on GitHib once I get a working build. I haven't got much time, and I changed to CM9 alpha now (repo branch ics). Since we got a 2.3 update, my first task is to port the latest clockworkmod recovery and then the ICS.
Compiling Android is long task and I'll do it in weekends, but the recovery should be available sometime, it shouldn't be hard to port that.
Oh yeah, look up stockwell's, dzo's and genokolar's github, they have done the device configuration. You can get much help from there. This weekend I'll propably test the build, I got otapackage command working now (it needed some things I can't write on mobile).
Sent from my U8800 using Tapatalk

[SOLVED] Building CM10.1 from source d2usc - no radio

First off, I have been running Ubuntu 12.04 x64 (OpenJDK) for a while now, and build regularly for Grouper and d2usc (US Cellular SGS3 variant). Grouper builds fine, flashes fine, runs great. The d2usc also builds fine, flashes fine, but I get zero radio; no bars of any color, Settings - Status reports Unknown Baseband version, same with IMEI and MEID, not even showing grey roaming bars.
This has been going on for about 1-2 weeks now. Zero build errors, the "brunch d2usc" command works great, creates a flashable zip, and the zip flashes. I have to then wipe everything in TWRP, and restore a backup (I do NOT have to do adb nv restore or anything, radio works just fine when restoring backup for Black Bean 7).
Here's what I've tried:
1. Delete entire repo, create new folder and resync. After resync, build. Flash build (again, zero errors), same result.
2. Delete entire repo again, create new folder and resync. After resync, run ./get-prebuilts AND ./extract-files.sh while running official d2usc CM10.1 nightly. Rebuild (zero errors), same result.
At this point I'm at a loss, Grouper (N7) flashes and works great (obviously wifi only version). The d2usc version works great minus the fact that I get no radio, not even roaming. I've tried the CDMA subscription thing, rebooting, and no dice still.
I need some expert advise. Anyone that could provide some clues, suggestions, insight, would be greatly appreciated. It is much easier for me (saves time, etc) to do my personal theming THEN building, so I'm not doing things twice (using apktool to decompile/compile).
Thank you for your time!
-Ryan
-Sent from my US Cellular SGS3
I think I may have gotten to the bottom of this with invisiblek/termleech's help: Building from CM10.1's repo if you don't have the d2usc stuff, it'll sync what it needs straight from CM. That was fine and all. After talking with those two guys, there's another repo called TheMuppets where all the device vendor blobs are kept (which I had totally forgotten about). I had to add this to my Local_Manifest.xml to pull down those updated blobs from this repo.
I am sync'd up, and kicked off my build. That's gotta be it. I'll know in about 45 min to 1 hour.
RMarkwald said:
I think I may have gotten to the bottom of this with invisiblek/termleech's help: Building from CM10.1's repo if you don't have the d2usc stuff, it'll sync what it needs straight from CM. That was fine and all. After talking with those two guys, there's another repo called TheMuppets where all the device vendor blobs are kept (which I had totally forgotten about). I had to add this to my Local_Manifest.xml to pull down those updated blobs from this repo.
I am sync'd up, and kicked off my build. That's gotta be it. I'll know in about 45 min to 1 hour.
Click to expand...
Click to collapse
so how did that go?? i am curious as i am sync'd up but am lost due too my lack of ubuntu experience, also i jumped into learning this with no linux experience. i have the d2usc. i dont follow how github and my sync works together to build . but i hope yours works out

[Q] Building aospa errors on d802

*update* Building successful. Help no longer needed,
Hello there
I'm currently attempting to built aospa and it keeps failing while loading settings for my phone d802 (lg g2) it claims the repo doesn't have information for this phone or manifests etc., I decided to look this up on the repo and discovered it only has d801 and d803, I figured not a problem so i set out to searching forms upon forums and google searches that just angered me more and more because either I was doing it wrong or it was just loading the wrong information,
I Finally gave in and decided to load the Proprietary_vendor_lge from muppets repo which includes d802, had to alter some file names with the pa_prefix and finally it starts the build process but then stops shortly after with cannot find config errors. I also tried this using my cm repo's lge device settings and this causes more errors than is good.
I decided to now start a fresh, new build environment with a fresh aospa 3+ repo sync for 4.4 android. and would like help on where to go from here, even if just suggestions on where I can look myself, what terms to use to do my own research or if you feel like giving the answer's please feel free.
In the past I've not had such issues but that results I guess from usually owning a nexus. (off topic)or the dreaded i9500 ubuntu errors that caused my system to overheat and die on compile(off topic)
I have setup a build environment in linux (ubuntu for ease of use) i decided this time to go with a pre-built one mentioned from the news page (in case of my own setup errors)
I have repo synced with aospa-legacy
I am awaiting further direction.
--------------------------------------------------------------------
* Update*
Fixed the problems,
In case interested, also please tell me if there was an easier way....
I repo sync'd with aospa-legacy,
I then oulled the d802 files from cm11 repo and copied into the device and vendor locations (as needed)
Then pulled the kernel for my device from cm11 repo and copied to the root under kernel
repo synced again and it filled in the gaps (not sure if this was needed)
got device proprietary files by linking phone and using ./extract-files from the d802 folder
then built the rom.
New error
no rule to make target vendor/lge/d802/proprietary/lib/libacdbloader.so
* Update * fixed libacdbloader.so by getting file from "TheMuppets/proprietary_vendor_lge/d802/"
-----------------------------------------------------------
thanks
Thank you
Also please if in wrong section i tired to locate correct place
Added my spelling is flame worthy as is my grammar, please be lenient with this.
accidental "double post so to speak"

Question Trying to build the kernel

I've not built a kernel since my Samsung Galaxy Nexus, so bear with me. I'm trying to learn and see if I can't be of some service somehow.
So I've forked the repository for the kernel source from here, to my Github HERE. After working through learning more than I though I would about gcc and clang toolchains, I attempted to build the kernel. Turns out, I think the kernel is missing at least one folder.
Code:
techpack/oneplus/Makefile:58: "techpack LINUXINCLUDE " -I./arch/arm64/include -I./arch/arm64/include/generated -I./include -I./arch/arm64/include/uapi -I./arch/arm64/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -I./techpack/oneplus/include -I./techpack/oneplus/overlay -include ./techpack/oneplus/config/oneplus.h -include ./techpack/oneplus/config/coretech.h -include ./techpack/oneplus/config/oneplus.h -I./techpack/oneplus/include
scripts/Makefile.clean:15: techpack/oneplus/power/Makefile: No such file or directory
When I look in the source code, I see that the techpack/oneplus/power folder is not there, so it would not be able to be made.
Any ideas on how to get it, or if I could bring it from a different oneplus device?
The main idea was to work on some governors and IO Schedulers, but mainly to see if we could disable dm-verity for the TWRP build. Honestly, I don't know how people get into this anymore. Every time I go to build, I get errors such as above, or I try to Make Clean, and I end up with errors that it can't clean. I'll take direction as to where I can go to learn, without attending University.
I think you can flash magisk to disable dm verity. You might be able to manually strip out avb from a boot.img as well (I'm sure guides are somewhere in xda).
Why would you wanna do this for TWRP though?
As for the actual kernel building, I just think OnePlus hasn't shipped out the complete sources, it has happened before. I am no expert though so might be wrong.

Categories

Resources