[ROM][WIP][4.4.2] CyanogenMod 11 KitKat for Optimus S/V

The boot from card is ridiculously simple and easy to implement.
I used to have to pull all kinds of tricks like adding a delay in init, or using tassadar's init/preinit.rc from multirom.
aosp has fixed the mount process nicely since I messed with it in gingerbread.
archived.
Code:
here: 

in init.qcom.rc
comment out the mount system, data and cache
mount them ext4 instead of yaffs and put their /dev/block/mmcblk0p* path instead of just their mtd@name.
like
#    mount yaffs2 mtd@userdata /data nosuid nodev
    mount ext4 /dev/block/mmcblk0p2 /data nosuid nodev

in fstab.thunderc
comment out the system, data and cache
again replace with ext4 and their dev paths instead of just their names.
like
/dev/block/mmcblk0p2		/data		auto		defaults
move the vold line above all the others, above the data system and cache lines

make ext4 sd partitions 2, 3, and 4 for data, system, cache

and in the install zip updater-scripts remove all mount mtd and format lines, and replace them with a busybox script run from the updater script to mount the correct ext partition instead of the mtd one the update-binary wants to. there may be a way to use EMMC instead of MTD and do it in the updater-script... someone savvy should check.
like, in the updater-script
package_extract_file("wipe.sh", "/tmp/wipe.sh");
set_perm(0, 0, 0777, "/tmp/wipe.sh");
run_program("/tmp/wipe.sh");
where wipe.sh is in the root of the zip file.
to mount:
in the .sh
#!/sbin/sh
busybox mount -t auto /dev/block/mmcblk0p2 /data

this should be enough to get what I have working for you, even though it's not step-by-step.
these two files, init.qcom.rc and fstab.thunderc, in the device folders, make a recovery and zip which work out of the box to install to the 3 ext partitions mmcblk0p2, p3, and p4.
View attachment emmc.zip
ooooh, google is really working nicely towards compatibilities these days.
 
Last edited:
Do you think it's possible to mount /system normally and mount the sd-ext on /system/apps ? I'm thinking of a normal bootup + sd-ext on /system/apps and maybe sd-ext2 on /data/apps where they shadow the minimal install.
 
since it's an existing directory, you'd have to have it empty before mounting the sd-ext I think.
or you could aufs mount it but that's trickier and seems to need to happen in init.d land instead of .rc ville.
 
Just thought id mention texting works. I trimmed some stuff out and have working play store and fit the MMS.apk into app-priv no Mobil data yet so no point in trying MMS but I'm on virgin mobile so it probably wouldn't work anyway

Sent from my LG-LS670 using Tapatalk
 
Just thought id mention texting works. I trimmed some stuff out and have working play store and fit the MMS.apk into app-priv no Mobil data yet so no point in trying MMS but I'm on virgin mobile so it probably wouldn't work anyway

Sent from my LG-LS670 using Tapatalk
you're right about sms, I forgot to mention it myself. mms toasts unable to send, will when service becomes available.

yay! fixed sd card. move the vold line above all the others in fstab.thunderc, above the data system and cache lines. works just fine now. nothing broken that I'm aware of.
Boot from card is neat because I swapped the sd card from my out-of-service test phone to my daily driver, flashed just the boot.img in recovery after backup, and it... just worked.
I also installed, lets see, 347MB of apps on /data, all at once, wham-wham-wham from the 'all' under my apps in market, and it never choked.
most of em work, some with nifty new UI's.
 
Last edited:
since it's an existing directory, you'd have to have it empty before mounting the sd-ext I think.
or you could aufs mount it but that's trickier and seems to need to happen in init.d land instead of .rc ville.
On pc linux you can mount on top of an existing directory, doesn't have to be empty. It just 'covers' what's in the directory. The main reason I'm thinking do it that way is for performance reasons if it seems like running off of sd-ext isslowing things down. There's libraries, daemons, etc that don't need to run off of sd-ext. priv-app could stay on mtd and have more room. Maybe I'll try it after I get things set up the way you have it. Wow, this really makes it like a whole new phone!
 
On pc linux you can mount on top of an existing directory, doesn't have to be empty. It just 'covers' what's in the directory. The main reason I'm thinking do it that way is for performance reasons if it seems like running off of sd-ext isslowing things down. There's libraries, daemons, etc that don't need to run off of sd-ext. priv-app could stay on mtd and have more room. Maybe I'll try it after I get things set up the way you have it. Wow, this really makes it like a whole new phone!

forgot, used to do that using chroot in the root directory in gingerbread. it should probably still work.
 
