[ROM][FINAL][7.1.2][2017.10.08][I777] Lineage OS 14.1 Unofficial Build

Status
Not open for further replies.

Goldfish64

New member
Jun 21, 2016
4
0
0
I fiddled with the partitions, expanding the system and data partitions to 1GB and 7GB respectively. I was then able to successfully flash the ROM and opengapps from TWRP 3.0.2, and it appears everything is functional, including the phone itself. I installed a Cricket SIM for testing and the device is able to make and receive calls fine, as well as text messages. I did not test mobile data.
 

dimoochka

Senior Member
Oct 9, 2014
137
104
0
This would be so awesome. Believe it or not I still use this phone as my daily driver.
I don't believe it. How? I moved on to a Nexus 5X at least a year ago... now when I go back to this device it's like unconscionably slow. I mean even opening the Google Search App takes a solid 45 seconds. Do I just need to reflash or is this a universal experience?
 

AnotherFreakinNoob

Senior Member
Sep 22, 2016
97
20
0
I don't believe it. How? I moved on to a Nexus 5X at least a year ago... now when I go back to this device it's like unconscionably slow. I mean even opening the Google Search App takes a solid 45 seconds. Do I just need to reflash or is this a universal experience?
Bro I'm running your CM 12 ROM. Some lag but not bad. Everything usually loads within a couple secs (I mainly just use it for calls/text/social media/music). Yet everything works. Honestly I'll prob upgrade by years end but I love this phone. Damn near impossible to brick (makes it the perfect phone to try and learn to build with). Easy to mod. Rock out all day with Viper4Android. Even if I upgrade I plan on keeping this thing just to see which one of us dies first lol.
 
  • Like
Reactions: jroq8400

dimoochka

Senior Member
Oct 9, 2014
137
104
0
Bro I'm running your CM 12 ROM. Some lag but not bad. Everything usually loads within a couple secs (I mainly just use it for calls/text/social media/music). Yet everything works. Honestly I'll prob upgrade by years end but I love this phone. Damn near impossible to brick (makes it the perfect phone to try and learn to build with). Easy to mod. Rock out all day with Viper4Android. Even if I upgrade I plan on keeping this thing just to see which one of us dies first lol.
what?? that's crazy. Maybe it's cause I have xposed installed... I'll remove it and see what happens. Everything runs insanely slow. I'm really glad the ROM is treating you well - too bad the CM support isn't really there. I thought Lysergic Acid was keeping official i777 builds alive for MM/N? What about the other unofficial versions? My ROM builds probably contain a bunch of old Android security issues (google comes out with patches for newly discovered old bugs monthly).

That phone will outlive you and me both.
 
  • Like
Reactions: AnotherFreakinNoob

AnotherFreakinNoob

Senior Member
Sep 22, 2016
97
20
0
what?? that's crazy. Maybe it's cause I have xposed installed... I'll remove it and see what happens. Everything runs insanely slow. I'm really glad the ROM is treating you well - too bad the CM support isn't really there. I thought Lysergic Acid was keeping official i777 builds alive for MM/N? What about the other unofficial versions? My ROM builds probably contain a bunch of old Android security issues (google comes out with patches for newly discovered old bugs monthly).

That phone will outlive you and me both.
Pretty sure lollipop was the last official build we had. CNBLACK is the only one running builds now. His MM ROM operated fine just had lots of lag. So far I've not had much luck with this one. No sim detection and haven't been able to install root. Probably due to the fact I don't have a 3.0. TWRP recovery for my 959g and flashing with 2.8. Maybe I should try and build a recovery instead of trying to build my own ROM lol. Would love to get this guy running smoothly on Nougat.
 

dimoochka

Senior Member
Oct 9, 2014
137
104
0
Pretty sure lollipop was the last official build we had. CNBLACK is the only one running builds now. His MM ROM operated fine just had lots of lag. So far I've not had much luck with this one. No sim detection and haven't been able to install root. Probably due to the fact I don't have a 3.0. TWRP recovery for my 959g and flashing with 2.8. Maybe I should try and build a recovery instead of trying to build my own ROM lol. Would love to get this guy running smoothly on Nougat.
I found TWRP to be relatively easy to build for this device actually. Not nearly as complicated as building a ROM. It's pretty streamlined so I only had to make a few settings changes. Found a couple of bugs while building it too but they were minor
 

