[GUIDE]Development for GalaxyTab 7.7 and Plus. How hard could it be?

Search This thread

p3dboard

Senior Member
Oct 20, 2013
1,003
616
@daniel_hk - the compiling of the Bluetooth APK from your github.com repo file fails.

From what I can tell, the first error is because the BluetoothMapService.java file doesn't have the definition for a static BluetoothMapService.MSG_OBEX_AUTH_CHALL; - Looking at Cyanogenmod's original file I see this value is missing (public static final int MSG_OBEX_AUTH_CHALL = 5003;), however in your BluetoothMapService.java you seem to have redefined the values

However I am not sure if you have modified code elsewhere to use different variable names - Do you know if the 1st one should be updated to point to your new MSG_MAS_CONNECT static? also for the second and third errors (see below), should the variable be reverted to charset or updated to the new mCharset?

DanielHK repo - android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapService.java
public static final int MSG_MAS_CONNECT = 5003; // Send at MAS connect, including the MAS_ID
public static final int MSG_MAS_CONNECT_CANCEL = 5004; // Send at auth. declined
public static final int MSG_ACQUIRE_WAKE_LOCK = 5005;
public static final int MSG_RELEASE_WAKE_LOCK = 5006;

Cyanogenmod Repo android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapService.java
public static final int MSG_OBEX_AUTH_CHALL = 5003;
public static final int MSG_ACQUIRE_WAKE_LOCK = 5004;
public static final int MSG_RELEASE_WAKE_LOCK = 5005;

The second and third errors seem to be because the file BluetoothMapbMessage.java has a variable renamed to mCharset, instead of just charset

Danielhk repo - android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessage.java
/* BBODY attributes */
private long mPartId = INVALID_VALUE;
protected String mEncoding = null;
protected String mCharset = null;
private String mLanguage = null;

Cyanogenmod Repo - android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessage.java

/* BBODY attributes */
private long partId = INVALID_VALUE;
protected String encoding = null;
protected String charset = null;
private String language = null;

Errors
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
packages/apps/Bluetooth/src/com/android/bluetooth/map/BluetoothMapAuthenticator.java:60: error: cannot find symbol
msg.what = BluetoothMapService.MSG_OBEX_AUTH_CHALL;
^
symbol: variable MSG_OBEX_AUTH_CHALL
location: class BluetoothMapService
packages/apps/Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessageMmsEmail.java:240: error: cannot find symbol
charset = null;
^
symbol: variable charset
location: class BluetoothMapbMessageMmsEmail
packages/apps/Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessageMmsEmail.java:244: error: cannot find symbol
charset = "UTF-8";
^
symbol: variable charset
location: class BluetoothMapbMessageMmsEmail

Thanks,
Peter
 
Last edited:

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
@daniel_hk - the compiling of the Bluetooth APK from your github.com repo file fails.

From what I can tell, the first error is because the BluetoothMapService.java file doesn't have the definition for a static BluetoothMapService.MSG_OBEX_AUTH_CHALL; - Looking at Cyanogenmod's original file I see this value is missing (public static final int MSG_OBEX_AUTH_CHALL = 5003;), however in your BluetoothMapService.java you seem to have redefined the values

However I am not sure if you have modified code elsewhere to use different variable names - Do you know if the 1st one should be updated to point to your new MSG_MAS_CONNECT static? also for the second and third errors (see below), should the variable be reverted to charset or updated to the new mCharset?

DanielHK repo - android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapService.java
public static final int MSG_MAS_CONNECT = 5003; // Send at MAS connect, including the MAS_ID
public static final int MSG_MAS_CONNECT_CANCEL = 5004; // Send at auth. declined
public static final int MSG_ACQUIRE_WAKE_LOCK = 5005;
public static final int MSG_RELEASE_WAKE_LOCK = 5006;

Cyanogenmod Repo android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapService.java
public static final int MSG_OBEX_AUTH_CHALL = 5003;
public static final int MSG_ACQUIRE_WAKE_LOCK = 5004;
public static final int MSG_RELEASE_WAKE_LOCK = 5005;

The second and third errors seem to be because the file BluetoothMapbMessage.java has a variable renamed to mCharset, instead of just charset

Danielhk repo - android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessage.java
/* BBODY attributes */
private long mPartId = INVALID_VALUE;
protected String mEncoding = null;
protected String mCharset = null;
private String mLanguage = null;

Cyanogenmod Repo - android_packages_apps_Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessage.java

/* BBODY attributes */
private long partId = INVALID_VALUE;
protected String encoding = null;
protected String charset = null;
private String language = null;

Errors
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
packages/apps/Bluetooth/src/com/android/bluetooth/map/BluetoothMapAuthenticator.java:60: error: cannot find symbol
msg.what = BluetoothMapService.MSG_OBEX_AUTH_CHALL;
^
symbol: variable MSG_OBEX_AUTH_CHALL
location: class BluetoothMapService
packages/apps/Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessageMmsEmail.java:240: error: cannot find symbol
charset = null;
^
symbol: variable charset
location: class BluetoothMapbMessageMmsEmail
packages/apps/Bluetooth/src/com/android/bluetooth/map/BluetoothMapbMessageMmsEmail.java:244: error: cannot find symbol
charset = "UTF-8";
^
symbol: variable charset
location: class BluetoothMapbMessageMmsEmail

Thanks,
Peter

That was just before my hard drive crash. I only changed the file BluetoothMapbMessageMmsEmail.java to make the build pass. This is to follow the changes after my drive crash. We would face these kind of errors from time to time. These are what we need to deal with. I got no one to turn to... :cyclops:

I need VPN to upload to Github so I always group everything first. I'm working on the Bluetooth aduio pin. I can give you the BluetoothMapbMessageMmsEmail.java file if you want.

Good luck
PS. If you want a reference, CM is the wrong place. This package is modified from AOSP which Bluez aiming at. There are too many changes and I'm scare to do it again... :eek:
The file : View attachment BluetoothMapbMessageMmsEmail.tar.gz I've remarked the old lines so that you can compare.
 
Last edited:

p3dboard

Senior Member
Oct 20, 2013
1,003
616
@daniel_hk - Thanks Daniel, I actually made the same changes as I guessed the mCharset might be defined elsewhere, and I have compiled bluetooth now
 

p3dboard

