-2

This question is uncommon and may not apply to a lot of you. But I dropped two phones in a row so I needed to grab my old Samsung Galaxy Ace 2 GT-I8160 backup phone and revive it. I had it already running with a previous version of Cyanogenmod 11 (Android 4 Ice Cream Sandwich) and already saw that I could possibly run it with Anroid 4.4.4 and a custom Kernel from XDA Developers Forum (last updated Jan 30th 2023).

Although that might be sufficient for others, it turned out that the messenger application I'm using is Signal for Android, which has a minimum OS requirement of Android 5.0.

Later I discovered a more recent version of Cyanogenmod / LineageOS 13 (Android 6.0.1 Marshmallow) on XDA Developers Forum, which was referring a packed Version of SergeyL on the 4PDA forum. I downloaded lineage13.0-20180914-UNOFFICIAL-codina_SergeyL.zip from the given link in the 4PDA forum and made sure it fits the given md5sum dd59385470e5b41be75fcec0377fb910.

To download Signal from the Google Play Store I opted for Open GApps ARM 32bit for Android 6.0 and the Pico variant (Ace 2 has a ARM Cortex A9, ARM v7 32bit CPU). I downloaded open_gapps-arm-6.0-pico-20220215.zip from the Open GApps website.

Because I was certain that I can install both packages, I put them onto a Micro SD card, plugged it into the phone and booted into CWM (ClockWorkMod). Installing Cyanogenmod / LineageOS 13 went pretty well. So I rebooted and recognized, that CWM had been replaced by TWRP 3.0.2-0 (Team Win Recovery Project). When I tried to install GApps i got an Error Code: 70. It told me: Insufficient storage space available in System partition. You may want to use a smaller Open GApps package or consider removing some apps using gapps-config. To keep it short, the proposed solution of using a gapps-config file wouldn't work. Wiping System, Data, Cache from TWRP and installing everything again gave the same result.

So the question is: How to install Cyanogenmod / LineageOS 13 (Android 6.0.1 Marshmallow) with GApps and Signal Messenger onto a Samsung Galaxy Ace 2 GT-I8160?

Pewpew
  • 11
  • 4

1 Answers1

1

Caution

Before using the solution please make sure you understood the following:

  1. The proposed solution is only suitable for a clean install (a.k.a. from scratch).
  2. The proposed solution modifies the patition table of the phone. You are risking a bricked phone (especially if u edit other partitions related to the bootloader). Also entering wrong numbers may lead to a corrupt partition table.
  3. The proposed solution expects you to be familiar with CWM (ClockWorkMod), TWRP (Team Win Recovery Project) and ADB (Android Debug Bridge).
  4. The proposed solution expects having USB-Debugging on your phone enabled.
  5. The proposed solution expects having CWM or TWRP installed. If you do not know, how to do this, search for it. Basically it's using adb and fastboot to unlock your device and flash a recovery image (like TWRP) to your phone.

Solution

While searching for a solution I tried to figure out, what size the system partition has and what is left. I used TWRP, navigated to Wipe > Advanced Wipe > Select System > Repair or Change File System and discovered it beeing 590 MiB having some 100 MiB left. Obviously this was not enough. Because I had no idea how to solve it, I tried using the option Resize File System which didn't do anything to the partition size.

I was asking myself, if this phone has internal memory capacity of 4 GiB, would it be possible to swap space from another partition to system. While searching for a solution I discovered, that someone else had the same idea like me here on StackExchange. But unfortunately it uses custom build binaries (of parted and gdisk) for another phone which I wouldn't want to use here, because I would risk damaging my partition table. Also using resizepart seemed error prone to me, because the version of parted which my phone had installed didn't recognize ext4. Furthermore the whole description seemed like a lot of guessing to me.

My decision was to manually edit the partition table with the onboard tools of my phone, which I could've done with the command line from TWRP. Instead I plugged my phone into the USB port and used adb from Debian Bullseye:

