Everything you need to know to fix camera on custom ROM - Sony Xperia E1
Hi, in order to get camera working you have to do two things: build custom kernel and add one proprietary driver from stock rom.
I'm almost at the end, if anyone could help me I would be thankful.
Sony E1 uses Samsung CMOS sensor s5k5ca, it's SoC (snapdragon doesn't encoding videos from this sensor). It was introduced in 2010.
How to build custom kernel:
git clone https://github.com/TeamVee-SS/android_kernel_sony_msm8x10.git
make ARCH=arm shuang_defconfig
make ARCH=arm menuconfig
from there change kernel compression from Gzip to XZ, because kernel will be bigger..
Go to "Device Drivers", "Multimedia support"; Enable following:
MSM videobuf2 extensions
Qualcomm MSM camera and video capture support ---> Qualcomm MSM camera and video capture support
Qualcomm MSM camera and video capture 2.0 support --->
Qualcomm MSM V4L2 based video driver --->
go to "Qualcomm MSM camera and video capture 2.0 support" and enable following:
Qualcomm MSM camera sensor support Qualcomm MSM Camera Post Processing Engine support Qualcomm MSM Camera Control Interface support Qualcomm MSM Image Signal Processing interface support Qualcomm MSM Image Signal Processing interface support Sensor S5K5CA (YUV 3MP)
in "Qualcomm MSM camera and video capture 2.0 support"
Qualcomm MSM V4l2 video overlay device
Qualcomm MSM camera sensor support
Also you need to uncomment two lines, revert the one commit, see:
dts: shuang: Disable camera allocation · TeamVee-SS/[email protected]
Change-Id: I85d6b698d9ca0e20717ab79f2f09ea05a635a2cf Signed-off-by: Caio Oliveira <[email protected]>
github.com
then compile kernel by:
make -j8 ARCH=arm CROSS_COMPILE=/opt/toolchains/arm-eabi-4.9/bin/arm-eabi- CONFIG_NO_ERROR_ON_MISMATCH=y
rebuild your mkbootimg but use the same initrd(ramdisk) as was for your custom rom
Spoiler: mkbootimg command
mkbootimg --kernel zImage --ramdisk ramdisk.gz --cmdline "androidboot.hardware=qcom user_debug=23 maxcpus=2 msm_rtb.filter=0x3F ehci-hcd.park=3 msm_rtb.enable=0 lpj=192598 dwc3.maximum_speed=high dwc3_msm.prop_chg_detect=Y androidboot.bootdevice=msm_sdcc.1 androidboot.selinux=permissive" --base 0x00000000 --pagesize 2048 --dt dt --ramdisk_offset 0x02000000 --tags_offset 0x01E00000 -o out.img
If you want to use kernel with stock rom use mkqcdtbootimg
Spoiler: command
mkqcdtbootimg --kernel arch/arm/boot/zImage --ramdisk cwm.img-ramdisk.gz --dt_dir arch/arm/boot/ --base 0x00000000 --ramdisk_offset 0x2008000 --kernel_offset 0x10000 --tags_offset 0x1e08000 --pagesize 2048 --cmdline "androidboot.hardware=qcom user_debug=31 maxcpus=2 msm_rtb.filter=0x3F ehci-hcd.park=3 msm_rtb.enable=0 lpj=192598 dwc3.maximum_speed=high dwc3_msm.prop_chg_detect=Y androidboot.bootdevice=msm_sdcc.1 " -o boot.img
After you boot into system you should see if kernel finds this image sensor
Spoiler: dmesg | grep s5k5
[ 3.292867] msm_s5k5ca_i2c_probe: 639: client->addr = [78]
[ 3.327817] s5k5ca_sensor_power_up: 775: clk_rate = [24000000], clk_info_size = [2]
[ 3.376093] s5k5ca_match_id: 1945: calling i2c_read: i2c_addr = [78], id_reg_addr = [f12]
[ 3.386482] s5k5ca_match_id: 1967: [read id/expected id] = [5ca/0x05ca]
[ 3.392530] s5k5ca_sensor_power_up: 812: HW_VERSION_GPIO = [85], HW_VERSION = [1]
[ 13.659106] s5k5ca_sensor_config: 921: s5k5ca: cfgtype = [8]
[ 13.686368] s5k5ca_sensor_config: 933: sensor name [s5k5ca]
[ 13.691223] s5k5ca_sensor_config: 935: session id [1]
[ 13.696133] s5k5ca_sensor_config: 939: subdev_id0 = [-1]
[ 13.717228] s5k5ca_sensor_config: 939: subdev_id1 = [-1]
[ 13.727085] s5k5ca_sensor_config: 939: subdev_id2 = [-1]
[ 13.740409] s5k5ca_sensor_config: 939: subdev_id3 = [-1]
[ 13.757070] s5k5ca_sensor_config: 939: subdev_id4 = [-1]
[ 13.777061] s5k5ca_sensor_config: 939: subdev_id5 = [-1]
[ 13.793739] s5k5ca_sensor_config: 939: subdev_id6 = [0]
[ 13.810401] s5k5ca_sensor_config: 939: subdev_id7 = [-1]
[ 13.830394] s5k5ca_sensor_config: 939: subdev_id8 = [0]
[ 13.847061] s5k5ca_sensor_config: 939: subdev_id9 = [-1]
[ 13.863854] s5k5ca_sensor_config: 921: s5k5ca: cfgtype = [9]
[ 13.883729] s5k5ca_sensor_config: 1158: init params mode = [0], pos = [0], mount = [90], HW_VERSION = [1]
In some cases you can see this:
Spoiler: dmesg | grep s5k5 -C 5
<7>[ 3.061715] msm_vidc: 1: Q6 hfi device probe called
<6>[ 3.065780] msm_s5k5ca_i2c_probe: 639: client->addr = [78]
<6>[ 3.100655] s5k5ca_sensor_power_up: 775: clk_rate = [24000000], clk_info_size = [2]
<6>[ 3.148995] s5k5ca_match_id: 1945: calling i2c_read: i2c_addr = [78], id_reg_addr = [f12]
<6>[ 3.157982] s5k5ca_match_id: 1967: [read id/expected id] = [5ca/0x05ca]
<6>[ 3.163836] s5k5ca_sensor_power_up: 812: HW_VERSION_GPIO = [85], HW_VERSION = [1]
<6>[ 3.174024] lirc_dev: IR Remote Control driver registered, major 242
<6>[ 3.179614] IR NEC protocol handler initialized
<6>[ 3.184008] IR RC5(x) protocol handler initialized
<6>[ 3.188855] IR RC6 protocol handler initialized
<6>[ 3.193295] IR JVC protocol handler initialized
2. Vendor qcom propriety driver
It was leaked, see:
https://github.com/psychopnk/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/baksosapi/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/bullik01/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/dfyuan/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Puzhenwei/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/rx78gp01/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/sandeepbhuyan/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/usernamegemaoa/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Vimalraj1/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Dabi01/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Bigcountry907/HTC_a13_vzw_Kernel/tree/master/vendor/qcom/proprietary
All this repos has been taken down, but if you search you can get full source code but it's nothing there, support for s5k3l1yx, s5k4e1_u and several other chips but no s5k5ca. If we had leak of git repo of this we could gain what we want.
https://github.com/pier11/kernel_huawei_u8220/wiki/Cameras
According to this page libqcamera.so is filename for our driver, we must use this file directly from stock rom. It's configurable during compilation, it means it have support for sensors only selected during compilation.
We must delete "camera" part of hardware_qcom and other things, add this vendor file and so on. It's for Android 2 but works on 4.4 and it will work on newer Android.
We can use Huawei's/Foxconn's driver for s5k5ca from it's kernel source code but it's complicated.
You can view how many devices use this camera using this site:
Device Info HW Database
Devices and their components database
deviceinfohw.ru
Logcat from working rom:
https://stackoverflow.com/questions/14257760/android-camera-wont-take-picture
List of devices using the same camera sensor:
Nokia X (they managed to get camera full working on lineage 11!)
See https://forum.xda-developers.com/t/rom-unofficial-lineage-os-11-for-nokia-x-xl.3628794/
and https://github.com/Nokia-xl-legacy/vendor_xl/
Huawei Prism II
Huawei-U8687
MediaPad 7 Youth
HUAWEI U8666E
HP Slate 7
I'll fix shuang vendor files, based on vendor_xl and stock rom, then I'll post simplest solution, or ready to go compiled rom, with working camera and gps, as installable zip or image.
Cairo ported sony e1 to other kernel because with stock source we cannot make bootable image using aosp mkbootimg, we must use mkqcdtbootimg. Please note that Cairo disabled camera allocation in dtb. Working blobs are present in lineage 14.1
Currently, I downgraded to stock rom and I will check if custom kernel can handle camera
Oh my god.. If only we could have that leak several years ago..
Arekjk76 said:
Hi, in order to get camera working you have to do two things: build custom kernel and add one proprietary driver from stock rom.
I'm almost at the end, if anyone could help me I would be thankful.
Sony E1 uses Samsung CMOS sensor s5k5ca, it's SoC (snapdragon doesn't encoding videos from this sensor). It was introduced in 2010.
How to build custom kernel:
git clone https://github.com/TeamVee-SS/android_kernel_sony_msm8x10.git
make ARCH=arm shuang_defconfig
make ARCH=arm menuconfig
from there change kernel compression from Gzip to XZ, because kernel will be bigger..
Go to "Device Drivers", "Multimedia support"; Enable following:
MSM videobuf2 extensions
Qualcomm MSM camera and video capture support ---> Qualcomm MSM camera and video capture support
Qualcomm MSM camera and video capture 2.0 support --->
Qualcomm MSM V4L2 based video driver --->
go to "Qualcomm MSM camera and video capture 2.0 support" and enable following:
Qualcomm MSM camera sensor support Qualcomm MSM Camera Post Processing Engine support Qualcomm MSM Camera Control Interface support Qualcomm MSM Image Signal Processing interface support Qualcomm MSM Image Signal Processing interface support Sensor S5K5CA (YUV 3MP)
in "Qualcomm MSM camera and video capture 2.0 support"
Qualcomm MSM V4l2 video overlay device
Qualcomm MSM camera sensor support
Also you need to uncomment two lines, revert the one commit, see:
dts: shuang: Disable camera allocation · TeamVee-SS/[email protected]
Change-Id: I85d6b698d9ca0e20717ab79f2f09ea05a635a2cf Signed-off-by: Caio Oliveira <[email protected]>
github.com
then compile kernel by:
make -j8 ARCH=arm CROSS_COMPILE=/opt/toolchains/arm-eabi-4.9/bin/arm-eabi- CONFIG_NO_ERROR_ON_MISMATCH=y
rebuild your mkbootimg but use the same initrd(ramdisk) as was for your custom rom
Spoiler: mkbootimg command
mkbootimg --kernel zImage --ramdisk ramdisk.gz --cmdline "androidboot.hardware=qcom user_debug=23 maxcpus=2 msm_rtb.filter=0x3F ehci-hcd.park=3 msm_rtb.enable=0 lpj=192598 dwc3.maximum_speed=high dwc3_msm.prop_chg_detect=Y androidboot.bootdevice=msm_sdcc.1 androidboot.selinux=permissive" --base 0x00000000 --pagesize 2048 --dt dt --ramdisk_offset 0x02000000 --tags_offset 0x01E00000 -o out.img
If you want to use kernel with stock rom use mkqcdtbootimg
Spoiler: command
mkqcdtbootimg --kernel arch/arm/boot/zImage --ramdisk cwm.img-ramdisk.gz --dt_dir arch/arm/boot/ --base 0x00000000 --ramdisk_offset 0x2008000 --kernel_offset 0x10000 --tags_offset 0x1e08000 --pagesize 2048 --cmdline "androidboot.hardware=qcom user_debug=31 maxcpus=2 msm_rtb.filter=0x3F ehci-hcd.park=3 msm_rtb.enable=0 lpj=192598 dwc3.maximum_speed=high dwc3_msm.prop_chg_detect=Y androidboot.bootdevice=msm_sdcc.1 " -o boot.img
After you boot into system you should see if kernel finds this image sensor
Spoiler: dmesg | grep s5k5
[ 3.292867] msm_s5k5ca_i2c_probe: 639: client->addr = [78]
[ 3.327817] s5k5ca_sensor_power_up: 775: clk_rate = [24000000], clk_info_size = [2]
[ 3.376093] s5k5ca_match_id: 1945: calling i2c_read: i2c_addr = [78], id_reg_addr = [f12]
[ 3.386482] s5k5ca_match_id: 1967: [read id/expected id] = [5ca/0x05ca]
[ 3.392530] s5k5ca_sensor_power_up: 812: HW_VERSION_GPIO = [85], HW_VERSION = [1]
[ 13.659106] s5k5ca_sensor_config: 921: s5k5ca: cfgtype = [8]
[ 13.686368] s5k5ca_sensor_config: 933: sensor name [s5k5ca]
[ 13.691223] s5k5ca_sensor_config: 935: session id [1]
[ 13.696133] s5k5ca_sensor_config: 939: subdev_id0 = [-1]
[ 13.717228] s5k5ca_sensor_config: 939: subdev_id1 = [-1]
[ 13.727085] s5k5ca_sensor_config: 939: subdev_id2 = [-1]
[ 13.740409] s5k5ca_sensor_config: 939: subdev_id3 = [-1]
[ 13.757070] s5k5ca_sensor_config: 939: subdev_id4 = [-1]
[ 13.777061] s5k5ca_sensor_config: 939: subdev_id5 = [-1]
[ 13.793739] s5k5ca_sensor_config: 939: subdev_id6 = [0]
[ 13.810401] s5k5ca_sensor_config: 939: subdev_id7 = [-1]
[ 13.830394] s5k5ca_sensor_config: 939: subdev_id8 = [0]
[ 13.847061] s5k5ca_sensor_config: 939: subdev_id9 = [-1]
[ 13.863854] s5k5ca_sensor_config: 921: s5k5ca: cfgtype = [9]
[ 13.883729] s5k5ca_sensor_config: 1158: init params mode = [0], pos = [0], mount = [90], HW_VERSION = [1]
In some cases you can see this:
Spoiler: dmesg | grep s5k5 -C 5
<7>[ 3.061715] msm_vidc: 1: Q6 hfi device probe called
<6>[ 3.065780] msm_s5k5ca_i2c_probe: 639: client->addr = [78]
<6>[ 3.100655] s5k5ca_sensor_power_up: 775: clk_rate = [24000000], clk_info_size = [2]
<6>[ 3.148995] s5k5ca_match_id: 1945: calling i2c_read: i2c_addr = [78], id_reg_addr = [f12]
<6>[ 3.157982] s5k5ca_match_id: 1967: [read id/expected id] = [5ca/0x05ca]
<6>[ 3.163836] s5k5ca_sensor_power_up: 812: HW_VERSION_GPIO = [85], HW_VERSION = [1]
<6>[ 3.174024] lirc_dev: IR Remote Control driver registered, major 242
<6>[ 3.179614] IR NEC protocol handler initialized
<6>[ 3.184008] IR RC5(x) protocol handler initialized
<6>[ 3.188855] IR RC6 protocol handler initialized
<6>[ 3.193295] IR JVC protocol handler initialized
2. Vendor qcom propriety driver
It was leaked, see:
https://github.com/psychopnk/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/baksosapi/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/bullik01/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/dfyuan/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Puzhenwei/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/rx78gp01/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/sandeepbhuyan/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/usernamegemaoa/camera/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Vimalraj1/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Dabi01/camera-1/tree/master/vendor/qcom/proprietary/mm-camera
https://github.com/Bigcountry907/HTC_a13_vzw_Kernel/tree/master/vendor/qcom/proprietary
All this repos has been taken down, but if you search you can get full source code but it's nothing there, support for s5k3l1yx, s5k4e1_u and several other chips but no s5k5ca. If we had leak of git repo of this we could gain what we want.
https://github.com/pier11/kernel_huawei_u8220/wiki/Cameras
According to this page libqcamera.so is filename for our driver, we must use this file directly from stock rom. It's configurable during compilation, it means it have support for sensors only selected during compilation.
We must delete "camera" part of hardware_qcom and other things, add this vendor file and so on. It's for Android 2 but works on 4.4 and it will work on newer Android.
We can use Huawei's/Foxconn's driver for s5k5ca from it's kernel source code but it's complicated.
You can view how many devices use this camera using this site:
Device Info HW Database
Devices and their components database
deviceinfohw.ru
Logcat from working rom:
https://stackoverflow.com/questions/14257760/android-camera-wont-take-picture
List of devices using the same camera sensor:
Nokia X (they managed to get camera full working on lineage 11!)
See https://forum.xda-developers.com/t/rom-unofficial-lineage-os-11-for-nokia-x-xl.3628794/
and https://github.com/Nokia-xl-legacy/vendor_xl/
Huawei Prism II
Huawei-U8687
MediaPad 7 Youth
HUAWEI U8666E
HP Slate 7
I'll fix shuang vendor files, based on vendor_xl and stock rom, then I'll post simplest solution, or ready to go compiled rom, with working camera and gps, as installable zip or image.
Cairo ported sony e1 to other kernel because with stock source we cannot make bootable image using aosp mkbootimg, we must use mkqcdtbootimg. Please note that Cairo disabled camera allocation in dtb. Working blobs are present in lineage 14.1
Currently, I downgraded to stock rom and I will check if custom kernel can handle camera
Click to expand...
Click to collapse
How to do this step-by-step on LineageOS 11 (Which uses the falconss kernel instead of the shuang one you've linked
What things do I need (Ubuntu 20.04 is installed inside Windows 10)
And exactly how to do it? I'm a beginner, have Sony Xperia E1 D2005 and use LineageOS 11 for performance reasons, which uses the older, falconss kernel
GTAManRCR said:
How to do this step-by-step on LineageOS 11 (Which uses the falconss kernel instead of the shuang one you've linked
What things do I need (Ubuntu 20.04 is installed inside Windows 10)
And exactly how to do it? I'm a beginner, have Sony Xperia E1 D2005 and use LineageOS 11 for performance reasons, which uses the older, falconss kernel
Click to expand...
Click to collapse
I suggest using Ubuntu 18, read documentation on https://source.android.com/setup/build/initializing. Sync repo using https://github.com/TeamVee-SS/android_.repo_local_manifests. I'm working on getting lineage 16 on this device, but don't use it because it's not ready (https://github.com/msm8610/android_.repo_local_manifests). See
Falconss and shuang are very similar, Caio99BR maintained this. On my custom kernel I imported requited syscalls for running new versions of android.
Arekjk76 said:
I suggest using Ubuntu 18, read documentation on https://source.android.com/setup/build/initializing. Sync repo using https://github.com/TeamVee-SS/android_.repo_local_manifests. I'm working on getting lineage 16 on this device, but don't use it because it's not ready (https://github.com/msm8610/android_.repo_local_manifests). See
Falconss and shuang are very similar, Caio99BR maintained this. On my custom kernel I imported requited syscalls for running new versions of android.
Click to expand...
Click to collapse
GitHub - TeamVee-SS/android_.repo_local_manifests at cm-11.0
Local manifest for Sony Xperia E1. Contribute to TeamVee-SS/android_.repo_local_manifests development by creating an account on GitHub.
github.com
This is what I actually need. Seems like I used the wrong repositories, that's why the image building failed
mkbootimg: error: unrecognized arguments: --dt dt.img
So I now succesfully compiled the kernel, and installed mkbootimg also (Ubuntu 18.04) but this is the error above which I have. Any ideas? If I remove --dt dt the out.img after flashing it to the phone will not boot
EDIT: Used another mkbootimg version, which worked
libmmcamera2_sensor_modules.so is invalid in custom ROM, because it's encoded in Macintosh text format
Today I tried to follow your instructions in order to fix the camera glitch, but it was unsuccessful. This time the problem was the dtb (device tree blob) file made with armeabi in /arch/arm/boot. When I create the new boot.img with the original ramdisk, zImage, and dt.img, the kernel works just fine, but when I create it with the new dtb file, the phone turns off every time I try to turn it on
Related
[Q] COMILE ERROR : undefined reference to `__bad_udelay'
Is there anyone to give advice to me this compiling error? When compile with CFLAG '-O2' option, it's successful but '-O3' can't be. Compile Error message : drivers/built-in.o: In function `mcsdl_delay': Kernel/drivers/input/keyboard/melfas_download.c:1779: undefined reference to `__bad_udelay' Kernel/drivers/input/keyboard/melfas_download.c:1779: undefined reference to `__bad_udelay' Kernel/drivers/input/keyboard/melfas_download.c:1779: undefined reference to `__bad_udelay' Kernel/drivers/input/keyboard/melfas_download.c:1779: undefined reference to `__bad_udelay' Kernel/drivers/input/keyboard/melfas_download.c:1779: undefined reference to `__bad_udelay' make: *** [.tmp_vmlinux1] Error 1 Compiling infor is following; - galaxy S M110S - Toolchain :codesourcery 2010.9-51 arm-none-eabi- - compile option : -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common \ -Werror-implicit-function-declaration \ -Wno-format-security \ -fno-delete-null-pointer-checks \ -mcpu=cortex-a8 \ -mfpu=neon -mfloat-abi=softfp - KBUILD_CFLAGS += -O3 The body of 'melfas_download.c' about 1779line Code: //============================================================ // // Delay Function // //============================================================ static void mcsdl_delay(UINT32 nCount) { #if 1 udelay(nCount); //1 Baseband delay function #else UINT32 i; for(i=0;i<nCount;i++){ } #endif }
Extracting boot.img and recovery.img
Hello, I was hoping I could help port a custom recovery to the x86 platform, but I ran into a problem pretty early...: I have extracted the boot and recovery partitionen images like this: Code: # cat /proc/partitions major minor #blocks name alias 179 0 7766016 mmcblk0 (null) 179 1 11264 mmcblk0p1 bos 179 2 11264 mmcblk0p2 bosbackup 179 3 1024 mmcblk0p3 ulogo 179 4 1024 mmcblk0p4 logo 179 5 11264 mmcblk0p5 boot 179 6 11264 mmcblk0p6 recovery 179 7 128 mmcblk0p7 cid 179 8 2048 mmcblk0p8 sp 179 9 8192 mmcblk0p9 panic 179 10 512 mmcblk0p10 devtree 179 11 512 mmcblk0p11 devtreeBackup 259 0 8192 mmcblk0p12 pds 259 1 512 mmcblk0p13 misc 259 2 655360 mmcblk0p14 cache 259 3 153600 mmcblk0p15 cdrom 259 4 1253376 mmcblk0p16 system 259 5 5599471 mmcblk0p17 userdata 179 12 3872256 mmcblk1 (null) 179 13 2840820 mmcblk1p1 179 14 1000000 mmcblk1p2 179 15 31435 mmcblk1p3 # cat /dev/block/mmcblk0p6 > /external1/recovery.img # cat /dev/block/mmcblk0p5 > /external1/boot.img But I get the following message when I try to extract the recovery's ramdisk: Code: $ ./split_bootimg.pl recovery.img Android Magic not found in recovery.img. Giving up. I haven't had this problem before. Is it happening because the differences between the x86 and ARM images is too different? Thanks! EDIT: I have extracted the kernel and ramdisk from the recovery.img using a Hex Editor. You'll find a link to the files below: dl.dropbox.com/u/19117372/recovery_files.zip
That's what the theory is. Its stopping us from using the kernel source and making a custom recovery because we cannot unpack or pack them. Sent from my XT890 using Tapatalk 2
mattlgroff said: That's what the theory is. Its stopping us from using the kernel source and making a custom recovery because we cannot unpack or pack them. Sent from my XT890 using Tapatalk 2 Click to expand... Click to collapse Apparently the script I used looks for this string: "ANDROID!" in the beginning of the binary file. But this image starts with "init=/init". Is there any other Android devices that does this? I've downloaded the Android x86 ics source code from Intel and they use the standard: Code: #define BOOT_MAGIC "ANDROID!" When packing the img.
V-g- said: Apparently the script I used looks for this string: "ANDROID!" in the beginning of the binary file. But this image starts with "init=/init". Is there any other Android devices that does this? I've downloaded the Android x86 ics source code from Intel and they use the standard: Code: #define BOOT_MAGIC "ANDROID!" When packing the img. Click to expand... Click to collapse It would be better to look at the other Intel Android Devices like the Orange San Diego and see what their images are. The Android x86 project doesn't even pack the boot.img from when I used it, but maybe I'm remembering wrong. Sent from my XT890 using Tapatalk 2
mattlgroff said: That's what the theory is. Its stopping us from using the kernel source and making a custom recovery because we cannot unpack or pack them. Sent from my XT890 using Tapatalk 2 Click to expand... Click to collapse I've been able to unpack and repack the boot.img using a hex editor (same way we got insecure boot in the first place) and am able to manipulate the contents of the ramdisk, but have not been able to compile a recovery for Intel. As for the standard tools/scripts, I don't think they're capable of dealing with the second stage which is optional in the img format but used by the Razr i (http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images).
dew.man said: I've been able to unpack and repack the boot.img using a hex editor (same way we got insecure boot in the first place) and am able to manipulate the contents of the ramdisk, but have not been able to compile a recovery for Intel. As for the standard tools/scripts, I don't think they're capable of dealing with the second stage which is optional in the img format but used by the Razr i (http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images). Click to expand... Click to collapse I think our best bet right now is to hope Motorola can give us documentation on this when the new MotoDev.com comes on November 1st. No device has really been in this position before, so the current tools and documentation aren't helpful. I appreciate you taking a look. ---------- Post added at 03:28 PM ---------- Previous post was at 03:19 PM ---------- Found this in the sourceforge under system_core.tar.gz: Maybe helpful...maybe not. The tools could be in the sourceforge. Android.mk Code: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := mkbootimg.c LOCAL_STATIC_LIBRARIES := libmincrypt LOCAL_MODULE := mkbootimg include $(BUILD_HOST_EXECUTABLE) $(call dist-for-goals,dist_files,$(LOCAL_BUILT_MODULE)) mkbootimg.c Code: /* tools/mkbootimg/mkbootimg.c ** ** Copyright 2007, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include "mincrypt/sha.h" #include "bootimg.h" static void *load_file(const char *fn, unsigned *_sz) { char *data; int sz; int fd; data = 0; fd = open(fn, O_RDONLY); if(fd < 0) return 0; sz = lseek(fd, 0, SEEK_END); if(sz < 0) goto oops; if(lseek(fd, 0, SEEK_SET) != 0) goto oops; data = (char*) malloc(sz); if(data == 0) goto oops; if(read(fd, data, sz) != sz) goto oops; close(fd); if(_sz) *_sz = sz; return data; oops: close(fd); if(data != 0) free(data); return 0; } int usage(void) { fprintf(stderr,"usage: mkbootimg\n" " --kernel <filename>\n" " --ramdisk <filename>\n" " [ --second <2ndbootloader-filename> ]\n" " [ --cmdline <kernel-commandline> ]\n" " [ --board <boardname> ]\n" " [ --base <address> ]\n" " [ --pagesize <pagesize> ]\n" " -o|--output <filename>\n" ); return 1; } static unsigned char padding[4096] = { 0, }; int write_padding(int fd, unsigned pagesize, unsigned itemsize) { unsigned pagemask = pagesize - 1; unsigned count; if((itemsize & pagemask) == 0) { return 0; } count = pagesize - (itemsize & pagemask); if(write(fd, padding, count) != count) { return -1; } else { return 0; } } int main(int argc, char **argv) { boot_img_hdr hdr; char *kernel_fn = 0; void *kernel_data = 0; char *ramdisk_fn = 0; void *ramdisk_data = 0; char *second_fn = 0; void *second_data = 0; char *cmdline = ""; char *bootimg = 0; char *board = ""; unsigned pagesize = 2048; int fd; SHA_CTX ctx; uint8_t* sha; argc--; argv++; memset(&hdr, 0, sizeof(hdr)); /* default load addresses */ hdr.kernel_addr = 0x10008000; hdr.ramdisk_addr = 0x11000000; hdr.second_addr = 0x10F00000; hdr.tags_addr = 0x10000100; while(argc > 0){ char *arg = argv[0]; char *val = argv[1]; if(argc < 2) { return usage(); } argc -= 2; argv += 2; if(!strcmp(arg, "--output") || !strcmp(arg, "-o")) { bootimg = val; } else if(!strcmp(arg, "--kernel")) { kernel_fn = val; } else if(!strcmp(arg, "--ramdisk")) { ramdisk_fn = val; } else if(!strcmp(arg, "--second")) { second_fn = val; } else if(!strcmp(arg, "--cmdline")) { cmdline = val; } else if(!strcmp(arg, "--base")) { unsigned base = strtoul(val, 0, 16); hdr.kernel_addr = base + 0x00008000; hdr.ramdisk_addr = base + 0x01000000; hdr.second_addr = base + 0x00F00000; hdr.tags_addr = base + 0x00000100; } else if(!strcmp(arg, "--board")) { board = val; } else if(!strcmp(arg,"--pagesize")) { pagesize = strtoul(val, 0, 10); if ((pagesize != 2048) && (pagesize != 4096)) { fprintf(stderr,"error: unsupported page size %d\n", pagesize); return -1; } } else { return usage(); } } hdr.page_size = pagesize; if(bootimg == 0) { fprintf(stderr,"error: no output filename specified\n"); return usage(); } if(kernel_fn == 0) { fprintf(stderr,"error: no kernel image specified\n"); return usage(); } if(ramdisk_fn == 0) { fprintf(stderr,"error: no ramdisk image specified\n"); return usage(); } if(strlen(board) >= BOOT_NAME_SIZE) { fprintf(stderr,"error: board name too large\n"); return usage(); } strcpy(hdr.name, board); memcpy(hdr.magic, BOOT_MAGIC, BOOT_MAGIC_SIZE); if(strlen(cmdline) > (BOOT_ARGS_SIZE - 1)) { fprintf(stderr,"error: kernel commandline too large\n"); return 1; } strcpy((char*)hdr.cmdline, cmdline); kernel_data = load_file(kernel_fn, &hdr.kernel_size); if(kernel_data == 0) { fprintf(stderr,"error: could not load kernel '%s'\n", kernel_fn); return 1; } if(!strcmp(ramdisk_fn,"NONE")) { ramdisk_data = 0; hdr.ramdisk_size = 0; } else { ramdisk_data = load_file(ramdisk_fn, &hdr.ramdisk_size); if(ramdisk_data == 0) { fprintf(stderr,"error: could not load ramdisk '%s'\n", ramdisk_fn); return 1; } } if(second_fn) { second_data = load_file(second_fn, &hdr.second_size); if(second_data == 0) { fprintf(stderr,"error: could not load secondstage '%s'\n", second_fn); return 1; } } /* put a hash of the contents in the header so boot images can be * differentiated based on their first 2k. */ SHA_init(&ctx); SHA_update(&ctx, kernel_data, hdr.kernel_size); SHA_update(&ctx, &hdr.kernel_size, sizeof(hdr.kernel_size)); SHA_update(&ctx, ramdisk_data, hdr.ramdisk_size); SHA_update(&ctx, &hdr.ramdisk_size, sizeof(hdr.ramdisk_size)); SHA_update(&ctx, second_data, hdr.second_size); SHA_update(&ctx, &hdr.second_size, sizeof(hdr.second_size)); sha = SHA_final(&ctx); memcpy(hdr.id, sha, SHA_DIGEST_SIZE > sizeof(hdr.id) ? sizeof(hdr.id) : SHA_DIGEST_SIZE); fd = open(bootimg, O_CREAT | O_TRUNC | O_WRONLY, 0644); if(fd < 0) { fprintf(stderr,"error: could not create '%s'\n", bootimg); return 1; } if(write(fd, &hdr, sizeof(hdr)) != sizeof(hdr)) goto fail; if(write_padding(fd, pagesize, sizeof(hdr))) goto fail; if(write(fd, kernel_data, hdr.kernel_size) != hdr.kernel_size) goto fail; if(write_padding(fd, pagesize, hdr.kernel_size)) goto fail; if(write(fd, ramdisk_data, hdr.ramdisk_size) != hdr.ramdisk_size) goto fail; if(write_padding(fd, pagesize, hdr.ramdisk_size)) goto fail; if(second_data) { if(write(fd, second_data, hdr.second_size) != hdr.second_size) goto fail; if(write_padding(fd, pagesize, hdr.ramdisk_size)) goto fail; } return 0; fail: unlink(bootimg); close(fd); fprintf(stderr,"error: failed writing '%s': %s\n", bootimg, strerror(errno)); return 1; } bootimg.h Code: /* tools/mkbootimg/bootimg.h ** ** Copyright 2007, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ #ifndef _BOOT_IMAGE_H_ #define _BOOT_IMAGE_H_ typedef struct boot_img_hdr boot_img_hdr; #define BOOT_MAGIC "ANDROID!" #define BOOT_MAGIC_SIZE 8 #define BOOT_NAME_SIZE 16 #define BOOT_ARGS_SIZE 512 struct boot_img_hdr { unsigned char magic[BOOT_MAGIC_SIZE]; unsigned kernel_size; /* size in bytes */ unsigned kernel_addr; /* physical load addr */ unsigned ramdisk_size; /* size in bytes */ unsigned ramdisk_addr; /* physical load addr */ unsigned second_size; /* size in bytes */ unsigned second_addr; /* physical load addr */ unsigned tags_addr; /* physical addr for kernel tags */ unsigned page_size; /* flash page size we assume */ unsigned unused[2]; /* future expansion: should be 0 */ unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */ unsigned char cmdline[BOOT_ARGS_SIZE]; unsigned id[8]; /* timestamp / checksum / sha1 / etc */ }; /* ** +-----------------+ ** | boot header | 1 page ** +-----------------+ ** | kernel | n pages ** +-----------------+ ** | ramdisk | m pages ** +-----------------+ ** | second stage | o pages ** +-----------------+ ** ** n = (kernel_size + page_size - 1) / page_size ** m = (ramdisk_size + page_size - 1) / page_size ** o = (second_size + page_size - 1) / page_size ** ** 0. all entities are page_size aligned in flash ** 1. kernel and ramdisk are required (size != 0) ** 2. second is optional (second_size == 0 -> no second) ** 3. load each element (kernel, ramdisk, second) at ** the specified physical address (kernel_addr, etc) ** 4. prepare tags at tag_addr. kernel_args[] is ** appended to the kernel commandline in the tags. ** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr ** 6. if second_size != 0: jump to second_addr ** else: jump to kernel_addr */ #if 0 typedef struct ptentry ptentry; struct ptentry { char name[16]; /* asciiz partition name */ unsigned start; /* starting block number */ unsigned length; /* length in blocks */ unsigned flags; /* set to zero */ }; /* MSM Partition Table ATAG ** ** length: 2 + 7 * n ** atag: 0x4d534d70 ** <ptentry> x n */ #endif #endif http://www.sourceforge.net/motorola/razr-i/
dew.man said: I've been able to unpack and repack the boot.img using a hex editor (same way we got insecure boot in the first place) and am able to manipulate the contents of the ramdisk, but have not been able to compile a recovery for Intel. As for the standard tools/scripts, I don't think they're capable of dealing with the second stage which is optional in the img format but used by the Razr i. Click to expand... Click to collapse Great! - Would you mind sharing how you did it?
V-g- said: Great! - Would you mind sharing how you did it? Click to expand... Click to collapse http://forum.xda-developers.com/showpost.php?p=32406634&postcount=120
Hey guys currently trying it too, because i realy need my lovely cwm when i open the boot.img i see this: androidboot.bootmedia=sdcard so if i theoretically would change that to external1 would it boot from my sdcard?!
[Q]Is possible to incease the usable RAM up to 700MB?
Well, It is acceptable using Xperia TX even just 642MB usable for Android system and apps, until play the Japanese game call "Kaku-San-Sei Million Arthur" (拡散性ミリオンアーサー, Google Play) which sometime reboot my phone suddenly. Once I make disable some apps, the frequency of crashing the system is greatly reduced even it could some time cause that happen. Then I guess the RAM usage of this game could be a bit larger then Android try to get more RAM for it, but it is not successful then the system crashed and reboot. I recognized that the usable RAM on my Xperia is much less than Samsung GALAXY S II (i9100) and even GALAXY Tab 10.1. And look at the iomem and kmsg: Code: 00500000-00500fff : msm_ssbi.0 00700000-007060ff : hdmi_msm_qfprom_addr 0080207c-0080207f : slimbus_slew_reg 0080207c-0080207f : msm_slim_ctrl 01a01000-01a01fff : msm_etb 01a03000-01a03fff : msm_tpiu 01a04000-01a04fff : msm_funnel 01a1c000-01a1dfff : msm_etm 03000000-0327ffff : wcnss_mmio 03204000-032040ff : pil_riva 04100000-04100fff : kgsl_2d0_reg_memory 04100000-04100fff : kgsl-2d0 04200000-04200fff : kgsl_2d1_reg_memory 04200000-04200fff : kgsl-2d1 04300000-0431ffff : kgsl_3d0_reg_memory 04300000-0431ffff : kgsl-3d0 04400000-044fffff : msm_vidc.0 04500000-045fffff : vfe32 04500000-045fffff : msm_vfe 04600000-046fffff : msm_gemini.0 04700000-047effff : mipi_dsi 04800000-048003ff : csid 04800000-048003ff : msm_csid 04800400-048007ff : csid 04800400-048007ff : msm_csid 04800800-04800bff : ispif 04800800-04800bff : msm_ispif 04800c00-04800fff : csiphy 04800c00-04800fff : msm_csiphy 04801000-048013ff : csiphy 04801000-048013ff : msm_csiphy 04801400-048017ff : csiphy 04801400-048017ff : msm_csiphy 04801800-04801bff : csid 04801800-04801bff : msm_csid 04a00000-04a00fff : hdmi_msm_hdmi_addr 04e00000-04efffff : msm_rotator.0 05100000-051effff : mdp 05300000-053fffff : semc_vpe.0 05300000-053fffff : semc_vpe 08800000-088000ff : pil_qdsp6v4.1 08900000-089000ff : pil_qdsp6v4.2 08b00000-08b00003 : pil_qdsp6v4.2 08b00000-08b00003 : pil_qdsp6v4.1 12180000-121807ff : core_mem 12180800-12181fff : sdcc_dml_addr 12182000-12183fff : sdcc_bam_addr 12240000-12240fff : bamdma_dma 12244000-12247fff : bamdma_bam 12400000-124007ff : core_mem 12400800-12401fff : sdcc_dml_addr 12402000-12403fff : sdcc_bam_addr 12480000-12480003 : gsbi_qup_i2c_addr 12480000-12480003 : qup_i2c 124a0000-124a0fff : qup_phys_addr 124a0000-124a0fff : qup_i2c 12500000-12501000 : msm_hsusb 12500000-12501000 : msm_otg 12500000-12500fff : msm_hsusb_host 12520000-12520fff : msm_hsic_host 12800000-12803fff : pipe_mem 16200000-16200003 : gsbi_qup_i2c_addr 16200000-16200003 : qup_i2c 16280000-16280fff : qup_phys_addr 16280000-16280fff : qup_i2c 16300000-16300003 : gsbi_qup_i2c_addr 16300000-16300003 : qup_i2c 16380000-16380fff : qup_phys_addr 16380000-16380fff : qup_i2c 16500000-16500003 : gsbi_resource 16500000-16500003 : msm_serial_hs 16540000-16540fff : uartdm_resource 18320000-1841ffff : msm_dmov 18500000-1850ffff : qce.0 18500000-1850ffff : qcrypto.0 1a000000-1a000fff : gsbi_resource 1a040000-1a040fff : uartdm_resource 1a040000-1a040fff : msm_serial_hsl 1a200000-1a200003 : gsbi_qup_i2c_addr 1a200000-1a200003 : qup_i2c 1a280000-1a280fff : qup_phys_addr 1a280000-1a280fff : qup_i2c 1a500000-1a5001ff : msm_rng.0 28080000-28081fff : slimbus_physical 28080000-28081fff : msm_slim_ctrl 28084000-28085fff : slimbus_bam_physical 28084000-28085fff : msm_slim_ctrl 28800000-288000ff : pil_qdsp6v4.0 2a03f720-2a04071f : tz_log.0 80200000-88cfffff : System RAM 80300000-80c7094f : Kernel text 80d00000-80fb358b : Kernel data 88d00000-88d00fff : ramdumpinfo 88d01000-88d04fff : amsslog 88de0000-88dfffff : ram_console 90000000-ab4fffff : System RAM b9902000-bfffffff : System RAM Code: [ 0.000000] Memory: 139MB 437MB 102MB = 678MB total [ 0.000000] Memory: [COLOR="Red"]656612k/891116k available[/COLOR], 38676k reserved, 155640K highmem [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB) [ 0.000000] vmalloc : 0xe1800000 - 0xfa000000 ( 392 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe1000000 ( 528 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .init : 0xc0008000 - 0xc004a000 ( 264 kB) [ 0.000000] .text : 0xc0100000 - 0xc0a70950 (9667 kB) [ 0.000000] .data : 0xc0b00000 - 0xc0bca170 ( 809 kB) [ 0.000000] .bss : 0xc0bca194 - 0xc0db358c (1957 kB) comparing with GALAXY Tab 10.1 Code: [ 0.000000] Memory: 511MB 230MB = 741MB total [ 0.000000] Memory: [COLOR="Red"]738404k/738404k available[/COLOR], 309148k reserved, 104448K highmem [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB) [ 0.000000] vmalloc : 0xe8800000 - 0xf8000000 ( 248 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe8000000 ( 640 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0008000 - 0xc06d7cd4 (6976 kB) [ 0.000000] .init : 0xc06d8000 - 0xc070d860 ( 215 kB) [ 0.000000] .data : 0xc070e000 - 0xc079b160 ( 565 kB) [ 0.000000] .bss : 0xc079b184 - 0xc0a5d230 (2825 kB) Then is it possible to recompile the kernel to adjust the drivers to make fully use of the RAM?
Galaxy Mini S3 "sleeps" and cannot recieve msgs/calls
I have a Samsung S3 mini, which I flashed with Kit Kat Cyanogenmod 11.0 from novafusion.pl Everything in the installation was OK. However my phone randomly falls "sleep" and cannot recieve msgs or calls. I have to turned Airplane mode on and off, to give it a "shake" and "wake" it up. These is a report from Logcat, plus the log from yesterday, Code: build.board: montblanc build.bootloader: unknown build.brand: samsung build.cpu_abi: armeabi-v7a build.cpu_abi2: armeabi build.device: golden build.display: cm_golden-userdebug 4.4.4 KTU84Q d39c1e8ca0 test-keys build.fingerprint: samsung/cm_golden/golden:4.4.4/KTU84Q/d39c1e8ca0:userdebug/test-keys build.hardware: samsunggolden build.host: novafusion.pl build.id: KTU84Q build.manufacturer: samsung build.model: GT-I8190 build.product: cm_golden build.radio: unknown build.serial: 47900592d6cb30c0 build.tags: test-keys build.time: 1436279173000 build.type: userdebug build.user: root version.codename: REL version.incremental: d39c1e8ca0 version.release: 4.4.4 version.sdk_int: 19 I can't attach my full log because I'm new on the forum. This is the top 30 unique lines processed by me in Bash, Code: [email protected]:~/Dropbox# cat 2015-07-28-10-25-50.txt | grep " E/" | cut -d "/" -f 2- | sort | uniq -c | sort -rn | head -n 30 166 Drm ( 1669): Failed to open plugin directory /vendor/lib/mediadrm 144 SpannableStringBuilder( 4288): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 118 ActivityThread( 2565): Failed to find provider info for com.google.android.wearable.settings 87 AuthorizationBluetoothService( 2483): Proximity feature is not enabled. 85 ConnectivityService( 2088): Can't set delayed ACK size:java.io.FileNotFoundException: /sys/kernel/ipv4/tcp_use_userconfig: open failed: ENOENT (No such file or directory) 85 ConnectivityService( 2088): Can't set delayed ACK size:java.io.FileNotFoundException: /sys/kernel/ipv4/tcp_delack_seg: open failed: ENOENT (No such file or directory) 70 audio_a2dp_hw( 1669): adev_set_parameters: ERROR: set param called even when stream out is null 59 WifiNative-wlan0( 2088): doBoolean: disable 57 WifiNative-wlan0( 2088): doBoolean: enable 49 CallDetails( 2409): list is null in setConfUriList 48 ActivityThread(14438): Failed to find provider info for com.google.android.wearable.settings 31 MDM ( 2388): [64] b.run: Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null} 31 BluetoothPhoneService( 2409): Could not get a handle on Connection object for the call 30 MDM ( 2388): [89] b.run: Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null} 26 MDM ( 2388): [67] b.run: Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null} 25 LocationReceiver( 6879): Received bad location: null 17 ENSWrapper( 1673): return OMX_ErrorNotImplemented - GetExtensionIndex OMX.ST.AFM.pcmprocessing.spl h=0x414b3f80 cParameterName=STE.ADM IndexType=unknown OMX_INDEXTYPE [ 0x4d2efb3e ] 16 SpannableStringBuilder(25691): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 15 YSNP_TAG( 5072): [NetworkHelper] : [thread:1]checkNetworkChange() - no active network! 14 bp ( 2374): onStartInput event aborted: com.touchtype.keyboard.c.ag: could not obtain extracted text (class com.touchtype.keyboard.c.ag) 13 ENSWrapper( 1673): return OMX_ErrorNotImplemented - GetExtensionIndex OMX.ST.AFM.pcmprocessing.spl h=0x411acd98 cParameterName=STE.ADM IndexType=unknown OMX_INDEXTYPE [ 0x4d2efb3e ] 11 ENSWrapper( 1673): return OMX_ErrorNotImplemented - GetExtensionIndex OMX.ST.AFM.pcmprocessing.spl h=0x4161b3a0 cParameterName=STE.ADM IndexType=unknown OMX_INDEXTYPE [ 0x4d2efb3e ] 9 ENSWrapper( 1673): return OMX_ErrorUnsupportedIndex - SetConfig OMX.ST.AFM.speech_proc h=0x419f8f40 9 ENSWrapper( 1673): return OMX_ErrorUnsupportedIndex - SetConfig OMX.ST.AFM.speech_proc h=0x416a0f08 9 ENSWrapper( 1673): return OMX_ErrorUnsupportedIndex - SetConfig OMX.ST.AFM.speech_proc h=0x41490f68 9 ENSWrapper( 1673): return OMX_ErrorUnsupportedIndex - SetConfig OMX.ST.AFM.speech_proc h=0x412c9f58 9 ENSWrapper( 1673): return OMX_ErrorUnsupportedIndex - SetConfig OMX.ST.AFM.speech_proc h=0x412c8f48 8 VFM ( 1669): ! getSupportedVideoSettings RETURN_XXX_IF_WRONG, condition=(index<mNbVideoSettingsSupported[nPortIndex]), error=-2147479538(0x8000100e)(OMX_ErrorNoMore) /home/se.infra/jenkins1/workspace/HUDSON_GA_JELLYBEAN_GOLDEN_EUROPEN-PROD-XX/android/vendor/st-ericsson/variant/multimedia/video/vfm/src/VFM_Component.cpp:407 8 VFM ( 1669): ! getSupportedProfileLevel RETURN_XXX_IF_WRONG, condition=(index<mNbProfileLevelSupported), error=-2147479538(0x8000100e)(OMX_ErrorNoMore) /home/se.infra/jenkins1/workspace/HUDSON_GA_JELLYBEAN_GOLDEN_EUROPEN-PROD-XX/android/vendor/st-ericsson/variant/multimedia/video/vfm/src/VFM_Component.cpp:379 8 VFM ( 1669): ! getParameter RETURN_OMX_ERROR_IF_ERROR, condition=pParam->getIndexParamVideoProfileLevelQuerySupported(pt), error=-2147479538(0x8000100e)(_error) /home/se.infra/jenkins1/workspace/HUDSON_GA_JELLYBEAN_GOLDEN_EUROPEN-PROD-XX/android/vendor/st-ericsson/variant/multimedia/video/vfm/src/VFM_Component.cpp:140
any guess?
Fake Tablet: P10 zh960 MT6582 Black Screen
Hello everyone! My generic tablet from china did not work properly, so I decided to edit Build.prop, it did not start any applications and showed infinite error screens. So I tried to flash rom but I believe that the rom despite having exactly the name indicated was wrong, it seems that this tablet is a hardware Fake. I tried numerous roms with the title tags and nothing worked I even use a rom so that the person taking a picture of the motherboard is the same version 4.0 as my being 4.1 and it didn't work I take a photo of the board and send my original build.prop that I backed up. I can make Flash rom but it keeps connecting and disconnecting USB always, I have to click Start Flash seconds when it is connected, despite that it seems to normally load the rom through SP Tools but I don't know if that should influence the error. PLease help!I am new to this:crying: zoom for view numbers motherboard Image link: ibb.co/f9qX2p5 Code: # begin build properties # autogenerated by buildinfo.sh ro.build.id=KOT49H ro.build.display.id=ALPS.KK1.MP1.V2.10 ro.build.version.incremental=vEN4125 ro.custom.build.version=vEN4125 ro.build.version.sdk=19 ro.build.version.codename=REL ro.build.version.release=4.4.2 ro.build.date=2019年 07月 09日 星期二 11:01:57 CST ro.build.date.utc=1562641317 ro.build.type=user ro.build.user=buildserver ro.build.host=buildserver5 ro.build.tags=release-keys ro.product.model=zh960 ro.product.brand=alps ro.product.name=zh960 ro.product.device=zh960 ro.product.board=zh960 ro.product.cpu.abi=armeabi-v7a ro.product.cpu.abi2=armeabi ro.product.manufacturer=alps ro.product.locale.language=en ro.product.locale.region=US ro.wifi.channels= ro.board.platform= # ro.build.product is obsolete; use ro.product.device ro.build.product=zh960 # Do not try to parse ro.build.description or .fingerprint ro.build.description=zh960-user 4.4.2 KOT49H vEN4125 release-keys ro.build.fingerprint=alps/zh960/zh960:4.4.2/KOT49H/1562640954:user/release-keys ro.build.flavor= ro.build.characteristics=tablet # end build properties # begin mediatek build properties ro.mediatek.version.release=ALPS.KK1.MP1.V2.10 ro.mediatek.platform=MT6582 ro.mediatek.chip_ver=S01 ro.mediatek.version.branch=KK1.MP1 ro.mediatek.version.sdk=2 # end mediatek build properties # # from out_user/target/product/zh960/obj/CUSTGEN/config/system.prop # # # system.prop for generic sdk # rild.libpath=/system/lib/mtk-ril.so rild.libargs=-d /dev/ttyC0 # MTK, Infinity, 20090720 { wifi.interface=wlan0 # MTK, Infinity, 20090720 } # MTK, mtk03034, 20101210 { ro.mediatek.wlan.wsc=1 # MTK, mtk03034 20101210} # MTK, mtk03034, 20110318 { ro.mediatek.wlan.p2p=1 # MTK, mtk03034 20110318} # MTK, mtk03034, 20101213 { mediatek.wlan.ctia=0 # MTK, mtk03034 20101213} ro.sf.lcd_density=210 # wifi.tethering.interface=ap0 # ro.opengles.version=131072 wifi.direct.interface=p2p0 dalvik.vm.heapgrowthlimit=128m dalvik.vm.heapsize=256m # USB MTP WHQL ro.sys.usb.mtp.whql.enable=0 # Power off opt in IPO sys.ipo.pwrdncap=2 # Switching Menu of Mass storage and MTP ro.sys.usb.storage.type=mtp # USB BICR function ro.sys.usb.bicr=no # USB Charge only function ro.sys.usb.charging.only=yes # audio ro.camera.sound.forced=0 ro.audio.silent=0 ro.zygote.preload.enable=0 # # switch bluetooth stack solution # ro.btstack=blueangel ro.camera.project=zh960 # # ADDITIONAL_BUILD_PROPERTIES # persist.gemini.sim_num=2 ro.gemini.smart_sim_switch=false ro.gemini.smart_3g_switch=2 ril.specific.sm_cause=0 bgw.current3gband=0 ril.external.md=0 ro.btstack=blueangel ro.sf.hwrotation=270 ril.current.share_modem=2 launcherplus.allappsgrid=2d curlockscreen=1 ro.mediatek.gemini_support=true ro.operator.optr=OP08 ro.operator.spec=SPEC0200 ro.operator.seg=SEGDEFAULT persist.radio.fd.counter=15 persist.radio.fd.off.counter=5 persist.radio.fd.r8.counter=15 persist.radio.fd.off.r8.counter=5 drm.service.enabled=true fmradio.driver.enable=1 ril.first.md=1 ril.flightmode.poweroffMD=1 ril.telephony.mode=0 dalvik.vm.mtk-stack-trace-file=/data/anr/mtk_traces.txt persist.mtk.anr.mechanism=1 mediatek.wlan.chip=CONSYS_MT6582 mediatek.wlan.module.postfix=_consys_mt6582 ril.radiooff.poweroffMD=0 ro.build.customer=1 ro.config.notification_sound=Proxima.ogg ro.config.alarm_alert=Alarm_Classic.ogg ro.config.ringtone=Backroad.ogg persist.mtk.wcn.combo.chipid=-1 ter.service.enable=0 mediatek.extmd.usbport=0 ro.lte.dc.support=0 ril.active.md=0 ril.read.imsi=1 ro.setupwizard.mode=OPTIONAL ro.com.google.gmsversion=4.4_r5 persist.sys.dalvik.vm.lib=libdvm.so net.bt.name=Android dalvik.vm.stack-trace-file=/data/anr/traces.txt I can do SP Tools memory test Code: ============ Memory Detection Report =========== Internal RAM: External RAM: Type = DRAM Size = 0x40000000 (1024MB/8192Mb) NAND Flash: ERROR: NAND Flash was not detected! EMMC: EMMC_PART_BOOT1 Size = 0x0000000000400000(4MB) EMMC_PART_BOOT2 Size = 0x0000000000400000(4MB) EMMC_PART_RPMB Size = 0x0000000000400000(4MB) EMMC_PART_GP1 Size = 0x0000000000000000(0MB) EMMC_PART_GP2 Size = 0x0000000000000000(0MB) EMMC_PART_GP3 Size = 0x0000000000000000(0MB) EMMC_PART_GP4 Size = 0x0000000000000000(0MB) EMMC_PART_USER Size = 0x00000003ab800000(15032MB) UFS: ERROR: UFS was not detected! ============ RAM Test ============ Data Bus Test: [D0] [D1] [D2] [D3] [D4] [D5] [D6] [D7] [D8] [D9] [D10] [D11] [D12] [D13] [D14] [D15] [D16] [D17] [D18] [D19] [D20] [D21] [D22] [D23] [D24] [D25] [D26] [D27] [D28] [D29] [D30] [D31] OK!! Address Bus Test: [A1] [A2] [A3] [A4] [A5] [A6] [A7] [A8] [A9] [A10] [A11] [A12] [A13] [A14] [A15] [A16] [A17] [A18] [A19] [A20] [A21] [A22] [A23] [A24] [A25] [A26] [A27] [A28] [A29] OK!! RAM Pattern Test : Writing ... 0x44332211, 0xA5A5A5A5, 0xA5A5A500, 0xA500A500, 0xA5000000, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, OK!! Increment/Decrement Test: Writing... OK!!
On the store's website it says to be 8G RAM 128 gb 10 core, if that helps in anything
fake specifications xchaoling said: On the store's website it says to be 8G RAM 128 gb 10 core, if that helps in anything Click to expand... Click to collapse This is a . The real hardware specification for Jlinksz ZH960 P10 is here http://specdevice.com/showspec.php?id=d2d6-d70a-f455-ac97344b9a86 Have you found the solution for your tablet's issue ?
stabik2 said: fake specifications This is a . The real hardware specification for Jlinksz ZH960 P10 is here http://specdevice.com/showspec.php?id=d2d6-d70a-f455-ac97344b9a86 Have you found the solution for your tablet's issue ? Click to expand... Click to collapse Looks like more fake specs. These fakes can be troublesome. Some firmwares here: ftp://BMXC:[email protected] More, older ones: https://4pda.ru/forum/index.php?s=&showtopic=752796&view=findpost&p=101444462
before blinking read build Manufacturing date: Jun 2012 CID: 11010030 31364738 420049CC EE466FFD Capacity: 14.68 GiB (15,762,456,576 bytes) Boot1: 2048 KiB Boot2: 2048 KiB RPMB: 256 KiB User area: 14.68 GiB(15,758,000,128 bytes) USB speed: High-Speed platform: MT6582, cpu abi: armeabi-v7a manufacturer: alps board: zh960, name: zh960 brand: alps, model: zh960 build id: KOT49H, version: 4.4.2 [Lollipop] (ALPS.KK1.MP1.V2.10) build description: zh960-user 4.4.2 KOT49H vEN71R0 release-keys name: MTK_PLATFORM_CFG version: V1.1.1 platform: MT6582 project: MTDTtest storage: EMMC bootChannel: MSDC_0 blockSize: 0x00020000 MTK Preloader file info:
hlppp