Senior Member
Oct 20, 2013
1,003
616
@daniel_hk - So I just installed my new Build on my p6810 after breakfast and bluetooth is working. Fantastic. Thanks Daniel. I've still got to go through the RIL errors to get the p6800 build code working (trying to be able to help you build fresh cm 12.1 rom's for more then just my device which is the wifi only model).

One question though about the CM12.1 source code and the repo sync command. When I look at my new builds, the CyanogenMod version, doesn't seem to get updated after I do a repo sync and a build. It seems to be staying at 12.1-20150812, which I believe is the day I originally did a source code sync. Is there a way to make the repo sync download the latest source code as I notice on my galaxy s2 (i9100) that has cm 12.1 nightlies, it gets the latest source code each time they rebuild. Do I need to do a repo init again?

One other thing - the Torch in the Quick settings currently can turn on the light, but it doesn't turn off - I see you have been working on some code in the Omnirom builds to do with torch, so possibly a new version will appear in github that fixes that soon? Other wise I'll try see if I can track down the code - any tips are welcome.
 
Last edited:

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
@daniel_hk - So I just installed my new Build on my p6810 after breakfast and bluetooth is working. Fantastic. Thanks Daniel. I've still got to go through the RIL errors to get the p6800 build code working (trying to be able to help you build fresh cm 12.1 rom's for more then just my device which is the wifi only model).

One question though about the CM12.1 source code and the repo sync command. When I look at my new builds, the CyanogenMod version, doesn't seem to get updated after I do a repo sync and a build. It seems to be staying at 12.1-20150812, which I believe is the day I originally did a source code sync. Is there a way to make the repo sync download the latest source code as I notice on my galaxy s2 (i9100) that has cm 12.1 nightlies, it gets the latest source code each time they rebuild. Do I need to do a repo init again?

One other thing - the Torch in the Quick settings currently can turn on the light, but it doesn't turn off - I see you have been working on some code in the Omnirom builds to do with torch, so possibly a new version will appear in github that fixes that soon? Other wise I'll try see if I can track down the code - any tips are welcome.

1. I have told you that RIL is a blob now. Read my reply again for detail.

2. If you have repo init in the same directory, it won't happen. I guess you just copy from somewhere. A repo init can fix that but you have to remove the old .repo folder. That means all the project sources needed to re-sync again. I need VPN to sync so I would never do that. Guide and examples are in Google's notes.

3. Some of the device specific fixes are in framework. If I'm building a new rom base on CM, I would start a new project and pull CM's change from time to time. This is the way Carbon is doing. But I'm not and I had tried uploading to CM but these device dependent changes seems inappropriate for them. That's why I only recommend changing the official source if really necessary.

For torch on QS, my first attempt was fixing it in HAL but strangely it was only called once. That's why it can only be turned on but not off. I was thinking to give another shot later so I keep the code.
My next attempt was using sysfs directly. This is always my last resort, touching the official source. CM and Omni are using different approach for torch. CM use a service in framework while Omni use the policy in SystemUI. There is no guide and shortcut, we have to find out why first.
It is fixed in framework now but I would try to fix it in the HAL again later.
If you really want to learn and prove yourself. Try this yourself or just setting the default hardware keyboard on. it is comparatively easy. I can guide you through this.

You seems not interested in detail. Sometime I would wonder, am I wasting my time explaining too much?
If yes, I'll keep it short. ;)

FYI,
S2 has 83xM free ram while 7.7 only have 776M. They should have different Ram settings.
Find out why almost all Android and Linux distribution would have a libGLESv3.so link to linGLESv2.so. It would answer your questions.
 

p3dboard

Senior Member
Oct 20, 2013
1,003
616
@daniel_hk - Yes - I have only been light reading so far :)
I don't have lots of extra time, but I am interested in learning, so I don't mind the extra detail, and as I gradually get more familiar I hope I can be more of use to you rather then a burden :) Hopefully over the next few weeks, I'll have a chance to read a bit (slowly) and I don't mind trying to fix some of these bugs / learning how the modules interact as it's the best way to learn :) Thanks for answering my questions.
 

p3dboard

Senior Member
Oct 20, 2013
1,003
616
@daniel_hk - Hi Daniel,