Was just poking around and did *#*#4636#*#* on the dialer. Anyone know if in other Roms it shows up as "gsm service: in service"

Sent from my XT907 using Tapatalk
 

Attachments

  • uploadfromtaptalk1388380381532.jpg
    uploadfromtaptalk1388380381532.jpg
    36.1 KB · Views: 12
Was just poking around and did *#*#4636#*#* on the dialer. Anyone know if in other Roms it shows up as "gsm service: in service"

Sent from my XT907 using Tapatalk

This is le super normal. When I had stock froyo, it'd say in service. Its normal ;) its on every phone when in service.
usytuzud.jpg


#edit: ignore my number xD I forgot to censor...

Sent from my HTC One SV using Tapatalk
 
I'm uploading a new rom, cm-11-20131230-thunderc-skinbark.zip. Test for data function. Small fixes.
 
Well I have the previous rom on my phone the 27th one. And I can see a few things that seem to not want to work. I reboot the phone multiple times and I still can't use the back button for some odd reason. The auto brightness doesn't seem to work. Also I can't seem to locate the cyanogenmod settings. Does anyone know where they are located? And I may not have paid my bill in awhile but I can tell you the phone side seems to work I used *86 and it said my account could not be validated so I am assuming it should be able to make regular calls as well. And I thought the camera was on it and worked or is that just for the optimus s? Anyways that is about all I found wrong with it aside from it sucking the battery dry fairly quickly. I have never had a rom that sucked a battery dry so quickly even in development stages I can't remember any of them. I guess it is something in kit kat doing it or something. Anyways I greatly appreciate being able to use the newest android even if it isn't on my phone I am currently using being the Optimus Elite. I find it odd that the elite is newer and for some odd reason it has less ram than my v I believe or maybe it is just the roms that are installed on them only letting so much ram free up.
 
Well I have the previous rom on my phone the 27th one. And I can see a few things that seem to not want to work. I reboot the phone multiple times and I still can't use the back button for some odd reason. The auto brightness doesn't seem to work. Also I can't seem to locate the cyanogenmod settings. Does anyone know where they are located? And I may not have paid my bill in awhile but I can tell you the phone side seems to work I used *86 and it said my account could not be validated so I am assuming it should be able to make regular calls as well. And I thought the camera was on it and worked or is that just for the optimus s? Anyways that is about all I found wrong with it aside from it sucking the battery dry fairly quickly. I have never had a rom that sucked a battery dry so quickly even in development stages I can't remember any of them. I guess it is something in kit kat doing it or something. Anyways I greatly appreciate being able to use the newest android even if it isn't on my phone I am currently using being the Optimus Elite. I find it odd that the elite is newer and for some odd reason it has less ram than my v I believe or maybe it is just the roms that are installed on them only letting so much ram free up.
I had to take out a bunch of stuff to squeeze the rom onto the /system partition so you need to download the apps.zip from the link in the original post, copy LatinIME.apk, Camera2.apk, Gallery2.apk etc. to your sdcard and install them from there so they get installed on /data rather than /system. The back button will work after you install LatinIME.apk (AOSP keyboard) or any other keyboard. After you install the keyboard you have to go into Settings > Language & input and enable the keyboard. Turn off mobile data and/or turn on Airplane mode for better battery life.
 