$ uname -a
Linux MACHINENAME 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux
$ adb --version
Android Debug Bridge version 1.0.41
Version 28.0.2-debian
Installed as /usr/lib/android-sdk/platform-tools/adb

First I checked for the partition numbers and sizes of system and data paths.

$ sudo adb shell df -h
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   322.6M     64.0K    322.5M   0% /dev
tmpfs                   322.6M    212.0K    322.4M   0% /tmp
/dev/block/mmcblk0p7      9.8M      4.6M      5.2M  47% /efs
df: /mnt/.lfs: Function not implemented
/dev/block/mmcblk0p8      1.1G      1.1G     10.7M  99% /sdcard
/dev/block/mmcblk0p8      1.1G      1.1G     10.7M  99% /and-sec
/dev/block/mmcblk1p1     14.8G      1.6G     13.2G  11% /external_sd
/dev/block/mmcblk0p17
                         15.5M     10.5M      5.0M  67% /ramdisk
/dev/block/mmcblk0p3    602.4M     10.0M    592.3M   2% /system
/dev/block/mmcblk0p4    301.2M      5.0M    296.2M   2% /cache
/dev/block/mmcblk0p5      1.2G     21.4M      1.2G   2% /data

Then I unmounted those paths and used parted to discover the partition's device /dev/block/mmcblk0 and its partition table.

$ sudo adb shell umount /data
$ sudo adb shell umount /system
$ sudo adb shell
~ # parted /dev/block/mmcblk0 
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print free
print free Model: MMC SEM04G (sd/mmc) Disk /dev/block/mmcblk0: 3959MB Sector size (logical/physical): 512B/512B Partition Table: gpt

Number Start End Size File system Name Flags 17.4kB 524kB 507kB Free Space 10 524kB 1573kB 1049kB PIT 6 1573kB 3146kB 1573kB CSPSA FS 3146kB 4194kB 1049kB Free Space 7 4194kB 14.7MB 10.5MB ext4 EFS 2 14.7MB 31.5MB 16.8MB ext4 Modem FS 31.5MB 32.5MB 1049kB Free Space 14 32.5MB 34.6MB 2097kB SBL 16 34.6MB 36.7MB 2097kB SBL_2 1 36.7MB 53.5MB 16.8MB PARAM 12 53.5MB 55.6MB 2097kB IPL Modem 13 55.6MB 72.4MB 16.8MB Modem 15 72.4MB 89.1MB 16.8MB Kernel 17 89.1MB 106MB 16.8MB ext4 Kernel2 3 106MB 748MB 642MB ext4 SYSTEM 5 748MB 2056MB 1309MB ext4 DATAFS 4 2056MB 2377MB 321MB ext4 CACHEFS 9 2377MB 2713MB 336MB ext4 HIDDEN 11 2713MB 2765MB 52.4MB Fota 8 2765MB 3949MB 1184MB fat32 UMS 3949MB 3959MB 10.5MB Free Space

(parted) unit B
unit B

(parted) print free
print free Model: MMC SEM04G (sd/mmc) Disk /dev/block/mmcblk0: 3959422976B Sector size (logical/physical): 512B/512B Partition Table: gpt

Number Start End Size File system Name Flags 17408B 524287B 506880B Free Space 10 524288B 1572863B 1048576B PIT 6 1572864B 3145727B 1572864B CSPSA FS 3145728B 4194303B 1048576B Free Space 7 4194304B 14680063B 10485760B ext4 EFS 2 14680064B 31457279B 16777216B ext4 Modem FS 31457280B 32505855B 1048576B Free Space 14 32505856B 34603007B 2097152B SBL 16 34603008B 36700159B 2097152B SBL_2 1 36700160B 53477375B 16777216B PARAM 12 53477376B 55574527B 2097152B IPL Modem 13 55574528B 72351743B 16777216B Modem 15 72351744B 89128959B 16777216B Kernel 17 89128960B 105906175B 16777216B ext4 Kernel2 3 105906176B 747634687B 641728512B ext4 SYSTEM 5 747634688B 2056257535B 1308622848B ext4 DATAFS 4 2056257536B 2377121791B 320864256B ext4 CACHEFS 9 2377121792B 2712666111B 335544320B ext4 HIDDEN 11 2712666112B 2765094911B 52428800B Fota 8 2765094912B 3948937215B 1183842304B fat32 UMS 18 3948937216B 3950000127B 1062912B 3950000128B 3959406079B 9405952B Free Space