Update on my Question 2 about repo sync - I found this article about Repo Sync commands, and the --reference paramater (http://xda-university.com/as-a-developer/repo-tips-tricks) - using this I was able to build a new repo in a few minutes, rather than hours, as it was able to use the locally downloaded repo as a base to build the new repo. I rebuilt a new rom last night based on the new repo, and the CM 12.1 source code updated to the latest (20150823).

mkdir ~/android/cm12.1
cd ~/android/cm12.1
repo init --reference=~/android/rom -u git://github.com/CyanogenMod/android.git -b cm-12.1
repo sync
 

p3dboard

Senior Member
Oct 20, 2013
1,003
616
Edit: My omnirom build crashed out as well, but with a different error..... Daniel ... any idea's on my errors in both CM 12.1 and Omnirom?

Code:
target thumb C++: libsecosal <= hardware/samsung/exynos/multimedia/openmax/osal/SEC_OSAL_Android.cpp
target thumb C: libsecosal <= hardware/samsung/exynos/multimedia/openmax/osal/SEC_OSAL_Event.c
hardware/samsung/exynos/multimedia/openmax/osal/SEC_OSAL_Android.cpp: In function 'OMX_ERRORTYPE SEC_OSAL_LockANBHandle(OMX_U32, OMX_U32, OMX_U32, OMX_COLOR_FORMATTYPE, void**)':
hardware/samsung/exynos/multimedia/openmax/osal/SEC_OSAL_Android.cpp:160:5: warning: case value '256' not in enumerated type 'OMX_COLOR_FORMATTYPE' [-Wswitch]
     case OMX_SEC_COLOR_FormatANBYUV420SemiPlanar:
     ^
hardware/samsung/exynos/multimedia/openmax/osal/SEC_OSAL_Android.cpp: In function 'OMX_ERRORTYPE SEC_OSAL_GetPhysANBHandle(OMX_U32, void**)':
hardware/samsung/exynos/multimedia/openmax/osal/SEC_OSAL_Android.cpp:218:16: error: 'class android::GraphicBufferMapper' has no member named 'getphys'
     if (mapper.getphys(bufferHandle, paddr) != 0) {

Hi Daniel @daniel_hk,

I've been doing a bit more reading / research about the omnirom compile error, and I believe that the Omnirom compile error above is related to a missing entry in /frameworks/native/libs/ui/GraphicBufferMapper.cpp for the Exynos 4 processor (https://github.com/BlakKatRom/platform_frameworks_native/tree/master/libs/ui - sample code I found with the entry). However just adding the code to the same file doesn't allow it to compile as it errors out. Is there an additional file that needs a reference added? I'll keep on searching in the mean time.

/frameworks/native/libs/ui/GraphicBufferMapper.cpp
#ifdef EXYNOS4_ENHANCEMENTS
status_t GraphicBufferMapper::getphys(buffer_handle_t handle, void** paddr)
{
status_t err;

err = mAllocMod->getphys(mAllocMod, handle, paddr);

ALOGW_IF(err, "getphys(%p) fail %d(%s)",
handle, err, strerror(-err));
return err;
}
#endif

Edit: i think i have to add an entry to the /frameworks/native/include/ui/GraphicBufferMapper.h, i will test after work today
 
Last edited:

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
Hi Daniel @daniel_hk,

I've been doing a bit more reading / research about the omnirom compile error, and I believe that the Omnirom compile error above is related to a missing entry in /frameworks/native/libs/ui/GraphicBufferMapper.cpp for the Exynos 4 processor (https://github.com/BlakKatRom/platform_frameworks_native/tree/master/libs/ui - sample code I found with the entry). However just adding the code to the same file doesn't allow it to compile as it errors out. Is there an additional file that needs a reference added? I'll keep on searching in the mean time.

/frameworks/native/libs/ui/GraphicBufferMapper.cpp
#ifdef EXYNOS4_ENHANCEMENTS
status_t GraphicBufferMapper::getphys(buffer_handle_t handle, void** paddr)
{
status_t err;

err = mAllocMod->getphys(mAllocMod, handle, paddr);

ALOGW_IF(err, "getphys(%p) fail %d(%s)",
handle, err, strerror(-err));
return err;
}
#endif

Edit: i think i have to add an entry to the /frameworks/native/include/ui/GraphicBufferMapper.h, i will test after work today
Yeah, there are a few more to add.
You may search the flags on CM source for the missing codes. CM has most of the missing codes while others can be found in the old source (KK and JB). Modification may be required.

Besides EXYNOS4_ENHANCEMENTS, MHEAP and EGL flags are required to handle too.

These are what I normally do for a port.
Further porting would involve frameworks_base and bionic.
 

p3dboard

Senior Member
Oct 20, 2013
1,003
616
Yeah, there are a few more to add.
You may search the flags on CM source for the missing codes. CM has most of the missing codes while others can be found in the old source (KK and JB). Modification may be required.

Besides EXYNOS4_ENHANCEMENTS, MHEAP and EGL flags are required to handle too.

These are what I normally do for a port.
Further porting would involve frameworks_base and bionic.

Thanks Daniel @daniel_hk

My first omni rom compile - The graphics settings are not quite right, you see part of the boot logo at the top right corner during boot, and the initial boot with rebuild of my Android Apps with ART (coming from your omnirom build) is currently a bit squashed and at the top of the screen - so some display property settings must not be set right, but once booted and you unlock / rotate the screen it displays normally - but the rom compiled and Omni is booting. I've attached my list of current code changes to get this build to happen. GPS still doesn't work on any of my builds, must be something I am missing.

I haven't done any of the MHEAP, or EGL changes yet but the rom built successfully. But as suggested using the CM source I tracked down a missing Wifi setting. I also included from the source code that I found some HDMI code - going to try see if my Samsung HDMI cable does anything (don't expect it will but going to try).

/frameworks/base/core/res/res/values/config.xml

<bool name="config_wifiApFirmwareReload">true</bool>

/frameworks/base/core/res/res/values/custom_symbols.xml

<java-symbol type="bool" name="config_wifiApFirmwareReload" />

services/core/java/com/android/server/NetworkManagementService.java

if (mContext.getResources().getBoolean(
com.android.internal.R.bool.config_wifiApFirmwareReload)) {
wifiFirmwareReload(wlanIface, "AP");
}

P6810 Build - uploaded to
https://www.androidfilehost.com/?w=files&flid=37890
 

Attachments

  • omni-manifest-codechanges.zip
    2.7 KB · Views: 5
Last edited:

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
Thanks Daniel @daniel_hk

My first omni rom compile - The graphics settings are not quite right, you see part of the boot logo at the top right corner during boot, and the initial boot with rebuild of my Android Apps with ART (coming from your omnirom build) is currently a bit squashed and at the top of the screen - so some display property settings must not be set right, but once booted and you unlock / rotate the screen it displays normally - but the rom compiled and Omni is booting. I've attached my list of current code changes to get this build to happen. GPS still doesn't work on any of my builds, must be something I am missing.

I haven't done any of the MHEAP, or EGL changes yet but the rom built successfully. But as suggested using the CM source I tracked down a missing Wifi setting. I also included from the source code that I found some HDMI code - going to try see if my Samsung HDMI cable does anything (don't expect it will but going to try).

/frameworks/base/core/res/res/values/config.xml

<bool name="config_wifiApFirmwareReload">true</bool>

/frameworks/base/core/res/res/values/custom_symbols.xml

<java-symbol type="bool" name="config_wifiApFirmwareReload" />

services/core/java/com/android/server/NetworkManagementService.java

if (mContext.getResources().getBoolean(
com.android.internal.R.bool.config_wifiApFirmwareReload)) {
wifiFirmwareReload(wlanIface, "AP");
}

P6810 Build - uploaded to
https://www.androidfilehost.com/?w=files&flid=37890

1. Omni doesn't support default platform orientation (to 270 degree). Some modification is required in framework_base.

2. Those code are for the HDMI dongle which is crazy expensive and only few people have it.

3. Those valuables are already set by overlay in device tree. Omni doesn't have it. We need to add them.

You might realize that like other AOSP base ROMs, Omni needs more attention.

Good luck!
 

p3dboard

Senior Member
Oct 20, 2013
1,003
616
1. Omni doesn't support default platform orientation (to 270 degree). Some modification is required in framework_base.

2. Those code are for the HDMI dongle which is crazy expensive and only few people have it.

3. Those valuables are already set by overlay in device tree. Omni doesn't have it. We need to add them to the files mentioned.