dmesg sez, whether trying to enable or disable mobile data,
dmesg said:
<6>[ 3607.505727] [audmgr.c:audmgr_enable] session 0xc07da428
<6>[ 3607.506631] [audmgr.c:process_audmgr_callback] rpc READY handle=0x00000000
<6>[ 3607.506952] [audmgr.c:audmgr_rpc_thread] rpc_reply status 0
<6>[ 3607.736062] [audmgr.c:process_audmgr_callback] rpc CODEC_CONFIG volume=0x00000000
<6>[ 3607.736352] [adsp.c:msm_adsp_get] opening module AUDPPTASK
<6>[ 3607.737261] [adsp.c:msm_adsp_enable] enable 'AUDPPTASK'state[0] id[17227122]
<6>[ 3607.738611] [adsp.c:handle_adsp_rtos_mtoa_app] module AUDPPTASK: READY
<6>[ 3607.740329] [audpp.c:audpp_dsp_event] ENABLE
<6>[ 3611.529414] [audpp.c:audpp_dsp_event] DISABLE
<6>[ 3611.529611] [audpp.c:audpp_disable] Received CFG_MSG_DISABLE from ADSP
<6>[ 3611.529706] [adsp.c:msm_adsp_disable] disable 'AUDPPTASK'
<6>[ 3611.530736] [adsp.c:msm_adsp_put] closing module AUDPPTASK
<6>[ 3611.530869] [audmgr.c:audmgr_disable] session 0xc07da428
<6>[ 3611.531971] [audmgr.c:audmgr_rpc_thread] rpc_reply status 0
<3>[ 3611.542206] [audmgr.c:process_audmgr_callback] DISABLED
if it helps any.
jellybean dmesg only says rmnet0: no ipv6 routers present
when turning on.
but its logcat...
logcat said:
D/ConnectivityService( 395): setMobileDataEnabled(true)
W/BackupManagerService( 395): dataChanged but no participant pkg='com.android.providers.settings' uid=1001
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/dalvikvm( 395): GC_CONCURRENT freed 1874K, 37% free 13773K/21828K, paused 10ms+18ms, total 175ms
D/DHCP ( 94): ===== DHCP message:
D/DHCP ( 94): op = BOOTREQUEST (1), htype = 1, hlen = 6, hops = 0
D/DHCP ( 94): xid = 0x2b2f0300 secs = 0, flags = 0x8000 optlen = 14
D/DHCP ( 94): ciaddr = 0.0.0.0
D/DHCP ( 94): yiaddr = 0.0.0.0
D/DHCP ( 94): siaddr = 0.0.0.0
D/DHCP ( 94): giaddr = 0.0.0.0
D/DHCP ( 94): chaddr = { fa 46 1b f6 db 9d }
D/DHCP ( 94): sname = ''
D/DHCP ( 94): file = ''
D/DHCP ( 94): op 53 len 1 { 01 } discover
D/DHCP ( 94): op 55 len 4 { 01 03 06 1c }
D/DHCP ( 94): ===== DHCP message:
D/DHCP ( 94): op = BOOTREPLY (2), htype = 1, hlen = 6, hops = 0
D/DHCP ( 94): xid = 0x2b2f0300 secs = 0, flags = 0x8000 optlen = 42
D/DHCP ( 94): ciaddr = 0.0.0.0
D/DHCP ( 94): yiaddr = 25.23.10.101
D/DHCP ( 94): siaddr = 25.23.10.102
D/DHCP ( 94): giaddr = 0.0.0.0
D/DHCP ( 94): chaddr = { fa 46 1b f6 db 9d }
D/DHCP ( 94): sname = ''
D/DHCP ( 94): file = ''
D/DHCP ( 94): op 53 len 1 { 02 } offer
D/DHCP ( 94): op 1 len 4 { ff ff ff fc }
D/DHCP ( 94): op 3 len 4 { 19 17 0a 66 }
D/DHCP ( 94): op 6 len 8 { 44 1d 11 07 44 1d 19 07 }
D/DHCP ( 94): op 51 len 4 { 00 00 1c 20 }
D/DHCP ( 94): op 54 len 4 { 19 17 0a 66 }
D/DHCP ( 94): --- dhcp offer (2) ---
D/DHCP ( 94): ip 25.23.10.101 gw 25.23.10.102 prefixLength 30
D/DHCP ( 94): dns1: 68.29.17.7
D/DHCP ( 94): dns2: 68.29.25.7
D/DHCP ( 94): server 25.23.10.102, lease 7200 seconds
D/DHCP ( 94): ===== DHCP message:
D/DHCP ( 94): op = BOOTREQUEST (1), htype = 1, hlen = 6, hops = 0
D/DHCP ( 94): xid = 0x2c2f0300 secs = 0, flags = 0x8000 optlen = 26
D/DHCP ( 94): ciaddr = 0.0.0.0
D/DHCP ( 94): yiaddr = 0.0.0.0
D/DHCP ( 94): siaddr = 0.0.0.0
D/DHCP ( 94): giaddr = 0.0.0.0
D/DHCP ( 94): chaddr = { fa 46 1b f6 db 9d }
D/DHCP ( 94): sname = ''
D/DHCP ( 94): file = ''
D/DHCP ( 94): op 53 len 1 { 03 } request
D/DHCP ( 94): op 55 len 4 { 01 03 06 1c }
D/DHCP ( 94): op 50 len 4 { 19 17 0a 65 }
D/DHCP ( 94): op 54 len 4 { 19 17 0a 66 }
D/DHCP ( 94): ===== DHCP message:
D/DHCP ( 94): op = BOOTREPLY (2), htype = 1, hlen = 6, hops = 0
D/DHCP ( 94): xid = 0x2c2f0300 secs = 0, flags = 0x8000 optlen = 42
D/DHCP ( 94): ciaddr = 0.0.0.0
D/DHCP ( 94): yiaddr = 25.23.10.101
D/DHCP ( 94): siaddr = 25.23.10.102
D/DHCP ( 94): giaddr = 0.0.0.0
D/DHCP ( 94): chaddr = { fa 46 1b f6 db 9d }
D/DHCP ( 94): sname = ''
D/DHCP ( 94): file = ''
D/DHCP ( 94): op 53 len 1 { 05 } ack
D/DHCP ( 94): op 1 len 4 { ff ff ff fc }
D/DHCP ( 94): op 3 len 4 { 19 17 0a 66 }
D/DHCP ( 94): op 6 len 8 { 44 1d 11 07 44 1d 19 07 }
D/DHCP ( 94): op 54 len 4 { 19 17 0a 66 }
D/DHCP ( 94): op 51 len 4 { 00 00 1c 20 }
D/DHCP ( 94): --- dhcp ack (5) ---
D/DHCP ( 94): ip 25.23.10.101 gw 25.23.10.102 prefixLength 30
D/DHCP ( 94): dns1: 68.29.17.7
D/DHCP ( 94): dns2: 68.29.25.7
D/DHCP ( 94): server 25.23.10.102, lease 7200 seconds
D/DHCP ( 94): configuring rmnet0
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/ConnectivityService( 395): ConnectivityChange for mobile: CONNECTED/CONNECTED
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/TelephonyManager( 570): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/Tethering( 395): MasterInitialState.processMessage what=3
D/TelephonyProvider( 570): Preferred APN: -1
D/GCM ( 850): GcmService start Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x8000010 cmp=com.google.android.gms/.gcm.GcmService (has extras) } android.net.conn.CONNECTIVITY_CHANGE
D/PicasaUploaderSyncManager( 1361): active network: NetworkInfo: type: mobile[CDMA - 1xRTT], state: CONNECTED/CONNECTED, reason: dataEnabled, extra: , roaming: false, failover: false, isAvailable: true
I/GTalkService/c( 850): [AndroidEndpoint@1090761168] connect: acct=1000000, state=CONNECTING
I/GTalkService/c( 850): [GTalkConnection@1093209624] connect: acct=1, state=CONNECTING
D/dalvikvm( 850): GC_CONCURRENT freed 397K, 60% free 3172K/7924K, paused 6ms+6ms, total 78ms
D/ConnectivityService( 395): handleInetConditionHoldEnd: net=0, condition=100, published condition=0
D/dalvikvm( 475): GC_CONCURRENT freed 907K, 34% free 5247K/7924K, paused 17ms+12ms, total 133ms
when it connects.
connectivity service and telephony manager look the big participants not playing nice in kitkat.
 
