error while starting self-compiled android in vm - android

i am getting following errors on starting the android vm (compiled from froyo branch) in virtual-box 4.0.4
D/ALSAModule(1985)open called for devices 00000002 in mode 0...
E/ALSALib (1985)external/alsa-lib/src/pcm/pcm.c:2203:(snd_pcm_open_noupdate) Unknown PCM AndroidPlayback_Speaker_normal
E/ALSALib (1985)external/alsa-lib/src/pcm/pcm.c:2203:(snd_pcm_open_noupdate) Unknown PCM AndroidPlayback_Speaker
E/ALSALib (1985)external/alsa-lib/src/pcm/pcm.c:2203:(snd_pcm_open_noupdate) Unknown PCM AndroidPlayback
D/ (1985)[external/alsa-lib/src/pcm/pcm_hw.c]:snd_pcm_hw_prepare
I/ALSAModule(1985)Initialized ALSA PLAYBACK device default
it seems the problem is with sound device (or ALSA) but I am not sure. Any help is appreciated.

I think that you are missing alsa config in your system image. Check if /system/etc/asound.conf is present or not. Try creating a new config file with default configuration. Check THIS for more details

Related

How can I add new accelerometer sensor to qcom android HAL?

Would like to enable MPU6050 accel & gyro sensor for my Qualcomm board which is MSM8909 chipset and android version is 8.x Oreo.
I have tried the following.
Enabled the kernel driver for the sensor "drivers/input/misc/mpu6050.c" and able to detect the sensor in android kernel too.
Log:
[ 62.096904] input: MPU6050-accel as /devices/soc/78b7000.i2c/i2c-3/3-0068/input/input2
[ 62.101460] input: gyroscope as /devices/soc/78b7000.i2c/i2c-3/3-0068/input/input3
msm8909w:/ # echo 1 > /sys/class/sensors/MPU6050-accel/enable
msm8909w:/ # echo 1 > /sys/class/sensors/MPU6050-gyro/enable
msm8909w:/ # getevent
add device 1: /dev/input/event3
name: "gyroscope"
add device 2: /dev/input/event2
name: "MPU6050-accel"
msm8909w:/ # lshal debug android.hardware.sensors#2.0:ISensors/default
android.hardware.sensors#2.0:ISensors/default does not exist, or no permission to connect.
msm8909w:/ #
msm8909w:/ # lshal debug android.hardware.sensors#1.0
android.hardware.sensors#1.0/default does not exist, or no permission to connect.
Tried to run android app to list out the sensors and found nothing, but able to list out sensors if I run it on my phone.
Following HAL layer settings & android code changes done and no luck!
device/qcom/msm8909w/sensors/hals.conf
sensors.msm8909w.so
sensors.msm8909.so
sensors.default.so
sensors.ssc.so
sensors.native.so
Created build error in hardware/qcom/sensors/Accelerometer.cpp file to see whether this code is building or not, I didn't get any build errors.
Also referred to following document.
https://developer.qualcomm.com/qfile/28820/lm80-p0436-9_sensors_porting_guide.pdf
Do I need to change anything in HAL layer for my new sensor or anything missing here ?
If you are not aware. Then i want to tell you that:
Qualcomm uses ADSP as subsystem for their sensor.
ADSP images are loaded by qcom kernel driver.
ADSP code is proprietary.
ADSP and android HAL communicate through fastrpc.
Thanks 😊
May be this is useful.

Android Port bootloop due to non updatable apex or boringssl checks

I am building LineageOS 18.1 for tecno kd7. I have system, system_ext, product & vendor paritions. The rom port I built is having a boot loop.
Here is the last_kmsg
What is causing the boot loop?
I am suspecting these lines
[ 1.802608] (0)[354:apexd]apexd: This device does not support updatable APEX. Exiting
[ 2.352523] (0)[1:init]reboot: Restarting system with command 'boringssl-self-check-failed'
I just need direction on what I need to what is causing the phone to bootloop
I also faced the same issue. The boringssl-self-test binary is using incorrect libcrypto.so library.
You can run the boringssl-self-test with strace and check for the issue.
In file : external/boringssl/selftest/boringssl_self_test.rc
service boringssl_self_test64_vendor /system/bin/strace -tt /vendor/bin/boringssl_self_test64
setenv BORINGSSL_SELF_TEST_CREATE_FLAG true # Any nonempty value counts as true
#reboot_on_failure reboot,boringssl-self-check-failed
stdio_to_kmsg
seclabel u:r:vendor_boringssl_self_test:s0

Alljoyn file transfer issue when connect with android M device