Grrinder69

New member
Apr 9, 2017
2
0
0
I have gone through all the steps. When phone boots up it gets stuck on the lineage boot animation. Let it sit overnight and it was still on the animation. I did notice the bootloader changed from twrp to cyanogen. Gets stuck on boot animation. Any ideas ?
 
Last edited:

AnotherFreakinNoob

Senior Member
Sep 22, 2016
97
20
0
I found TWRP to be relatively easy to build for this device actually. Not nearly as complicated as building a ROM. It's pretty streamlined so I only had to make a few settings changes. Found a couple of bugs while building it too but they were minor
I might give it go. Curious I noticed in your 2.8 thread you mentioned that recovery flashes to a different partition than the i777. I don't guess there is any chance you remember what device tree and such you used for the 959g and reckon the work for the 3.0 version of TWRP?
 

Nevuly

Senior Member
Jun 9, 2013
498
1,242
0
22
Seoul
Next Build Planned on 2017.04.12

I try to edit kernel source about mic to fix calling issues.

But I can't test it now, so I'll upload test build to check it.
 
  • Like
Reactions: AlmasSD

dimoochka

Senior Member
Oct 9, 2014
137
104
0
I might give it go. Curious I noticed in your 2.8 thread you mentioned that recovery flashes to a different partition than the i777. I don't guess there is any chance you remember what device tree and such you used for the 959g and reckon the work for the 3.0 version of TWRP?
Sure, I included all my code below. On the i777/S959G there are two partitions used for this: mmcblk0p5 and mmcblk0p6

I don't have an i777 myself and my memory sucks, but I THINK that mmcblk0p5 is both the kernel AND recovery on this device - you'll have to verify this yourself because I've heard conflicting reports. It's entirely possible this applies only to the i9100 (and the i777 and S959G are actually identical).
The S959G stores the kernel on mmcblk0p5 and the recovery is stored separately on mmcblk0p6. The twrp.fstab you'll see in the commit below is accordingly designed for the S959G.


The base build of android I used was CM12.1, and the twrp branch I used was android-5.1. At the time, I built it on top of this commit:
https://github.com/TeamWin/Team-Win-Recovery-Project/commit/f20a5701b9783ca6485127c15fda0862c5d16166

This is the corresponding base tree:
https://github.com/TeamWin/Team-Win-Recovery-Project/tree/f20a5701b9783ca6485127c15fda0862c5d16166

This is the commit I used in the device/samsung/galaxys2-common folder:
Code:
diff --git a/BoardCommonConfig.mk b/BoardCommonConfig.mk
index 89fcbe3..e9ad1da 100644
--- a/BoardCommonConfig.mk
+++ b/BoardCommonConfig.mk
@@ -175,7 +175,7 @@ BOARD_SEPOLICY_UNION += \
 
 # Recovery
 BOARD_CUSTOM_RECOVERY_KEYMAPPING := ../../device/samsung/galaxys2-common/recovery/recovery_keys.c
-BOARD_CUSTOM_GRAPHICS := ../../../device/samsung/galaxys2-common/recovery/graphics.c
+#BOARD_CUSTOM_GRAPHICS := ../../../device/samsung/galaxys2-common/recovery/graphics.c
 BOARD_UMS_LUNFILE := "/sys/class/android_usb/android0/f_mass_storage/lun0/file"
 BOARD_USES_MMCUTILS := true
 BOARD_HAS_NO_MISC_PARTITION := true


