Lenovo A3000 running stock Android
|CPU||4x 1.2 GHz Cortex-A7|
|GPU||PowerVR SGX544MP @ 286 MHz|
Users owning this device
Building is not that easy as from normal kernel source. Kernel source that is linked in Sources section has non standard .config generation procedure. To edit kernel config you need to go to $kernel_source_dir/mediatek/config/mt6589/autoconfig/kconfig and edit "platform" file. Unfortunatelly running make overwrites .config by generating one config from mediatek/config folders. This depends on TARGET_KERNEL_PRODUCT value so "make menuconfig" is basicly useless. However you can generate .config by running "make menuconfig", check what values where added and copy them to mentioned "platform" file. This is bit tricky and propably will generate some config questions by running make so after changing some values you need to patch "platform" config by yourself. In this part you can try to build a kernel without pmbootstrap tools - in standard way that is described in many articles. Environmental values that are needed to build kernel standard way are in $kernel_source_dir/shell_variables so you only need to download proper toolchain (read this file to find out which) and later do . ./shell_variables.
Fortunately proper fixes were added to config in kernel source git repo on branch "postmarketos" so if you only want to build a system for your A3000 you dont need to thinker problems that were mentioned in upper paragraph.
Build kernel with --src flag linking to kernel source code directory. There's high propability that standard way of building will fail.
Kernel config that is obligatory by pmbootstrap is basicly dummy because of how this source code works. Doing pmbootstrap Kconfig does not work because make will not have TARGET_KERNEL_PRODUCT value exported.
Fastboot is broken on this device.
To generate system.img and boot.img do: "pmbootstrap export [dir of choise]" after building system. To flash device you need SpFlashTool which works both on Windows and Linux (after unpacking and deleting lib folder) and flash files. Those can be obtained from Custom Android Build or from prebuild pmOS package. Both linked in sources section. SpFlashTool does not automaticaly detect PostmarketOS images so you need to select them manualy in gui. BOOTIMG will be PostmarketOS boot.img and SYSTEM will be lenovo-a3000.img.
To create flash files by your own you need to resize partitions with MTK Partition Editor. However don't forget to persist partition layout in terms of names (this is not confirmed by 100% but removing unnecesary partitions can propably generate errors in "mmcblk names"). Prebuild package has modified partition sizes.
Size of internal emmc is lower than 4GB (in 4GB version). Actual emmc size is 0xE9000000 (again, in 4GB version) in hex. Scatter from Custom Android rom linked below was build for 16GB version but works, because crucial partitions for android like system, cache, data etc. are taking less than 4GB. This device has separated data and fat (this is pre lolipop device).
USB Network is unstable on lower battery.
Kernel source: https://github.com/wujekbrezniew/android_kernel_lenovo_mt8389 Use postmarketos branch to build boot and system!
Prebuild packages: https://drive.google.com/drive/folders/1VbhM057c5mpdBAi1h8Ifve981-yvT9NP?usp=sharing Those are build for 4GB version. For larger memory editions if you want to resize system partition you can use MTK Partition Tool
PostmarketOS files: https://github.com/wujekbrezniew/lenovo-a3000h-postmarketos-files/tree/main
Android device tree: https://github.com/wujekbrezniew/android_device_lenovo_a3
Android proprietary files: https://github.com/wujekbrezniew/proprietary_vendor_lenovo_a3
Device can be easily repartitioned with non-open source software called MTK Partition Editor: http://metweaks.com/mtk-partition-editor/
UART is accessible from test points on the board. These are the test points for UART3, which is where bootloader logs can be read from:
It is possible to solder wires to those points and a ground pad for easy access to UART. Those wires can then be passed through the SIM card slot hole in the back shell. The connectors give the back cover a small bump, so you have to use bare wires if you want it to sit flush.
|WARNING: Bare wires must be insulated properly with tape or some other method to ensure they don't short out with each other or to pins in the SIM card slots.|