hi am not able to send and receive file when try to send form alljoyn sample demo.
I have use 16.4 jar and .so file for that provide by alljoyn.
Here is provided jar and .so
https://github.com/onbiron/AllJoyn
I am getting that kind of error when try to join session.
12-19 17:42:04.371 14705-14823/org.alljoyn.cops.filetransfer.sampleapp E/PERMISSION_MGR: 1.906 ****** ERROR PERMISSION_MGR lepDisp2_0 ...ndroid/PermissionDB.cc:182 | Failed to open /data/system/packages.xml: ER_FAIL
12-19 17:42:35.739 14705-14867/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ: 33.275 ****** ERROR ALLJOYN_OBJ JoinS-2 .../router/AllJoynObj.cc:2870 | SendAttachSession failed: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:35.739 14705-14865/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ: 33.275 ****** ERROR ALLJOYN_OBJ JoinS-1 .../router/AllJoynObj.cc:2870 | SendAttachSession failed: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:35.744 14705-14867/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ: 33.280 ****** ERROR ALLJOYN_OBJ JoinS-2 .../router/AllJoynObj.cc:1110 | Failed to attach session 3934278432 to :LL5lO2PF.2: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:35.744 14705-14865/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ: 33.280 ****** ERROR ALLJOYN_OBJ JoinS-1 .../router/AllJoynObj.cc:1110 | Failed to attach session 3934278432 to :LL5lO2PF.2: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:36.206 14705-17188/org.alljoyn.cops.filetransfer.sampleapp E/LOCAL_TRANSPORT: 33.742 ****** ERROR LOCAL_TRANSPORT lepDisp2_0 ...src/LocalTransport.cc:597 | LocalEndpoint::DoPushMessage failed: ER_BUS_UNMATCHED_REPLY_SERIAL
12-19 17:42:36.209 14705-17225/org.alljoyn.cops.filetransfer.sampleapp E/LOCAL_TRANSPORT: 33.745 ****** ERROR LOCAL_TRANSPORT lepDisp2_1 ...src/LocalTransport.cc:597 | LocalEndpoint::DoPushMessage failed: ER_BUS_UNMATCHED_REPLY_SERIAL
12-19 17:42:37.869 14705-14747/org.alljoyn.cops.filetransfer.sampleapp E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9327058
12-19 17:42:39.866 14705-14747/org.alljoyn.cops.filetransfer.sampleapp E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb944b690
Note that the AllJoyn File Transfer service app hasn't had a commit in 3 years, and is marked as legacy/archived. It is not active.
The issue that you mention appears to be a timeout during the join request. This has not been a significant problem for me (only saw it once over several days, and workaround was to simply retry joining the session which was then successful). I believe this timeout can happen very infrequently when there is congestion/delays in the network.
However, I did experience several other issues with this app when running it on Android 6.0, which prevented file transfers from working. These included:
Unable to read/write files from the device. Need to request read/write permissions at run-time even though they were already in the manifest. This appears to be necessary from Android version 6.0 and later (API level 23+). See https://stackoverflow.com/a/38989237/7281796
The app uses a hard-coded save directory path of /mnt/sdcard. This path doesn't existing on my Nexus 5 running 6.0.1. Need to use the Environment.getExternalStorageDirectory() absolute path rather than using hard-coded path.
Restarting one of the two apps would cause file transfer between peers to no longer work (unless the other app was also restarted). Need to use a SessionListener to release connection objects and reset GUI view on receipt of session lost.
Handle case where duplicate join-session processing occurs when multiple concurrent Found Advertisements are received from the hosting app. This was causing the GUI list-view of available peers to display duplicate peer entries. Also caused "share file" to subsequently fail due to ER_BUS_NO_SUCH_OBJECT when app attempts to send an alljoyn signal over the session.
Fixes for these issues are available in my github repository (fork of the AllJoyn File Transfer service app): https://github.com/psigurdson/alljoyn-services-filetransfer

Android ART - Usage of .oat file in /dalvik-cache/?

while playing around with Android ART and the "native" code file .oat/.elf which is created at the app installation process, I did notice something odd.
For my understanding, if the device is using ART (Android >= 5.0), the app will start with the compiled oat file (/data/dalvik-cache/arm64/).
Thats why I was kinda surprised when checking the used fd's of an app and did not find the file there. Only the normal apk (/data/app//base.apk) is listed there.
Check this output of my "ls -l /proc/PID/fd"
So I thought maybe it's just not listed there. So I did exchange the oat file of that app by myself by compiling another classes.dex with the dex2oat tool.
So even after changing the file, the app starts normally without any strange messages or errors (also in logcat).
What is the explanation for this? What is the detailed process Android does when starting an app under ART?
I hope someone can clear that up for me. Thanks a lot.
Based on #Paschalis comment, I investigated here and the oat file is indeed memory mapped on Android 5.0 devices (emulator):
a6af4000-a6af9000 r--p 00000000 1f:01 7366 /data/dalvik-cache/x86/data#app#my.app.works-1#base.apk#classes.dex
Check via:
cat /proc/<PID>/maps | grep dex
Sadly this isn't true anymore for Android 6.0 devices (Nexus 5 & arm-Emulator).
The odex file is within the /data/app/<APP>/oat/<ARCHITECTURE>/ folder as 'base.odex`
/data/app/app.app.works-1/oat/arm/base.odex
I still haven't found a valid reference for this, it is based on experiments and observations

avformat_open_input returns -2 (Android)

I'm using this FFMPEG port for Android.
My Goal is to read RTSP stream eventually.
I can open a stream from a local file (located at "/storage/emulated/0/bunny.mp4") ,
using *avformat_open_input* function.
However when I try to open the same file from remote location like *"http_://192.168.1.183/bunny.mp4*" , it returns error -2 .
The whole cpp code is here.
Any ideas ?
Check if you have INTERNET permission in your manifest.
Also check that you are building ffmpeg with tcp and rtsp protocol enabled. And codecs enabled, too. I believe FFMPEG's configure prints this info when building and also it's in the build log.
Also, there's a FFMPEG function to print error message by code, don't remember the name though. So you can call it and see what -2 error means.
This here project has FFMPEG configured correctly https://github.com/dannoy/dolphin-player look in the p folder

Categories

Resources