You might realize that like other AOSP base ROMs, Omni needs more attention.

Good luck!

Thanks for the information, I'll see if I can find where to change the framework_base to fix that. I actually have one of those HDMI dongles which was a about $50 from memory, not that I use it often, but i can use it to test code changes to see if I can get it going.

Yes for point 3, the Overlay did set them, but the code compile crashed out and I had to manually add them.

The Bluetooth APK might need to be modified (I used omni's rather then your APK), to support Bluez? I didn't add the CM modifications to Bluez as being ASOP based I assumed it wouldn't need it. Is that right? Any tips on fixing the GPS? So far it doesn't detect any satellites on either my CM build or Omni.

Thanks. Peter

Edit: I am just doing a compile with this modification to see if that fixes the boot animation, I found this post http://xdaforums.com/showthread.php?t=2594276 about the same issue.

/frameworks/native/services/surfaceflinger/DisplayDevice.cpp
# Line 442
original code -
if ((mHardwareOrientation/90) & DisplayState::eOrientationSwapMask) {
frame = Rect(h, w);
} else {
frame = Rect(w, h);
}

modified code -
if (((mHardwareOrientation/90) || (mHardwareOrientation/270)) & DisplayState::eOrientationSwapMask) {
frame = Rect(h, w);
} else {
frame = Rect(w, h);
}
 
Last edited:

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
Thanks for the information, I'll see if I can find where to change the framework_base to fix that. I actually have one of those HDMI dongles which was a about $50 from memory, not that I use it often, but i can use it to test code changes to see if I can get it going.

Yes for point 3, the Overlay did set them, but the code compile crashed out and I had to manually add them.

The Bluetooth APK might need to be modified (I used omni's rather then your APK), to support Bluez? I didn't add the CM modifications to Bluez as being ASOP based I assumed it wouldn't need it. Is that right? Any tips on fixing the GPS? So far it doesn't detect any satellites on either my CM build or Omni.

Thanks. Peter

Edit: I am just doing a compile with this modification to see if that fixes the boot animation, I found this post http://xdaforums.com/showthread.php?t=2594276 about the same issue.

/frameworks/native/services/surfaceflinger/DisplayDevice.cpp
# Line 442
original code -
if ((mHardwareOrientation/90) & DisplayState::eOrientationSwapMask) {
frame = Rect(h, w);
} else {
frame = Rect(w, h);
}

modified code -
if (((mHardwareOrientation/90) || (mHardwareOrientation/270)) & DisplayState::eOrientationSwapMask) {
frame = Rect(h, w);
} else {
frame = Rect(w, h);
}

1. The price for the HDMI dongle is about us$80 here. The libraries were already included but reported not working.
2. I have already updated the device trees and local_manifest for Omni5.1. No need to track my Bluetooth apk.
3. Don't know why your GPS not working. I had already included the fixes. Might be something missing. Try sync the source again. If still not working, you may dump the log to check what's wrong.
4. As I mentioned before, it is inside framework base. It is the default orientation. This is not the bootanimation orientation issue (which was an old fixed issue).

Next time list in points. It will be easier to read. ;)
I'm quite busy recently. May not be around for a few days...

Good luck!
 

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
@daniel_hk - just a quick question, does the libfimc library have anything to do with gps? I comment out the sm-tab libfimc item

No. fimc is for imaging. I think you got it from LA. He asked me for the Camera and rebuilt the libfimc as a blob.
I build that file from source with the latest gcc.

Did you re-sync the source?
Sometimes local reference would miss something and occupy extra spaces. I use another more efficient method now.

I suggest you restarting with the original device trees and clean source first. Something might be messed up.

Good luck!

Edit: can you send me your logcat?
 
Last edited:

p3dboard

Senior Member
Oct 20, 2013
1,003
616
@daniel_hk - Yes, I am starting from a fresh source tree. I just reset my repo using "repo forall -c 'git reset --hard ; git clean -fdx' " to remove all my modifcations and bring it back to the current.

Current Code changes - trying to modify the least amount of things for CM12.1 (using your github repo)
Using your Bluetooth APK package along with the bluez libraries, I modify /external/bluetooth/bluez/android/hal-bluetooth.c and /external/bluetooth/bluez/android/client/if-bt.c to have the Secure entries. Next I am commenting out the RIL entries in /hardware/ril/Android.mk, /hardware/ril-caf/Android.mk and /hardware/samsung/Android.mk and finally comment out libfmc entry in /samsung/smdk4210-tab/props/Android.mk (So it's using /hardware/samsung/exynos4/hal/libfimc instead of the /vendor/samsung/smdk4210-tab/props entry)

Is there any other things you normally modify for CM12.1 builds? Any advice is welcome.

I also built a SlimLP rom today (it's built off some CM sources and some ASOP) but I still had the same issues with GPS not working as I do with my CM 12.1 builds. The GPS apps I tried said that the GPS was not started, even though Location services were started. Wifi location services worked fine in Google Maps, but GPS didn't work in Google Maps or any GPS Status programs. I have attached the list of changes and the manifest I used to build the SlimLP rom for the p6810
 
Last edited:

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
@daniel_hk - Yes, I am starting from a fresh source tree. I just reset my repo using "repo forall -c 'git reset --hard ; git clean -fdx' " to remove all my modifcations and bring it back to the current.

Current Code changes - trying to modify the least amount of things for CM12.1 (using your github repo)
Using your Bluetooth APK package along with the bluez libraries, I modify /external/bluetooth/bluez/android/hal-bluetooth.c and /external/bluetooth/bluez/android/client/if-bt.c to have the Secure entries. Next I am commenting out the RIL entries in /hardware/ril/Android.mk, /hardware/ril-caf/Android.mk and /hardware/samsung/Android.mk and finally comment out libfmc entry in /samsung/smdk4210-tab/props/Android.mk (So it's using /hardware/samsung/exynos4/hal/libfimc instead of the /vendor/samsung/smdk4210-tab/props entry)

Is there any other things you normally modify for CM12.1 builds? Any advice is welcome.

I also built a SlimLP rom today (it's built off some CM sources and some ASOP) but I still had the same issues with GPS not working as I do with my CM 12.1 builds. The GPS apps I tried said that the GPS was not started, even though Location services were started. Wifi location services worked fine in Google Maps, but GPS didn't work in Google Maps or any GPS Status programs. I have attached the list of changes and the manifest I used to build the SlimLP rom for the p6810

I was thinking you're still in Omni. Slim is AOSP base. Porting is similar to Omni.
Anyway for cm-12.1, I think it's the PIE issue. I assumed LA had already patched it in CM.

I asked for your logcat earlier. Let me see what's wrong first. Please attach the whole thing. I don't want to miss anything.
 

p3dboard

Senior Member
Oct 20, 2013
1,003
616
@daniel_hk - I currently have three source tree's, CM 12.1, Omni and SlimLP. I can compile all three but with various issues. I'll save a logcat output for you from both a CM 12.1 build and SlimLP build. I haven't had time yet to look into the Omni Framework/Base for the orientation issue at boot.

I am keeping my running notes on what changes are needed for each build, but they are basically very similar. I thought I would look at SlimLP, as it was the other Rom that lots of people wanted in your survey, and I didn't want to be duplicating your work, but if I could, wanted to add something new, but I want to get it working reasonably well before posting it to the forums.

I'm just backing up my current Rom which is my daily driver rom (Slimkat 4.4.4 at the moment - everything works in this build for me). If I get time before I have to go out, I'll flash one of my rom's and upload the logcat, otherwise it will have to be when I get home tonight (it's early morning now).

Slim LP Builds - https://www.androidfilehost.com/?w=files&flid=38253
Omni 5.1 Builds - https://www.androidfilehost.com/?w=files&flid=37890
CM 12.1 Builds - https://www.androidfilehost.com/?w=files&flid=37443

Peter
 
Last edited:

p3dboard

Senior Member
Oct 20, 2013
1,003
616
Attached log cat files @daniel_hk

Looking at my builds, even though Bluetooth is compiling, i don't think it's working. I saw a lot of Bluetooth errors when i try turn it on, so probably i have more to fix.

I saw a gps client error in the logs. I also noticed that i am getting the same e sensor error in my builds as your latest build with Adaptive display turned on, turning it off that error disappears.

Any quick tips you can give me would be appreciated

One thing i noticed with the slimlp source code is that it already had all the exynos4 ifdef code like cm12.1, whereas omni doesn't have this. My first build i treated it like omni, but it's Bluetooth library wanted the secure bits you added to compile, but Bluetooth still didn't work. Next i recompiled using your cm 12.1 github Bluetooth app package, but with the minor fixes like mCharset, Bluetooth didn't work, so i went to my last cm12.1 build and realised it to didn't work. Slim compiles and the initial orientation of the boot logo is fine, no need for me to modify framework /base.

Anyway thanks for taking the time to educate and help me.

Peter
 

Attachments

  • cm12.1_2015-09-04_21.46.zip
    173.4 KB · Views: 4
  • cm12.1_Log_2015-9-04_21-44-16.txt.zip
    54.6 KB · Views: 4
  • slimlp_2015-09-04_20.46.zip
    171.2 KB · Views: 4
  • slimlp_Log_2015-9-04_20-49-49.txt.zip
    46.7 KB · Views: 4

daniel_hk

Inactive Recognized Contributor
Nov 12, 2012
1,634
5,344
Hong Kong
Realme X2
Attached log cat files @daniel_hk

Looking at my builds, even though Bluetooth is compiling, i don't think it's working. I saw a lot of Bluetooth errors when i try turn it on, so probably i have more to fix.

I saw a gps client error in the logs. I also noticed that i am getting the same e sensor error in my builds as your latest build with Adaptive display turned on, turning it off that error disappears.

Any quick tips you can give me would be appreciated

One thing i noticed with the slimlp source code is that it already had all the exynos4 ifdef code like cm12.1, whereas omni doesn't have this. My first build i treated it like omni, but it's Bluetooth library wanted the secure bits you added to compile, but Bluetooth still didn't work. Next i recompiled using your cm 12.1 github Bluetooth app package, but with the minor fixes like mCharset, Bluetooth didn't work, so i went to my last cm12.1 build and realised it to didn't work. Slim compiles and the initial orientation of the boot logo is fine, no need for me to modify framework /base.

Anyway thanks for taking the time to educate and help me.

Peter

I don't know which method you get the log. Clearly it was filtered and something is missing. It would just waste your time. Please use the build-in logcat.
In a terminal apk, type:
logcat > /sdcard/log

Or connect to a PC with usb. In the Command shell, type:
adb logcat > log

After that, you can play with gps and when finished press ctrl-c or close the terminal.
Either way would provide the complete log.

This is a typical View attachment log.zip I usually study. I dumped it from Omni. It is clearer and easier to read and search.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 41
    Planning this for sometimes. So much work ahead. Just studying the new code cause me a lot of time. I think I have to rush it out so that someone may share my burden. Don't have much time to polish it. I'm trying to provide all commands, files and links. Please correct me if something is wrong or missing. Hoping this could be a stepping stone for those interested. If you like challenge, it'll be fun! ;)

    1. Introduction :)
    If you have watched "Top Gear", you would have heard Jeremy Clarkson said "How hard could it be?". Why is it so hard to build a rom for our tab?
    When I first play with rom building, it was quite straightforward. I recuilt my retired PC (Celeron 1.2G with 3G RAM, 40G HD) and follow the guild for building PA. Installing Ubuntu 12.04 and then the necessary packages. Everything is ready in a few hours. It was really challenging your patience to repo sync the source. After a few retries, I finally completed the download in two days! After two hours, my harddisk is full! Then I collected another retired 80G HD from a friend. Re-install everything and build again. Building requried 7 hours on my antique PC. With only a few minor errors to correct, my first rom pa2.55 was out. So how hard could it be? It was our predecessors ( @ohanar, @locerra, etc.) :good: who had already done lots of hardwork on device trees and kernel! If Samsung has really released the hardware related sources, there will not be so much troubles for us. At the time Android 4.2 launch, we have a new problem. Our tab's CSR chip doesn't support Bluedroid. See the Nexus family, everything is ready. Rom building will never be so pain in the ass as us.

    1.1 What's wrong with our hardware :confused:
    GT-7.7 and Plus use the exynos4 smdk4210 board with Mali-400 GPU. Quite a number of devices have similar hardware. The main problem we have would be:
    1.1.1 CSR bluetooth chip.
    CSR chip doesn't support bluedroid which become standard after Android 4.2. Bluez.org has provide a solution for 4.2 early this year but porting to 4.3 and 4.4 may take some time.Working on it now. Anyone has experience on bluetooth are welcome to help.. Bluez working now. See my Thread How to port Bluez to Android 4.4. Cheers!:highfive:
    1.1.2 Athero wifi chip.
    Samusng's wifi driver has issues on 5G support and SOD. I'm using the modified kernel driver from Samsung's 4.1.2 source. Athero provide drivers for 3.1 to 3.10 linux kernels but they have no wakelock support. I also wrote a drive base on Athero's source and add wakelock support but have no time to polish it now. Athero's chip doesn't have firmware for AP as Boardcom. Which is also the way Android platform providing wifi tethering in framework. To support wifi tethering we have to change the framework and the driver. Anyone has experience in linux HostAP are welcome to help. Wifi tethering is ok now! Tutorial will be in Post#2 soon.
    1.1.3 modem chip (xm6260).
    RIL stand for (radio interface library). Most of the phone manufacturer would provide their own vendor lib. The only working blob now is Samsung's ICS propietry libsec-ril.so which is obselete now. The one from stock 4.1.2 not working but no time to trace. It also don't seems to have much difference. This library handle the AT commands issuing to the (baseband to) modem chip. xm6260 has a complete set of command manual. It should not be too hard to rewrite if we can hack the ports. However it is not worth to splend too much time on this. Those has experience in AT commands are welcome to help.
    RIL details: http://www.kandroid.org/online-pdk/guide/telephony.html

    1.2 Where to get the source? :confused:
    1.2.1 Samsung's source for our tab
    The best source would be from Samsung http://opensource.samsung.com/. Sadly, the source from Samsung only cover the kernel. Our tab only have source up to 4.1.2 and kernel source 3.0.31 from Samsung.
    1.2.2 Samsung's source for other devices
    Luckly, we have similar architecture to some newer Samsung models. Their source is our major source now. eg. We can use the Mali driver from Note8 and/or i9300.
    1.2.3 Manufacturere's web site.
    The other source would be from the chip manufacturer. eg. Athero has source for linux.

    1.3 What is going on at boot? :confused:
    1.3.1 Power ON
    a) When power button is long pressed (should be released after the logo shows otherwise it will reboot again every 6 seconds). The manufacturer's bootloader would show the vendor's logo. At that moment, bootloader would sense if there are key being pressed. Standard Android will go to boot menu when pwr + vol- is pressed. Samsung would go to download mode (something like fastboot) and accept pwr + vol+ to start recovery mode. If no other key is pressed, it would be a normal boot.
    b) When USB is plug in (PC usb port or charger) at power off, the tab will be turn on silently. It is in the LPM (low power mode). According to lpm.rc (executed by Init, will be explained in 1.3.3), CPU will be set to POWERSAVING and the program charger is running. It should only handle simple tasks like Detecting the pwr button to show the charging images. If the pwr is long press when showing the charging image, it will reboot as in a).
    3) Lollipop LPM: charger is link to the program /sbin/healthd. The process is similar to b) but lpm.rc is merged to init.rc.
    1.3.2 Boot image
    For our tab, there are two parts for a boot.img or a recovery.img. kernel binary and initramfs. As the name imply, Init-Ram-FS is the initial file system loaded into ram when the devices boot. Kernel binary provide the hardware drivers libraies which communicate with the hardware and baseband. At normal boot or recovery mode, the image (in /boot or /recovery partition) will be decompressed and loaded to memory. Initramfs will be loaded in root(/). It would consume a few hundreds MB of RAM and that's why our free ram is only 7xxM.
    In LPM, it would depends on the last boot state. If it was powered off from recovery, recovery.img will be loaded and handle the LPM. If it was powered off from platform, boot.img will be loaded and handle LPM. That's why It might show different charging images if the charging images for reovery.img and boot.img are different.
    Stock cook roms can unpack and modified the initramfs from the existing zImage. It is created in system/core if we build it from source. Here is a tool which can unpack/repack our boot.img or recovery.img.
    1.3.3 Init
    There is the Init program in every initramfs. This is the first program to run according to the sequence in the init.rc (or lpm.rc when in LPM). Partitions will be mounted and symlinked, default values and permissions are assigned, services will be started, etc. The source of Init is in system/core. The last thing Init do would be the continuous eventloop to process events.

    2. Getting Start :cowboy:
    To start building, we need the building environment. Many tutorials have alreay covered the details so I just list my suggestions. The guide from Google is a bit outdated but really helpful. http://source.android.com/source/building.html
    Basic knowledge of linux is required. All commands are run in a terminal.

    2.1 Hardware
    A decent PC with as much ram as possible. Thanks for the donations, I can upgrade to a better i5 notebook with 4G ram and a 500G partition only for building. It would take 3+hrs. for a clean build. RAM and Harddisk speed are essential. A desktop PC with same configuration will be faster since notebook harddisk is slower. I plan to add more RAM when the price drop (seems to be a long wait :()
    RAM: 4G or above is recommended.
    Harddisk space: 30G+ for system, 60G+ per rom, size of ccache (50G-100G), Roughly, a partition with at least 120G for one rom. Bigger is better.
    A decent internet connection is essential. It will take days to sync the source if you only have bandwidth of 2M or less .

    2.2 OS
    64bit Ubuntu Desktop 12.04 or above. Recommend 13.04 or above. I'm using the latest 14.04.

    2.3 Install the required packages
    These packages are required during building and packing. (eg. gzip is required to compress the kernel binary)
    type command: (have a beer or coffee. It will take a while)
    Code:
    [I][COLOR="Green"]For Ubuntu 12.x and 13.x:[/COLOR][/I]
    sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 \
     libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev \
     libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc \
     readline-common libreadline6-dev libreadline6 bzip2 libbz2-dev libbz2-1.0 libncurses5-dev lib32readline5 \
     lib32readline-gplv2-dev lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 pngcrush \
     libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools schedtool libwxgtk2.8-dev python
    
    sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    
    [I][COLOR="Green"]For Ubuntu 14.x and 15.x:[/COLOR][/I]
    sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools \
     build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc lzop \
     libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib
    2.4 Insatll android-sdk
    Download (for Linux 64-bit of course): http://developer.android.com/sdk/index.html
    Extract the file to a directory (eg. ~/android-sdk)
    Add the path to ~/.bashrc
    type command:
    Code:
    sudo gedit ~/.bashrc
    at the bottom add the path
    Code:
    export PATH=~/bin:~/android-sdk/tools:~/android-sdk/platform-tools:$PATH

    Quit and restart terminal to commit the changes.
    Verify the path and update the SDK
    type command:
    Code:
    android

    2.5 Install java
    If you have installed eclipse, openJAVA is ready. Some say it is not suitable for android development.
    I've tried both and I found no appearing difference.
    To install SUN JAVA (Ubuntu 13.04 or above)
    type command:
    Code:
    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java6-installer
    For Lollipop: openjdk 7 is required
    Code:
    sudo apt-get install openjdk-7-jdk

    2.6 Install repo
    type command:
    Code:
    mkdir -p ~/bin
    curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo

    2.7 Add usb dev rules
    Which are required for adb and fastboot, eg. View attachment 51-android.zip
    type command:
    Code:
    sudo cp 51-android.rules /etc/udev/rules.d
    sudo chmod 0644 /etc/udev/rules.d/51-android.rules
    2.8 Enable ccache
    type command:
    Code:
    sudo gedit ~/.bashrc
    add lines for CCACHE
    Code:
    export USE_CCACHE=1
    export CCACHE_DIR=~/android/.ccache
    Quit and launch the terminal again to commit the changes
    ccache will cache the object files of gcc for next build, it would increase the speed of subsequent builds alot.
    After source is sync in 2.11 and before build, we can set the size of ccache first.
    type command:
    Code:
    ~/android/rom/prebuilts/misc/linux-x86/ccache -M<size>

    2.9 Init the source
    Make a new working driectory for your rom
    type command: (eg. ~/android/rom)
    Code:
    mkdir -p ~/android/rom
    Each rom has its own manifest.xml listing all the required projects.
    It is usually in the project android (manifest for PA). The readme of this project would provide the command to init.
    eg. CM11.0: https://github.com/CyanogenMod/android/tree/cm-11.0
    type command:
    Code:
    repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
    It will fetch the manifest.xml and put it into a hidden directory .repo in the current directory (~/android/rom/.repo)

    2.10 preparing local_manifest.xml
    It is not a good pratice to change the manifest.xml directly. If the ROM has change its manifest, you would require to init again. The right way is putting everything your device needed in a seperate file .repo/local_manifests/local_manifest.xml. The device trees and kernel source for GalaxyTab 7.7 and Plus : https://github.com/danielhk?tab=repositories
    eg. cm11.0 for p6800
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <manifest>
      <project name="danielhk/android_hardware_atheros_wlan" path="hardware/atheros/wlan" />
      <project name="danielhk/android_device_samsung_p6800" path="device/samsung/p6800" />
      <project name="danielhk/android_device_samsung_smdk4210-tab" path="device/samsung/smdk4210-tab" />
      <project name="danielhk/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" />
      <project name="danielhk/proprietary_vendor_samsung_smdk4210" path="vendor/samsung" />
      <project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" />
    </manifest>
    Note: Settings will follow manifest.xml. cm-11.0's manifest has default remote="github" and revision="refs/heads/cm-11.0" so we can omit the same entries here. For other roms, see the defined names in manifest.xml and change accordingly. You can also add other devices trees here if you want to build them for the same rom.

    2.11 sync and build
    To fetch the source (specified in manifest.xml and local_manifest.xml) to working directory (~/android/rom)
    type command:
    Code:
    repo sync -j32
    -J specify the no. of threads to download. I have a few trials. Seems 32 works for me.
    When it is done. You will find that ~/android/rom is not empty now.

    You may set the ccache size now:
    type command: (eg. 50G)
    Code:
    ~/android/rom/prebuilts/misc/linux-x86/ccache -M50G
    Only if you want to change size, otherwise it only requires once.

    To build a rom, change to the rom directory. Usual commands: (eg. for CM roms)
    Code:
    cd ~/android/rom
    . build/envsetup.sh
    lunch cm_p6800-userdebug
    mka bacon
    CM need to download a prebuilt (Termianl.apk). To simplify this routines, I modified the build script from PA to cm View attachment rom-build.zip.
    Copy it to the rom directory, type command:
    Code:
    cd ~/android/rom
    ./rom-build.sh p6800
    After building is complete with no error, the rom will be output to ~/android/rom/out/target/product/p6800.

    3. What can we do? :laugh:
    3.1 Kernel
    Since Samsung provide the complete kernel source, working on kernel would be comparatively speaking much easier.
    When we say kernel, we mean the boot.img or zImage which already include the initramfs. This image will be flash to the /kernel (/dev/block/mmcblk0p5)
    Hardware and flags are defined in defconfig inside <kernel dir>/arch/arm/config. It is the Linux standard.
    3.1.1 difference between stock kernel and the kernel in custom rom
    The main difference between the two kernels is the location of kernel library modules. Libray modules are mainly for network and storage drivers. By building them as modules, they can be stoped and restarted in case of critical errors.
    Stock kernel put it in /lib which is part of the initramfs. We need to do extra steps to manually copy them to the initramfs after the first build and rebuild again. If you want to build the stock kernel, there is a very good tutorial.
    Custom rom put the kernel library modules in /system/lib. Thus boot.img need to match those modules, otherwise they will not work properly.
    For custom roms, which defconfig to be used is defined in device tree.
    eg. For p6800, in the file device/samsung/p6800/BoardConfig.mk. There is the line:
    Code:
    TARGET_KERNEL_CONFIG := cyanogenmod_p6800_defconfig
    It specify which defconfig file for the kernel
    I wrote a View attachment build-k.zip scirpt to simplify the building of kernel alone. Copy it to the rom working directory (~/android/rom)
    eg. For p6800, type command:
    Code:
    ./build-k p6800
    New boot.img will be output to the same directory as rom if no error.
    3.1.2 Add/modify O/C, U/V, GOVERNORS, hardware drivers, etc.
    As mentioned in 1.2, we can copy/modified the source from i9100 and n7000 kernels. For example, Dorimanx and Slyahkernel provide many useful code for us. The source of i9300 from Samsung may also provide some drivers update (eg. Mali)
    Ref: Exynos4210 cpu menu., Mirror download
    3.1.3 Default Orientation
    Why the incall screen always landscape?
    Many apks assume the default orientation is portrait but our tab's default orientation is landscape. It is a kernel behaviour so that recoveries (including the stock 3e recovery) are all in landscape.
    To avoid this odd behaviour of apks like inCall screen, changing the default orientation in kernel is the ultimate solution.
    It is already in my do list for a long time but trying to keep up with the android plaftform already occupy all my spare time...
    I already have some idea how to do. Anyone interested to help on this can PM me.
    Already fixed in the platform ;)
    3.1.4 Update the kernel source
    The existing kernel is base on Linux 3.0.x. It is outdated but I don't think Samsung would bother to update it. I had tried starting with the 3.4 source from Google but don't have enough time to carry on. I have filled some drivers already. Will take another shot later if I have time...
    Anyone have experience in Linux kernel are welcome to help. No more guides are there, this would be a great challenge but fun!

    3.2 device tree
    Every device requires a device tree which:
    a) Specify the hardware
    b) define some overrided library. (eg. sensor, camera)
    c) provide the extra files to be put in the initramfs. (init.<device>.rc, fstab.<device>, etc.)
    If there are a few models variants, common parts would be put in a seperate common device tree (eg. smdk4210-tab for our tab). In this way, changing can be made once for all variants.
    Most of the work on porting for a specific ROM would be on the device tree. Same as the kernel, we can get some update by modifying from other devices. CM's device tree for i9100, n7000 and i9300, etc. With a good device tree, we can port to any ROM.

    3.3 Bluetooth support after 4.2.
    In 4.2.2, I changed the source of framework, system_core, phone apk and device tree to work with bluez. It was a huge job! Hundreds of lines had been changed. Many files are replaced. It was quite clumsy but was the only way then. This way may not work for 4.3 onward.
    Here are the details of both stack:
    Bluedriod : http://source.android.com/devices/bluetooth.html
    Bluez : http://www.kandroid.org/online-pdk/guide/bluetooth.html
    3.3.1 We may modify the bluedroid to support our chip.
    3.3.2 Working on the bluez support. I'm trying now.
      Bluez5 is OK now. See my thread: How to port Bluez to Android 4.4 ;)

    3.4 Recoveries
    With the device tree and kernel, we can build the recovery from source. CWM would be a side product of CM roms and TWRP has a tutorial.
    The same View attachment build-k.zip script can be used to build recovery alone. In the rom working direcotry, to build recovery only
    type command:
    Code:
    ./build-k p6800 recovery
    With no error, recovery.img will be at the same output directory as rom.
    6
    daniel_hk, Check and commit to your tree my patches for PAC-4.2.2

    Thanks!
    It nice to see someone interested in our development!

    I have look into your changes briefly.
    1. Some changes in media which I'll leave the user to decide. I rather keep the builds as genuie as possible.
    2. Some of them are new commit of the original source which will automatically updated in a sync.
    3. I forgot to upload a few minor projects to github.

    One of which was android_build which will include the files like hciattach building from source. If you study the source of exteranl/bluetooth/bluez, they are there. That means it might have update later. No need to add as a blob.

    Actually the best way is including them in PROJECT_PACKAGES section of the device.mk. It would have the same result without touching the original source. Less touch to the original source means fewer conflict later. I was caught up and did't have time to tidy up everything so I leave it there. Also, files from bluetooth should be put in the smdk4210-tab device tree. All model share the same source.

    vendor_pac should be upload to official PAC's git. They already gave me an account but they use Google+ which I have trouble to login here. I was working on a job and I hadn't follow up. Now I'm working on 4.4 which PAC haven't release yet. So I put aside first.

    You probably didn't have to waste you time if you PM me first.

    Everytime I upload to github is a challenge, it always break before complete. I have to monitor it from time to time. Annoying! So I can only upload once a while when everything is ready...

    To be honest, I really don't have time to keep up with the old source. The new ports already occupy all my spare times. With limited resource, I can only focus on major issues. Bluetooth after 4.3 is my first priorty. If it can be done, means we can go much further.

    If you are interested, you may pick one of the thing I mentioned in this thread to start. Wifi-tethering or the vendor ril library is needed too. You may try it in 4.2.2 first. See what you are good at and interested to. PM me or post again if you have any questions and/or suggestion.

    Thanks again for your effort. ;)
    2
    Local manifest
    https://github.com/danielhk/local_manifest
    All model share the same local_manifest.xml
    1
    daniel_hk, Check and commit to your tree my patches for PAC-4.2.2
    1
    Thanks!
    It nice to see someone interested in our development!

    I have look into your changes briefly.
    1. Some changes in media which I'll leave the user to decide. I rather keep the builds as genuie as possible.
    2. Some of them are new commit of the original source which will automatically updated in a sync.
    3. I forgot to upload a few minor projects to github.

    One of which was android_build which will include the files like hciattach building from source. If you study the source of exteranl/bluetooth/bluez, they are there. That means it might have update later. No need to add as a blob.

    Actually the best way is including them in PROJECT_PACKAGES section of the device.mk. It would have the same result without touching the original source. Less touch to the original source means fewer conflict later. I was caught up and did't have time to tidy up everything so I leave it there. Also, files from bluetooth should be put in the smdk4210-tab device tree. All model share the same source.

    vendor_pac should be upload to official PAC's git. They already gave me an account but they use Google+ which I have trouble to login here. I was working on a job and I hadn't follow up. Now I'm working on 4.4 which PAC haven't release yet. So I put aside first.

    You probably didn't have to waste you time if you PM me first.

    Everytime I upload to github is a challenge, it always break before complete. I have to monitor it from time to time. Annoying! So I can only upload once a while when everything is ready...

    To be honest, I really don't have time to keep up with the old source. The new ports already occupy all my spare times. With limited resource, I can only focus on major issues. Bluetooth after 4.3 is my first priorty. If it can be done, means we can go much further.

    If you are interested, you may pick one of the thing I mentioned in this thread to start. Wifi-tethering or the vendor ril library is needed too. You may try it in 4.2.2 first. See what you are good at and interested to. PM me or post again if you have any questions and/or suggestion.

    Thanks again for your effort. ;)

    Thanks to you Daniel for your immense effort on detailing all this! I'm far from a dev status like you and @UpInTheAir. But my support will always go to you developers. Both of you has done an impressive work for an outdated hardware and keep us happy with your Rom and Kernel. Again, thanks a lot.