As you can see the partitions of system and data border to each other. In the next steps I will move the border between them, which will reduce the size of data and give additional space to system.

First I deleted partition 5 (data), recreated it and moved the starting point from 747634688B to 947634688B (while keeping the same end) which would make it lose around 200 MiB at the beginning.

(parted) rm 5                                                             
rm 5
(parted) mkpart                                                           
mkpart
Partition name?  []?

File system type? [ext2]?

Start? 947634688B
947634688B End? 2056257535B
2056257535B (parted) name 5 DATAFS
name 5 DATAFS

After that I deleted partition 3 (system), recreated it and moved the ending point from 747634687B to 947634687B (while keeping the same start) which would make it gain around 200 MiB at the end.

(parted) rm 3                                                             
rm 3
(parted) mkpart                                                           
mkpart
Partition name?  []?

File system type? [ext2]?

Start? 105906176B
105906176B End? 947634687B
947634687B (parted) name 3 SYSTEM
name 3 SYSTEM

I then quit parted and back in the shell of adb I formatted these partitions with ext4.

(parted) quit                                                             
quit
~ #make_ext4fs /dev/block/mmcblk0p5
~ #make_ext4fs /dev/block/mmcblk0p3

As a last step I checked the partition table again.

~ # parted /dev/block/mmcblk0
(parted) unit B                                                           
unit B
(parted) print free                                                       
print free
Model: MMC SEM04G (sd/mmc)
Disk /dev/block/mmcblk0: 3959422976B
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags 17408B 524287B 506880B Free Space 10 524288B 1572863B 1048576B PIT 6 1572864B 3145727B 1572864B CSPSA FS 3145728B 4194303B 1048576B Free Space 7 4194304B 14680063B 10485760B ext4 EFS 2 14680064B 31457279B 16777216B ext4 Modem FS 31457280B 32505855B 1048576B Free Space 14 32505856B 34603007B 2097152B SBL 16 34603008B 36700159B 2097152B SBL_2 1 36700160B 53477375B 16777216B PARAM 12 53477376B 55574527B 2097152B IPL Modem 13 55574528B 72351743B 16777216B Modem 15 72351744B 89128959B 16777216B Kernel 17 89128960B 105906175B 16777216B ext4 Kernel2 3 105906176B 947634687B 841728512B ext4 SYSTEM 5 947634688B 2056257535B 1108622848B ext4 DATAFS 4 2056257536B 2377121791B 320864256B ext4 CACHEFS 9 2377121792B 2712666111B 335544320B ext4 HIDDEN 11 2712666112B 2765094911B 52428800B Fota 8 2765094912B 3948937215B 1183842304B fat32 UMS 18 3948937216B 3957000191B 8062976B ext4 TEST 3957000192B 3959406079B 2405888B Free Space

After that I rebooted into recovery to make sure TWRP is detecting it and having all mount points set correctly. I installed the above mentioned archives (first lineage13.0-20180914-UNOFFICIAL-codina_SergeyL.zip and second open_gapps-arm-6.0-pico-20220215.zip), which now went fine and wiped the Dalvik/Art-Cache. After a reboot to the system and a couple of minutes waiting finally Cyanogenmod / LineageOS 13 with GApps was installed.

I configured my phone and installed Signal through Google Play Store plus F-Droid and some other apps. The GBoard (with Swype gestures) was installed by default. The phone is running fine and everything works as expected (Wifi, 3G, hotspot, bluetooth, mail, alarm clock, browsing, dialing, sms, contacts, camera, etc.). But due to the matter of low storage I couldn't install another webbrowser like Firefox. So I need to stick to the onboard browser, which is okay.

Pewpew
  • 11
  • 4