Last edited:
I thought that might be the case, I believe the squidkernel sets the buttons correctly for Virgin phones not Sprint. I'll see about putting up a fix for that.

There is enough room for gapps. If you do want to trim the rom a little further, take out PrintSpooler.apk and QuickSearchBox.apk before you flash. Your /system capacity should be about 165 mb, here's the output of df command on my VM670:

Okay, I downloaded the new stuff, and will try it that way. But...as for the two APKs you mentioned...where the heck are those? I've looked in both the "app" & "priv-app" folders in the rom, and I don't see'em in either of those...
 
Okay, I downloaded the new stuff, and will try it that way. But...as for the two APKs you mentioned...where the heck are those? I've looked in both the "app" & "priv-app" folders in the rom, and I don't see'em in either of those...
Never mind, I must have already deleted them from that rom.
 
dmesg sez, whether trying to enable or disable mobile data,

if it helps any.
jellybean dmesg only says rmnet0: no ipv6 routers present
when turning on.
but its logcat...

when it connects.
connectivity service and telephony manager look the big participants not playing nice in kitkat.

can you do an adb shell on kitkat, then run 'netcfg' with mobile data turned on? I'm interested in whether the line with rmnet0 says UP or DOWN and whether it shows an ip address. Also if rmnet0 shows DOWN try 'netcfg rmnet0 dhcp' (it may take a couple minutes to return).
 
Last edited:
Ok thanks for the info. I forgot to include in my previous post if this would help with the limited system partition space: http://androidforums.com/optimus-gt...600-easily-resize-system-data-partitions.html as this should allow you to resize it and I believe use space on the sdcard to give it more room. If so then you would be able to install the full gapps with no issues.
That would definitely help, we talked about this previously. I may upload a larger rom at some point for whoever wants to try this. If we can get some kind of link2sd script working we could take space from data and give it to system since all the apps would be going to sd-ext. But it looks like bigsupersquid's approach is going to work fine. We'll probably end up with several options for getting a full install.
 

Trending Posts

Forum statistics

Threads
956,921
Messages
6,970,620
Members
3,163,652
Latest member
pns11