These are the commits I used in the device/samsung/i777 folder (see the comments inside, they're useful):
Code:
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 8716840..e740a70 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -36,3 +36,81 @@ TARGET_OTA_ASSERT_DEVICE := i777,SGH-I777,SGH-S959G
 
 # Use the non-open-source parts, if they're present
 -include vendor/samsung/i777/BoardConfigVendor.mk
+
+#twrp
+#TW_INCLUDE_INJECTTWRP := true             ---- doesn't work :(
+DEVICE_RESOLUTION := 480x800
+TW_INCLUDE_L_CRYPTO := true
+
+RECOVERY_SDCARD_ON_DATA := true
+TW_INTERNAL_STORAGE_PATH := "/data/media/0"
+TW_INTERNAL_STORAGE_MOUNT_POINT := "data"
+TW_EXTERNAL_STORAGE_PATH := "/sdcard"
+TW_EXTERNAL_STORAGE_MOUNT_POINT := "sdcard"
+
+#commented following definition out in BoardCommonConfig.mk so we can define it here
+BOARD_CUSTOM_GRAPHICS := ../../../bootable/recovery/minui/graphics.c
+
+# TWRP - doesn't work
+#PRODUCT_COPY_FILES += device/samsung/i777/twrp.fstab:recovery/root/etc/twrp.fstab
+
+# Also need to enable ADB in TWRP for advanced users:
+# Replaced lines 965-966 in build/core/Makefile with:
+#       # Copy twrp.fstab into ramdisk... didn't work with PRODUCT_COPY_FILES method
+#	$(hide) cp -f device/samsung/i777/twrp.fstab $(TARGET_RECOVERY_ROOT_OUT)/etc/twrp.fstab;)
+#       # Set ro.adb.secure to 0 on the recovery ramdisk so you can adb into it.
+#	$(hide) cat $(INSTALLED_DEFAULT_PROP_TARGET) $(recovery_build_prop) \
+#		| sed s/ro.adb.secure=1/ro.adb.secure=0/ \
+#	        > $(TARGET_RECOVERY_ROOT_OUT)/default.prop
+
+
+########## Alternatively, you can add to build/tools/post_process_props.py at line 45
+##########  prop.put("ro.adb.secure", "0");
+########## But this solution adds it to the /system/default.prop file as well :(


diff --git a/twrp.fstab b/twrp.fstab
new file mode 100644
index 0000000..355195e
--- /dev/null
+++ b/twrp.fstab
@@ -0,0 +1,14 @@
+# mount point       fstype              device
+
+/boot               emmc                /dev/block/mmcblk0p5        flags=display="Boot [System Kernel]";backup=1
+/modem              emmc                /dev/block/mmcblk0p8        flags=display="Modem";backup=1
+/recovery           emmc                /dev/block/mmcblk0p6        flags=display="Recovery [+Kernel]";backup=1
+
+/cache              ext4                /dev/block/mmcblk0p7        flags=display="Cache";wipeingui;backup=1;wipeduringfactoryreset;canencryptbackup=1
+/preload            ext4                /dev/block/mmcblk0p12       flags=display="Preload";wipeingui;backup=1
+/efs                ext4                /dev/block/mmcblk0p1        flags=display="EFS [IMEI]";backup=1;canencryptbackup=1;mounttodecrypt
+/system             ext4                /dev/block/mmcblk0p9        flags=display="System";wipeingui;backup=1;canencryptbackup=1
+/data               ext4                /dev/block/mmcblk0p10       flags=display="Data";wipeingui;backup=1;wipeduringfactoryreset;canencryptbackup=1;encryptable=/efs/metadata
+/emmc               auto                /dev/block/mmcblk0p11       flags=display="Internal Storage";storage;settingsstorage;wipeingui
+/sdcard             auto                /dev/block/mmcblk1p1        /dev/block/mmcblk1      flags=display="MicroSD Card";storage;wipeingui;removable


Some manual bugfixes I made to this branch TWRP stored in the android/bootable/recovery folder (not sure if they still apply):

Code:
diff --git a/partition.cpp b/partition.cpp
index 8c5b412..72082ea 100644
--- a/partition.cpp
+++ b/partition.cpp
@@ -262,6 +262,8 @@ bool TWPartition::Process_Fstab_Line(string Line, bool Display_Error) {
                        Wipe_Available_in_GUI = true;
                        Can_Be_Backed_Up = true;
                        Mount_Read_Only = true;
+               } else if (Mount_Point == "/efs") {
+                        Mount(false);
                } else if (Mount_Point == "/data") {
                        UnMount(false); // added in case /data is mounted as tmpfs for qcom hardware decrypt
                        Display_Name = "Data";
@@ -465,19 +467,6 @@ bool TWPartition::Process_Flags(string Flags, bool Display_Error) {
                ptr_len = strlen(ptr);
                if (strcmp(ptr, "removable") == 0) {
                        Removable = true;
-               } else if (strncmp(ptr, "storage", 7) == 0) {
-                       if (ptr_len == 7) {
-                               Is_Storage = true;
-                       } else if (ptr_len == 9) {
-                               ptr += 9;
-                               if (*ptr == '1' || *ptr == 'y' || *ptr == 'Y') {
-                                       LOGINFO("storage set to true\n");
-                                       Is_Storage = true;
-                               } else {
-                                       LOGINFO("storage set to false\n");
-                                       Is_Storage = false;
-                               }
-                       }
                } else if (strcmp(ptr, "settingsstorage") == 0) {
                        Is_Storage = true;
                        Is_Settings_Storage = true;
@@ -519,22 +508,35 @@ bool TWPartition::Process_Flags(string Flags, bool Display_Error) {
                        if (Display_Name.substr(Display_Name.size() - 1, 1) == "\"") {
                                Display_Name.resize(Display_Name.size() - 1);
                        }
-               } else if (ptr_len > 11 && strncmp(ptr, "storagename=", 11) == 0) {
+               } else if (ptr_len > 12 && strncmp(ptr, "storagename=", 12) == 0) {
                        has_storage_name = true;
-                       ptr += 11;
+                       ptr += 12;
                        if (*ptr == '\"') ptr++;
                        Storage_Name = ptr;
                        if (Storage_Name.substr(Storage_Name.size() - 1, 1) == "\"") {
                                Storage_Name.resize(Storage_Name.size() - 1);
                        }
-               } else if (ptr_len > 11 && strncmp(ptr, "backupname=", 10) == 0) {
+               } else if (ptr_len > 11 && strncmp(ptr, "backupname=", 11) == 0) {
                        has_backup_name = true;
-                       ptr += 10;
+                       ptr += 11;
                        if (*ptr == '\"') ptr++;
                        Backup_Display_Name = ptr;
                        if (Backup_Display_Name.substr(Backup_Display_Name.size() - 1, 1) == "\"") {
                                Backup_Display_Name.resize(Backup_Display_Name.size() - 1);
                        }
+               } else if (strncmp(ptr, "storage", 7) == 0) {
+                       if (ptr_len == 7) {
+                               Is_Storage = true;
+                       } else if (ptr_len == 9) {
+                               ptr += 9;
+                               if (*ptr == '1' || *ptr == 'y' || *ptr == 'Y') {
+                                       LOGINFO("storage set to true\n");
+                                       Is_Storage = true;
+                               } else {
+                                       LOGINFO("storage set to false\n");
+                                       Is_Storage = false;
+                               }
+                       }
                } else if (ptr_len > 10 && strncmp(ptr, "blocksize=", 10) == 0) {
                        ptr += 10;
                        Format_Block_Size = (unsigned long)(atol(ptr));
@@ -652,8 +654,10 @@ void TWPartition::Setup_File_System(bool Display_Error) {
 
        // Make the mount point folder if it doesn't exist
        Make_Dir(Mount_Point, Display_Error);
-       Display_Name = Mount_Point.substr(1, Mount_Point.size() - 1);
-       Backup_Name = Display_Name;
+       if (Display_Name != "Data") {
+               Display_Name = Mount_Point.substr(1, Mount_Point.size() - 1);
+               Backup_Name = Display_Name;
+       }
        Backup_Method = FILES;
 }
 
  • Like
Reactions: AnotherFreakinNoob

AnotherFreakinNoob

Senior Member
Sep 22, 2016
97
20
0
Sure, I included all my code below. On the i777/S959G there are two partitions used for this: mmcblk0p5 and mmcblk0p6

I don't have an i777 myself and my memory sucks, but I THINK that mmcblk0p5 is both the kernel AND recovery on this device - you'll have to verify this yourself because I've heard conflicting reports. It's entirely possible this applies only to the i9100 (and the i777 and S959G are actually identical).
The S959G stores the kernel on mmcblk0p5 and the recovery is stored separately on mmcblk0p6. The twrp.fstab you'll see in the commit below is accordingly designed for the S959G.


The base build of android I used was CM12.1, and the twrp branch I used was android-5.1. At the time, I built it on top of this commit:
https://github.com/TeamWin/Team-Win-Recovery-Project/commit/f20a5701b9783ca6485127c15fda0862c5d16166

This is the corresponding base tree:
https://github.com/TeamWin/Team-Win-Recovery-Project/tree/f20a5701b9783ca6485127c15fda0862c5d16166

This is the commit I used in the device/samsung/galaxys2-common folder:




These are the commits I used in the device/samsung/i777 folder (see the comments inside, they're useful):




Some manual bugfixes I made to this branch TWRP stored in the android/bootable/recovery folder (not sure if they still apply):
Man if I could thank this post 10x I would. Really appreciate it. Gonna see what I can do with. :cowboy:
 

dimoochka

Senior Member
Oct 9, 2014
137
104
0
Man if I could thank this post 10x I would. Really appreciate it. Gonna see what I can do with. :cowboy:
Good luck! Let me know if you have any questions putting it together - happy to help out....

PS. I took xposed off my device and it sped up substantially - although still sluggish. You should spring for a more modern phone if you are able - difference in changing over to the nexus 5X was pretty dramatic (and they're cheaper these days).
 
  • Like
Reactions: AnotherFreakinNoob

AnotherFreakinNoob

Senior Member
Sep 22, 2016
97
20
0
Good luck! Let me know if you have any questions putting it together - happy to help out....

PS. I took xposed off my device and it sped up substantially - although still sluggish. You should spring for a more modern phone if you are able - difference in changing over to the nexus 5X was pretty dramatic (and they're cheaper these days).
Thanks for the kind offer. I understand almost everything you shared. I'll see what can do. Again thanks! :)
 

TeutonJon78

Senior Member
Jul 24, 2010
574
283
0
Sure, I included all my code below. On the i777/S959G there are two partitions used for this: mmcblk0p5 and mmcblk0p6

I don't have an i777 myself and my memory sucks, but I THINK that mmcblk0p5 is both the kernel AND recovery on this device - you'll have to verify this yourself because I've heard conflicting reports. It's entirely possible this applies only to the i9100 (and the i777 and S959G are actually identical).
The S959G stores the kernel on mmcblk0p5 and the recovery is stored separately on mmcblk0p6. The twrp.fstab you'll see in the commit below is accordingly designed for the S959G.
Yes, this device has the combo kernel/recovery. We got support for separate recovery with the ISOREC support, just like the i9100.
 

ijlos

New member
Apr 13, 2017
1
0
0
Now, Lineage OS 14.1 arrived on i777.
i use twrp v2.8.7.0 for i777,and then flash to about 80% stopped so long long time. use another recovery like same result (lineage-14.1-20170129-UNOFFICIAL-u1att.zip lineage-14.1-20170305-UNOFFICIAL-u1att.zip):(
 

ijloss

New member
Apr 17, 2017
2
0
0
New build(lineage-14.1-20170416-UNOFFICIAL-u1att)4 wipe also about 80% stopped so long time in TWRP v2.8.7.0 for i777. My dirver is samsung i777.
 

ijloss

New member
Apr 17, 2017
2
0
0
Have you tried TWRP 3.0.2.0? Or do you have enough system partition as mentioned in OP?

The system partition have 1.97G storage.:eek::eek:
Now i will try twrp 3.0.2.0 and new build thanks!

I use odin3 v3.10 flash(zImage-TWRP-3.0.2-0-u1att.tar)to i777 and restart in twrp, it's show version twrp 3.1.1.0 .
And flash new build show “this device is GT-I9100”? flash failed what's wrong with it? tell me please thanks!
 
Last edited:
Status
Not open for further replies.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone