Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

init: qcrild.rc : Add vendor prefix to ril-daemon #874

Closed
wants to merge 7 commits into from

Conversation

ShujathMohd
Copy link
Contributor

qcrild.rc is attempting to stop ril-daemon which doesnt exist (https://github.com/sonyxperiadev/device-sony-common/blob/s-mr1/rootdir/vendor/etc/init/qcrild.rc#L9) and errors out with the below message.

"init: Command 'stop ril-daemon' action=vendor.rild.libpath=/odm/lib64/libril-qc-hal-qmi.so (/vendor/etc/init/qcrild.rc:9) took 0ms and failed: service ril-daemon not found."

Instead we have vendor.ril-daemon service starting in the background.

"init: starting service 'vendor.ril-daemon'..."

Add the vendor prefix to ril-daemon.

Fixes the buggy sim detection on S.

MarijnS95 and others added 7 commits November 23, 2021 14:41
Starting with Android S [1]/[2] biometric sensors must now be explicitly
listed in config.xml, complete with its "ID", type and strengh.
Strength 15 here corresponds with a Class-3 secure biometrics device as
per [3].

[1]: https://cs.android.com/android/_/android/platform/frameworks/base/+/e8d2d1f9bfa90b9b260f4a5f95caea7518b30ea5
[2]: https://cs.android.com/android/_/android/platform/frameworks/base/+/9cef3631fb8eaecd4ea4583337f160af24237e12
[3]: https://source.android.com/compatibility/android-cdd#7310_biometric_sensors

Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
In [1] Google removed many HIDL HAL libraries from VNDK, causing them to
only be installed to the system partition.  This is inaccessible for
vendor apps and results in the usual:

    linker  : CANNOT LINK EXECUTABLE "/odm/bin/hw/android.hardware.keymaster@4.0-service-qti": library "android.hardware.keymaster@4.0.so" not found: needed by main executable
    linker  : CANNOT LINK EXECUTABLE "/odm/bin/hw/android.hardware.keymaster@4.0-service-qti": library "android.hardware.keymaster@4.1.so" not found: needed by /odm/lib64/libqtikeymaster4.so in namespace (default)
    linker  : CANNOT LINK EXECUTABLE "/odm/bin/hw/vendor.somc.hardware.modemswitcher@1.0-service": library "android.hardware.radio.config@1.0.so" not found: needed by /odm/lib64/libril-qc-hal-qmi.so in namespace (default)
    linker  : CANNOT LINK EXECUTABLE "/odm/bin/hw/qcrild": library "android.hardware.secure_element@1.1.so" not found: needed by /odm/lib64/libril-qc-hal-qmi.so in namespace (default)
    linker  : CANNOT LINK EXECUTABLE "/odm/bin/hw/qcrild": library "android.hardware.secure_element@1.2.so" not found: needed by /odm/lib64/libril-qc-hal-qmi.so in namespace (default)
    linker  : CANNOT LINK EXECUTABLE "/odm/bin/hw/qcrild": library "android.hardware.radio.deprecated@1.0.so" not found: needed by /odm/lib64/libril-qc-hal-qmi.so in namespace (default)

These libraries are listed in common-treble because they're used by ODM
apps but have no explicit vendor dependency (ie. a binary placed on
/vendor) to put them in a vendor-available space.  The default is to
include system variants which is why the dependencies have to be
suffixed with `.vendor` so that they're shipped in `/vendor` and are
available for our ODM blobs even on GSIs.

[1]: https://cs.android.com/android/_/android/platform/hardware/interfaces/+/d610435ac4bb051761b0f016aa6cdf2e884c55b5

Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Following the previous commit, starting with Android S most HAL
libraries are not included in VNDK anymore - they need to be explicitly
pulled in to `/vendor` for odm blobs to be allowed to access them:

    linker  : CANNOT LINK EXECUTABLE "/odm/bin/netmgrd": library "android.system.net.netd@1.1.so" not found: needed by main executable

Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Following the commit f19703e ("common-treble: Provide radio, keymaster
and secure_element HAL on vendor"), starting with Android 12 most HAL
libraries are not included in VNDK anymore - they need to be explicitly
pulled in to `/vendor` for odm blobs to be allowed to access them:

    QCamera : <MCI><ERROR> mm_camera_load_shim_lib: 3306: dlopen failed
    with error dlopen failed: library
    "android.frameworks.sensorservice@1.0.so" not found: needed by
    /odm/lib/libmmcamera2_stats_modules.so in namespace (default)

android.frameworks.sensorservice@1.0 is used by at least mm-camera
framework.

Signed-off-by: Pavel Dubrova <pashadubrova@gmail.com>
Set default behavior when the user long presses the power button.
This allows to call the power menu with a long press of the power
button. If the default value is set to 5 (Go to assistant), the fallback
to the old behavior will not work when "Hold for Assistant" is disabled.

Reference:
https://android.googlesource.com/platform/packages/apps/Settings/+/34cbca502bdfd6e0e5fff836bb9b0a3abf6811ea

Signed-off-by: Pavel Dubrova <pashadubrova@gmail.com>
fix for CANNOT LINK EXECUTABLE
/odm/bin/hw/android.hardware.authsecret@1.0-service-qti:
library android.hardware.authsecret@1.0.so not found: needed by main executable

Following the commit f19703e ("common-treble: Provide radio, keymaster
and secure_element HAL on vendor"), starting with Android 12 most HAL
libraries are not included in VNDK anymore - they need to be explicitly
pulled in to `/vendor` for odm blobs to be allowed to access them:

QCamera : <MCI><ERROR> mm_camera_load_shim_lib: 3306: dlopen failed
with error dlopen failed: library
"android.frameworks.sensorservice@1.0.so" not found: needed by
/odm/lib/libmmcamera2_stats_modules.so in namespace (default)

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
qcrild.rc is attempting to stop ril-daemon which doesnt exist (https://github.com/sonyxperiadev/device-sony-common/blob/s-mr1/rootdir/vendor/etc/init/qcrild.rc#L9) and errors out with the below message.

"init: Command 'stop ril-daemon' action=vendor.rild.libpath=/odm/lib64/libril-qc-hal-qmi.so (/vendor/etc/init/qcrild.rc:9) took 0ms and failed: service ril-daemon not found."

Instead we have vendor.ril-daemon service starting in the background.

"init: starting service 'vendor.ril-daemon'..."

Add the vendor prefix to ril-daemon.

Fixes the buggy sim detection on S.
@bartcubbins
Copy link
Contributor

@MarijnS95
Copy link
Contributor

Please add the reference link to the commit.

That commit is from 2018, should this also be applied to at least r-mr1?

@jerpelea jerpelea changed the base branch from s-mr1 to r-mr1 November 25, 2021 11:41
@jerpelea jerpelea changed the base branch from r-mr1 to s-mr1 November 25, 2021 11:42
@jerpelea
Copy link
Collaborator

cherry-picked

@jerpelea jerpelea closed this Nov 25, 2021
@bartcubbins
Copy link
Contributor

should this also be applied to at least r-mr1?
yes, as I can see

@ShujathMohd
Copy link
Contributor Author

ShujathMohd commented Nov 26, 2021

cherry-picked

Thanks Alin,
Its picked on R currently, Need it for S too.

@MarijnS95
Copy link
Contributor

Thanks Alin, Its picked on R currently, Need it for S too.

It's definitely on S:

image

@ShujathMohd
Copy link
Contributor Author

Thanks Alin, Its picked on R currently, Need it for S too.

It's definitely on S:

image

Oops. my bad...
Thanks Marijn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants