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

Categories

Resources