I'm working on porting CM9 to HTC One X. I've made a lot of progress but there are still issues. I wanted to get the source out as soon as possible to get more people working on it.
See the wiki for more information.
Status
Working:
Radio (calls and 3G)
Audio
Hardware Acceleration
WiFi
Bluetooth
GPS
NFC
Camera
FM Radio
Echo/In call volume fixed
Wifi Tethering
Issues/TODO list:
Wifi Direct
Blank screen on rotation
Data connection occasionally fails
Camera focusing on face issue
Nightly Builds
Thanks to jangrewe for providing the nightly builds.
Downloads: http://mirror.faked.org/cm9/
Jenkins: http://faked.org/jenkins
Reporting issues
https://github.com/intermediaterepresentation/android_device_htc_endeavor/issues
Flashing ROM
Using CWM you can flash the ROM.
The kernel must be flashed manually unless you have S-OFF:
Extract the zip file.
Code:
fastboot flash boot boot.img
Building
Add the following to your .repo/local_manifest.xml:
Code:
<project name="intermediaterepresentation/android_hardware_ti_wlan" path="hardware/ti/wlan" remote="github" revision="p-ics-mr1-release"/>
<project name="intermediaterepresentation/android_kernel_htc_endeavor" path="kernel/htc/endeavor" remote="github" revision="master" />
<project name="intermediaterepresentation/android_device_htc_endeavor" path="device/htc/endeavoru" remote="github" revision="master" />
Sync code.
Code:
repo sync
And compile:
Code:
add_lunch_combo cm_endeavoru-userdebug
lunch cm_endeavoru-userdebug
(cd device/htc/endeavoru && ./extract_files.sh)
make -j4 otapackage
Contributions
Please send me pull requests on GitHub if you want to contribute.
Sources
Device Configuration - https://github.com/intermediaterepresentation/android_device_htc_endeavor
Kernel - https://github.com/intermediaterepresentation/android_kernel_htc_endeavor
Change Log
5/19/2012 - Initial import of project
5/20/2012 - Bluetooth support added
5/20/2012 - GPS added
5/21/2012 - NFC added
5/28/2012 - Add build links
5/28/2012 - Auto brightness, ICS switcher for hardware key, and more (thanks gorbi) - https://github.com/intermediaterepresentation/android_device_htc_endeavor/pull/1
5/28/2012 - Camera is now working!
5/30/2012 -
akaspin - fix bug with editing custom backlight levels
tgascoigne - fix usb mass storage
gorbi - fix for chrome. system tweaks.
6/26/2012 - Update changelog and add wiki link
I guess someone from XDA (JDR0iD?) is also working on CM9 you might wanna ask them as well.
I thought its already out, but its only posted in the modaco forum
Sent from my HTC One X using Tapatalk 2
Good to see that someone who actually shares the open source work works on cm9 now! The guy over at modaco seems like a bit of a douche, cause he insist on not sharing his repo and as I think this shouldn't be supported because open source is about open source!
Keep up the work, I hope you can fix at least the heavy bugs like mobile connection so you can post a build
Sent from my HTC One X using XDA Premium HD app
Code:
error: revision refs/heads/ics in intermediaterepresentation/android_device_htc_endeavor not found
When syncing my repo.
Edit:
I fixed it by changing
Code:
<project name="intermediaterepresentation/android_hardware_ti_wlan" path="hardware/ti/wlan-omapzoom" remote="github" revision="p-ics-mr1-release"/>
<project name="intermediaterepresentation/android_kernel_htc_endeavor" path="kernel/htc/endeavor" remote="github" />
<project name="intermediaterepresentation/android_device_htc_endeavor" path="device/htc/endeavor" remote="github" />
to
Code:
<project name="intermediaterepresentation/android_hardware_ti_wlan" path="hardware/ti/wlan-omapzoom" remote="github" revision="p-ics-mr1-release"/>
<project name="intermediaterepresentation/android_kernel_htc_endeavor" path="kernel/htc/endeavor" remote="github" [COLOR="red"]revision="master"[/COLOR]/>
<project name="intermediaterepresentation/android_device_htc_endeavor" path="device/htc/endeavor" remote="github" [COLOR="Red"]revision="master"[/COLOR]/>
Edit 2:
Next error:
Code:
fh-mac:cm9 fh$ lunch cm_endeavor-userdebug
Looking for dependencies
Traceback (most recent call last):
File "build/tools/roomservice.py", line 150, in <module>
fetch_dependencies(repo_path)
File "build/tools/roomservice.py", line 127, in fetch_dependencies
dependencies = json.loads(dependencies_file.read())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 360, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 378, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
** Don't have a product spec for: 'cm_endeavor'
** Do you have the right repo manifest?
endursa said:
Good to see that someone who actually shares the open source work works on cm9 now! The guy over at modaco seems like a bit of a douche, cause he insist on not sharing his repo and as I think this shouldn't be supported because open source is about open source!
Keep up the work, I hope you can fix at least the heavy bugs like mobile connection so you can post a build
Sent from my HTC One X using XDA Premium HD app
Click to expand...
Click to collapse
It is his choice, so get over it. Just be glad he is sharing his ROM with the community for free. He doesn't owe us anything. Seriously, you people are ungrateful brats
Sorry about that...looks like my cm.dependencies was empty. I put an empty JSON object in there and all is good. repo sync or pull the changes from android_device_htc_endeavor and lunch should work.
Edit 2:
Next error:
Code:
fh-mac:cm9 fh$ lunch cm_endeavor-userdebug
Looking for dependencies
Traceback (most recent call last):
File "build/tools/roomservice.py", line 150, in <module>
fetch_dependencies(repo_path)
File "build/tools/roomservice.py", line 127, in fetch_dependencies
dependencies = json.loads(dependencies_file.read())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 360, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 378, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
** Don't have a product spec for: 'cm_endeavor'
** Do you have the right repo manifest?
Click to expand...
Click to collapse
intrepresentation said:
Sorry about that...looks like my cm.dependencies was empty. I put an empty JSON object in there and all is good. repo sync or pull the changes from android_device_htc_endeavor and lunch should work.
Click to expand...
Click to collapse
Seems to work now, thanks!
I am so happy that you have stated this. I really miss cm9 since I sold my GN. And the nightly hours of compiling for myself... Lets hope that some geniuses will help you to get it running soon. CM9 is open and has to stay open. Otherwise he uses the wrong name for the ROM.
Next one...
Code:
fh-mac:cm9 fh$ make -j4 otapackage
============================================
<...>
============================================
build/core/base_rules.mk:166: *** hardware/ti/wlan/mac80211/config: MODULE.TARGET.ETC.wpa_supplicant.conf already defined by external/wpa_supplicant_8/wpa_supplicant. Stop.
Planet X said:
I am so happy that you have stated this. I really miss cm9 since I sold my GN. And the nightly hours of compiling for myself... Lets hope that some geniuses will help you to get it running soon. CM9 is open and has to stay open. Otherwise he uses the wrong name for the ROM.
Click to expand...
Click to collapse
exactly...same goes for other devs here as well which use normal HTC builds. they create something awesome, devs asks permission from the creators if they can use their tweaks or mods in their roms and like the divas they are most of the times they say no..so tell me what is open source then. same goes for the guy who is compiling the cm9 Trip whatever his name is...android is open. and if by doing the right procedure and giving the right credits people should be helping each other out to make the community better..not worse by acting like little divas.
@OP ask a mod if you can move this thread in development cause you guys are compiling a build from source so it makes more sense if it was there instead of general..you do not lose anything by asking.. i wish you all the best cause cm9 is by far the best ICS i tried
F4M0U569 said:
It is his choice, so get over it. Just be glad he is sharing his ROM with the community for free. He doesn't owe us anything. Seriously, you people are ungrateful brats
Click to expand...
Click to collapse
No, he doesn't owe us anything, but he has said things on the modaco thread that I dislike, whilst it is nice that he has released it to the community, he has not acknowledged that he is only modifying the work of other people, it is not just his work and so his attitude doesn't seem brilliant. He isn't selling his work, so releasing the source code wouldn't be detrimental to him and would help many people.
empyyy said:
Next one...
Code:
fh-mac:cm9 fh$ make -j4 otapackage
============================================
<...>
============================================
build/core/base_rules.mk:166: *** hardware/ti/wlan/mac80211/config: MODULE.TARGET.ETC.wpa_supplicant.conf already defined by external/wpa_supplicant_8/wpa_supplicant. Stop.
Click to expand...
Click to collapse
Let's try changing this in local_manifest.xml:
Code:
<project name="intermediaterepresentation/android_hardware_ti_wlan" path="hardware/ti/wlan-omapzoom" remote="github" revision="p-ics-mr1-release"/>
to
Code:
<project name="intermediaterepresentation/android_hardware_ti_wlan" path="hardware/ti/wlan" remote="github" revision="p-ics-mr1-release"/>
Remove the old one hardware/ti/wlan-omapzoom.
Code:
rm -rf hardware/ti/wlan-omapzoom
Now sync and you'll get hardware/ti/wlan updated and also I just changed something in device/htc/endeavor too.
See if that works.
intrepresentation said:
See if that works.
Click to expand...
Click to collapse
It works now and starts building, however, I'm getting the following error now:
Code:
external/zlib/x86/adler32.c: In function ‘adler32_MMX’:
external/zlib/x86/adler32.c:747: error: can't find a register in class ‘GENERAL_REGS’ while reloading ‘asm’
external/zlib/x86/adler32.c:747: error: ‘asm’ operand has impossible constraints
make: *** [out/host/darwin-x86/obj/STATIC_LIBRARIES/libz_intermediates/adler32.o] Error 1
I think it has to do something with Mac OS...
empyyy said:
It works now and starts building, however, I'm getting the following error now:
Code:
external/zlib/x86/adler32.c: In function ‘adler32_MMX’:
external/zlib/x86/adler32.c:747: error: can't find a register in class ‘GENERAL_REGS’ while reloading ‘asm’
external/zlib/x86/adler32.c:747: error: ‘asm’ operand has impossible constraints
make: *** [out/host/darwin-x86/obj/STATIC_LIBRARIES/libz_intermediates/adler32.o] Error 1
I think it has to do something with Mac OS...
Click to expand...
Click to collapse
Yeah it probably does. I am on Mac but I do my building on an Ubuntu VM. You can get VirtualBox for free if you need some VM software.
Hi, thanks a lot for sharing your sources!
I'm currently trying to build them, but the extract_files.sh already gives me a lot of missing objects - i'm trying to copy them off of a phone that's running an old build by TripNRaver.
here's the output: http://pastebin.com/vGS5gZq7
Is that "bad"? Should i go back to stock and try to copy them then?
cens0r said:
Hi, thanks a lot for sharing your sources!
I'm currently trying to build them, but the extract_files.sh already gives me a lot of missing objects - i'm trying to copy them off of a phone that's running an old build by TripNRaver.
here's the output: http://pastebin.com/vGS5gZq7
Is that "bad"? Should i go back to stock and try to copy them then?
Click to expand...
Click to collapse
Yeah run against stock. I may have some additional files that are not needed but run against stock to be safe.
intrepresentation said:
Yeah run against stock. I may have some additional files that are not needed but run against stock to be safe.
Click to expand...
Click to collapse
Thanks, i'll do that shortly. The compiling is running smoothly currently, good job so far!
Okay, mobile data is now working! Had to add this into build.prop:
Code:
ro.telephony.ril.v3=signalstrength,skipbrokendatacall
intrepresentation said:
Okay, mobile data is now working! Had to add this into build.prop:
Code:
ro.telephony.ril.v3=signalstrength,skipbrokendatacall
Click to expand...
Click to collapse
building now... got the proprietary files from the unbranded EU 1.29 RUU
EDIT: hitting an error:
in function wpa_driver_nl80211_ops:driver_nl80211.c(.data.rel.ro.wpa_driver_nl80211_ops+0x1c8): error: undefined reference to 'wpa_driver_nl80211_driver_cmd'
Code:
target Executable: wpa_supplicant (out/target/product/endeavor/obj/EXECUTABLES/wpa_supplicant_intermediates/LINKED/wpa_supplicant)
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: out/target/product/endeavor/obj/EXECUTABLES/wpa_supplicant_intermediates/src/drivers/driver_nl80211.o: in function wpa_driver_nl80211_ops:driver_nl80211.c(.data.rel.ro.wpa_driver_nl80211_ops+0x1c8): error: undefined reference to 'wpa_driver_nl80211_driver_cmd'
collect2: ld returned 1 exit status
make: *** [out/target/product/endeavor/obj/EXECUTABLES/wpa_supplicant_intermediates/LINKED/wpa_supplicant] Error 1
make: *** Waiting for unfinished jobs....
EDIT 2:
add the following as line 57 in "device/htc/endeavor/BoardConfig.mk"
Code:
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_wl12xx
EDIT 3: built & booted! looking good for a first try!
hi, i'm requesting devs who build cm 13 for bullhead to kindly share their roomservice.xml. i'm trying to build cm from source and the system generated roomservice.xml is as follows:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_bullhead" path="device/lge/bullhead" remote="github" />
<project name="CyanogenMod/android_kernel_lge_bullhead" path="kernel/lge/bullhead" remote="github" />
</manifest>
i think this does not contain bolbs, which are also required for building from source. i tried building without them and i get the following error:
Code:
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/home/gururoop/android/cm13/out/target/product/bullhead/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates/LINKED/libsurfaceflinger.so] Error 1
make: Leaving directory `/home/gururoop/android/cm13'
Can anyone help me with these errors?
gururoop said:
hi, i'm requesting devs who build cm 13 for bullhead to kindly share their roomservice.xml. i'm trying to build cm from source and the system generated roomservice.xml is as follows:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_bullhead" path="device/lge/bullhead" remote="github" />
<project name="CyanogenMod/android_kernel_lge_bullhead" path="kernel/lge/bullhead" remote="github" />
</manifest>
i think this does not contain bolbs, which are also required for building from source. i tried building without them and i get the following error:
Code:
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/home/gururoop/android/cm13/out/target/product/bullhead/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates/LINKED/libsurfaceflinger.so] Error 1
make: Leaving directory `/home/gururoop/android/cm13'
Can anyone help me with these errors?
Click to expand...
Click to collapse
Vendor files? https://github.com/TheMuppets/proprietary_vendor_lge/tree/cm-13.0
I know the vendor stuff is different from everything else I've used/built for and I only had to "brunch bullhead" to build a different rom I tried.
Keithn said:
Vendor files? https://github.com/TheMuppets/proprietary_vendor_lge/tree/cm-13.0
I know the vendor stuff is different from everything else I've used/built for and I only had to "brunch bullhead" to build a different rom I tried.
Click to expand...
Click to collapse
did you extract blobs using extract-files.sh script? can you please share the roomservice.xml of the ROM that built successfully and booted?
gururoop said:
did you extract blobs using extract-files.sh script? can you please share the roomservice.xml of the ROM that built successfully and booted?
Click to expand...
Click to collapse
Nope I never had to do it that way and I usually just add the vendor files from the muppets git (linked above) instead.
What commands are you using to build?
Try just using ". build/envsetup.sh" then use "brunch bullhead". Downloaded everything I needed to build omni last I tried. My server/PC I use for building isn't connected or running right now so I can't directly pull the XML I used. I probably could later though.
Another thing is that you can add your own XML into the local manifests to sync files so you don't have to touch the room service.XML. Here is one I was using for an example https://github.com/Keith-N/local_manifests/blob/master/local_manifests.xml
Keithn said:
Nope I never had to do it that way and I usually just add the vendor files from the muppets git (linked above) instead.
What commands are you using to build?
Try just using ". build/envsetup.sh" then use "brunch bullhead". Downloaded everything I needed to build omni last I tried. My server/PC I use for building isn't connected or running right now so I can't directly pull the XML I used. I probably could later though.
Another thing is that you can add your own XML into the local manifests to sync files so you don't have to touch the room service.XML. Here is one I was using for an example https://github.com/Keith-N/local_manifests/blob/master/local_manifests.xml
Click to expand...
Click to collapse
I would really appreciate if you could share your roomservice.xml whenever possible. I did try to give commands as per your post and got the error mentioned in the OP. I'm trying to start with building CM and expand the base if I succeed.
I tried it out and it's missing the vendor files. You'll notice no vendor/lge in your cm13 directory. The way I talked about in the previous post will work. You need to get those vendor files. I could give you my roomservice.xml but it shouldn't look any different because I never touched it. I used an addition xml to add aditional files which is why my roomservice.xml was never changed. The easy way is to add this line into whatever xml you are planning on using to sync the files.
Code:
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-13.0" />
It grabs the files from https://github.com/TheMuppets/proprietary_vendor_lge and syncs them into vendor/lge
If you have troubles then let me know, but that is all I needed to do.
Does anyone have any tips/techniques for resolving "No rule to make target" errors?
I got the error:
Code:
make: *** No rule to make target 'libsrv_init', needed by '/home/buildbot/android/slim/out/target/product/maguro/obj/EXECUTABLES/pvrsrvinit_intermediates/pvrsrvinit.o'. Stop.
So to find the reference I did
Code:
find -type f -name "*.mk"|xargs grep pvrsrvinit
./device/samsung/tuna/BoardConfig.mk: pvrsrvinit.te \
./hardware/ti/omap4/common.mk: pvrsrvinit \
./hardware/ti/omap4/pvrsrvinit/Android.mk:LOCAL_SRC_FILES := pvrsrvinit.c
./hardware/ti/omap4/pvrsrvinit/Android.mk:LOCAL_MODULE := pvrsrvinit
~/android/slim $ find -type f -name "*.mk"|xargs grep libsrv_init
./device/samsung/maguro/self-extractors/imgtec/staging/device-partial.mk: libsrv_init \
./device/samsung/maguro/self-extractors/imgtec/staging/proprietary/Android.mk:LOCAL_MODULE := libsrv_init
./device/samsung/maguro/self-extractors/imgtec/staging/proprietary/Android.mk:LOCAL_SRC_FILES := libsrv_init.so
./hardware/ti/omap4/pvrsrvinit/Android.mk:LOCAL_ADDITIONAL_DEPENDENCIES := libsrv_init libsrv_um
It is clear here that a blob is missing.
Searching online suggested adding another local manifest (is this the right one?)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="DonkeyCoyote/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="android-5.1" />
</manifest>
I suppose if it was a new device I would have to search the filesystem of the phone for the file right?
Has anyone got any tips of better ways of dealing with this situation?
As a side note: How did SlimLP compile without this extra repo in the manifest?
Or is it common that even for big ROMs that people are doing "dirty" compiles with local manifests and/or locally extracted files in place?
P.S. I am using Lollipop still because my new Chinese phone is still on Lollipop and I thought I would start by building SlimLP for my old maguro as a starting point since the maguro was supported at that point.
I wasn't expecting to get compile errors!
opticyclic said:
Does anyone have any tips/techniques for resolving "No rule to make target" errors?
I got the error:
Code:
make: *** No rule to make target 'libsrv_init', needed by '/home/buildbot/android/slim/out/target/product/maguro/obj/EXECUTABLES/pvrsrvinit_intermediates/pvrsrvinit.o'. Stop.
So to find the reference I did
Code:
find -type f -name "*.mk"|xargs grep pvrsrvinit
./device/samsung/tuna/BoardConfig.mk: pvrsrvinit.te \
./hardware/ti/omap4/common.mk: pvrsrvinit \
./hardware/ti/omap4/pvrsrvinit/Android.mk:LOCAL_SRC_FILES := pvrsrvinit.c
./hardware/ti/omap4/pvrsrvinit/Android.mk:LOCAL_MODULE := pvrsrvinit
~/android/slim $ find -type f -name "*.mk"|xargs grep libsrv_init
./device/samsung/maguro/self-extractors/imgtec/staging/device-partial.mk: libsrv_init \
./device/samsung/maguro/self-extractors/imgtec/staging/proprietary/Android.mk:LOCAL_MODULE := libsrv_init
./device/samsung/maguro/self-extractors/imgtec/staging/proprietary/Android.mk:LOCAL_SRC_FILES := libsrv_init.so
./hardware/ti/omap4/pvrsrvinit/Android.mk:LOCAL_ADDITIONAL_DEPENDENCIES := libsrv_init libsrv_um
It is clear here that a blob is missing.
Searching online suggested adding another local manifest (is this the right one?)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="DonkeyCoyote/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="android-5.1" />
</manifest>
I suppose if it was a new device I would have to search the filesystem of the phone for the file right?
Has anyone got any tips of better ways of dealing with this situation?
As a side note: How did SlimLP compile without this extra repo in the manifest?
Or is it common that even for big ROMs that people are doing "dirty" compiles with local manifests and/or locally extracted files in place?
P.S. I am using Lollipop still because my new Chinese phone is still on Lollipop and I thought I would start by building SlimLP for my old maguro as a starting point since the maguro was supported at that point.
I wasn't expecting to get compile errors!
Click to expand...
Click to collapse
Did you find a solution? I'm facing the same problem, any clue would be appreciated.
grab (link disallowed since i have less than 10 posts and they ****ing think it's spam... google driver binaries and sources for maguro and it's the imagination technologies file) then extract and execute at root of your source, and it should shove some binaries and a makefile that declares the missing dependency
Skip the "Extract proprietary blobs" step and instead use "TheMuppets"
Skip the "Extract proprietary blobs" step and instead use "TheMuppets", meaning, add the following lines to the file .repo/local_manifests/roomservice.xml:
Code:
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" depth="1" />
<project name="TheMuppets/proprietary_vendor_ti" path="vendor/ti" revision="master" depth="1" />
Rerun "repo sync" and the rest of the steps, excluding the "extract proprietary blobs" step. That should fix it.
My device needs config_useDevInputEventForAudioJack in order to detect a plugged in headset. I have been building lineage based on AndyYan's treble scripts (which are based on PHH). I can get my headphones working if I set the prop persist.sys.overlay.devinputjack to true (this triggers an overlay in PHHussons vendor_hardware_overlay). I have created an overlay using PHHussons guide for my phone (a Teracube 2e). The only value I am setting in the overlay is the config_useDevInputEventForAudioJack, so my res/values/config.xml looks exactly like the devinputjack overlay:
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="config_useDevInputEventForAudioJack">true</bool>
</resources>
I have given it a unique priority and name as laid out in PHHussons guide and I end up with an apk which has the correct contents. The overlay is correctly identified with the phone's build fingerprint and correctly gets put in /system/overlays
I cannot figure out why this does not allow the headphone jack to work.... I can still get it working (or stop it) by setting the persist.sys.overlay.devinputjack prop.
Here is my manifest and makefile... I would appreciate any help.
Code:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="me.phh.treble.overlay.teracube.tc2e"
android:versionCode="1"
android:versionName="1.0">
<overlay android:targetPackage="android"
android:requiredSystemPropertyName="ro.vendor.build.fingerprint"
android:requiredSystemPropertyValue="+Teracube/Teracube_2e*"
android:priority="221"
android:isStatic="true" />
</manifest>
Code:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PACKAGE_NAME := treble-overlay-teracube-tc2e
LOCAL_MODULE_PATH := $(TARGET_OUT)/overlay
LOCAL_IS_RUNTIME_RESOURCE_OVERLAY := true
LOCAL_PRIVATE_PLATFORM_APIS := true
include $(BUILD_PACKAGE)
sailorcampbell said:
My device needs config_useDevInputEventForAudioJack in order to detect a plugged in headset. I have been building lineage based on AndyYan's treble scripts (which are based on PHH). I can get my headphones working if I set the prop persist.sys.overlay.devinputjack to true (this triggers an overlay in PHHussons vendor_hardware_overlay). I have created an overlay using PHHussons guide for my phone (a Teracube 2e). The only value I am setting in the overlay is the config_useDevInputEventForAudioJack, so my res/values/config.xml looks exactly like the devinputjack overlay:
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="config_useDevInputEventForAudioJack">true</bool>
</resources>
I have given it a unique priority and name as laid out in PHHussons guide and I end up with an apk which has the correct contents. The overlay is correctly identified with the phone's build fingerprint and correctly gets put in /system/overlays
I cannot figure out why this does not allow the headphone jack to work.... I can still get it working (or stop it) by setting the persist.sys.overlay.devinputjack prop.
Here is my manifest and makefile... I would appreciate any help.
Code:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="me.phh.treble.overlay.teracube.tc2e"
android:versionCode="1"
android:versionName="1.0">
<overlay android:targetPackage="android"
android:requiredSystemPropertyName="ro.vendor.build.fingerprint"
android:requiredSystemPropertyValue="+Teracube/Teracube_2e*"
android:priority="221"
android:isStatic="true" />
</manifest>
Code:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PACKAGE_NAME := treble-overlay-teracube-tc2e
LOCAL_MODULE_PATH := $(TARGET_OUT)/overlay
LOCAL_IS_RUNTIME_RESOURCE_OVERLAY := true
LOCAL_PRIVATE_PLATFORM_APIS := true
include $(BUILD_PACKAGE)
Click to expand...
Click to collapse
Use this as a template. Priority should be 6.
https://github.com/phhusson/vendor_hardware_overlay/blob/master/DevInputJack/AndroidManifest.xml
Hello,
I am trying to port LineageOS to the Samsung Galaxy S8 as my first LineageOS port. I know this is probably one heck of an undertaking for a first port but a rooted snapdragon-based S8 is currently the only device I have access to and I would like to have stock-ish android on this device.
In any case, I am running into errors while trying to build for the platform.
I am using this guide with this guide for reference to try to port.
I have followed the first guide basically to the tee so far.
These are all of the things (of interest) that I have done.
1. I executed these commands to clone the code base:
Code:
repo init -u https://github.com/LineageOS/android.git -b lineage-19.1
repo sync
2. I have created a file called "local_manifests.xml" in the directory ".repo/local_manifests/" that contains the following:
Code:
?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="android_device_samsung_dreamlte" fetch="https://github.com/TeamWin/" revision="android-9.0"/>
<project name="android_device_samsung_dreamlte" path="device/samsung/dreamlte" remote="android_device_samsung_dreamlte"
revision="android-9.0"/>
<remote name="android_kernel_samsung_msm8998" fetch="https://github.com/jesec/" revision="cm-14.1"/>
<project name="android_kernel_samsung_msm8998" path="kernel/samsung/msm8998" remote="android_kernel_samsung_msm8998" revision="cm-
14.1"/>
<remote name="vendor_samsung_dreamlte" fetch="https://github.com/AndroidBlobs/" revision="dreamltexx-user-8.0.0-R16NW-
G950FXXS4CRJD-release-keys"/>
<project name="vendor_samsung_dreamlte" path="vendor/samsung/dreamlte" remote="vendor_samsung_dreamlte" revision="dreamltexx-user-8.
0.0-R16NW-G950FXXS4CRJD-release-keys"/>
</manifest>
3. I have rerun the repo sync command to sync the blobs, kernel and architecture specific information from the local manifests.
4. I have added a file in the "device/samsung/dreamlte" directory called "lineage_dreamlte.mk" this file contains the following information based on the original "lineage.dependencies" file:
Code:
# Inherit from the common Open Source product configuration
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
# Inherit from our custom product configuration
$(call inherit-product, vendor/lineage/config/common.mk)
PRODUCT_DEVICE := dreamlte
PRODUCT_NAME := lineage_dreamlte
PRODUCT_MODEL := Galaxy S8
PRODUCT_BRAND := Samsung
PRODUCT_MANUFACTURER := Samsung
5. I have added a blank file called "lineage.dependencies" in the same directory because the original omni.dependencies was also blank
6. I have modified the file called "BoardConfig.mk" in the same directory to read the following. This file was made based on a combination of the original file (which is for the Exynos-based model of the S8) and the board configuration for the Google Pixel 2 (available here) which has the same SOC as the Snapdragon-based S8.
Code:
Platform
DEVICE_CODENAME := dreamlte
DEVICE_PATH := device/samsung/$(DEVICE_CODENAME)
BOARD_VENDOR := samsung
TARGET_BOARD_PLATFORM := msm8998
TARGET_BOOTLOADER_BOARD_NAME := msm8998
TARGET_NO_BOOTLOADER := true
TARGET_NO_RADIOIMAGE := true
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := cortex-a53
TARGET_CPU_SMP := true
# Secondary Architecture
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53
# File systems
BOARD_HAS_LARGE_FILESYSTEM := true
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
BOARD_HAS_NO_REAL_SDCARD := true
# TWRP specific build flags
RECOVERY_VARIANT := twrp
ALLOW_MISSING_DEPENDENCIES=true
TW_THEME := portrait_hdpi
RECOVERY_SDCARD_ON_DATA := true
TARGET_RECOVERY_PIXEL_FORMAT := "ABGR_8888"
TW_BRIGHTNESS_PATH := "/sys/class/backlight/panel/brightness"
TW_MAX_BRIGHTNESS := 36600
TW_DEFAULT_BRIGHTNESS := 15300
TW_NO_REBOOT_BOOTLOADER := true
TW_HAS_DOWNLOAD_MODE := true
TW_INCLUDE_NTFS_3G := true
TW_EXCLUDE_SUPERSU := true
TW_EXTRA_LANGUAGES := true
TW_USE_NEW_MINADBD := true
LZMA_RAMDISK_TARGETS := recovery
# Kernel
BOARD_KERNEL_BASE := 0x10000000
BOARD_KERNEL_PAGESIZE := 2048
TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/kernel
BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 --dt $(DEVICE_PATH)/dtb
# Include
TARGET_SPECIFIC_HEADER_PATH := $(DEVICE_PATH)/include
7. I run the "source build/envsetup.sh" command
Up to this point there has been no errors.
8. I execute the "brunch lineage_dreamlte-eng" command and get the following
Code:
In file included from build/make/core/config.mk:313:
In file included from build/make/core/envsetup.mk:323:
build/make/core/board_config.mk:246: error: Building a 32-bit-app-only product on a 64-bit device. If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false.
21:30:50 dumpvars failed with: exit status 1
Device dreamlte not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for dreamlte not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
In file included from build/make/core/config.mk:313:
In file included from build/make/core/envsetup.mk:323:
build/make/core/board_config.mk:246: error: Building a 32-bit-app-only product on a 64-bit device. If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false.
21:30:51 dumpvars failed with: exit status 1
In file included from build/make/core/config.mk:313:
In file included from build/make/core/envsetup.mk:323:
build/make/core/board_config.mk:246: error: Building a 32-bit-app-only product on a 64-bit device. If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false.
21:30:51 dumpvars failed with: exit status 1
** Don't have a product spec for: 'lineage_dreamlte'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
I have looked up this error for multiple hours to no avail. I have no idea what could be the issue, it doesn't seem to me like the 32 bit error is fatal. It seems like it cannot find the product spec for some reason and that is the fatal error.
I am almost certain that I have made some sort of simple mistake that is causing the product spec to not show up. I am also almost certain I have made some sort of other error somewhere else in the process especially in step 6 (the one about the board config).
I would greatly appreciate someone looking over this for me and helping me to solve this issue. My apologies of this error can simply be chalked up to my own stupidity or carelessness.
If you want me to send the contents of any other files, results of commands, etc. I will be more than happy to send them.
Thanks,
sckzor
# Quick check to warn about likely cryptic errors later in the build.
ifeq ($(TARGET_IS_64_BIT),true)
ifeq (,$(filter true false,$(TARGET_SUPPORTS_64_BIT_APPS)))
$(error Building a 32-bit-app-only product on a 64-bit device. \
If this is intentional, set TARGET_SUPPORTS_64_BIT_APPS := false)
endif
endif
TARGET_SUPPORTS_64_BIT_APPS := true get you compiling again.