Compiling Slimrom 6 for the Samsung Galaxy S4 T-mobile (JFLTETMO SGH-M919)

Today I started work on compiling Slimrom 6 for the Samsung Galaxy S4 T-mobile (JFLTETMO SGH-M919). There currently isn’t an up to date branch for the JFLTETMO phone in the Slimrom repository, so my chances of success may be slim (pun intended). However, it has to start somewhere, so I figure I might as well start with the latest branch of JFLTETMO, which is from lp5.1, and see if I can update it for mm6.0. The first thing I need is the device specific files.

[CODE]
alaskalinuxuser@alaskalinuxuser-HP-Compaq-6715b-FY288UC-ABA:~/Documents/projects/phones/compile/slimroms6$ breakfast
including vendor/slim/vendorsetup.sh

You’re building on Linux

Breakfast menu… pick a combo:
(—EDITED FOR SPACE—)
46. slim_jfltetmo-userdebug 97. slim_vs985-userdebug
(—EDITED FOR SPACE—)
… and don’t forget the bacon!

Which would you like? [aosp_arm-eng] 46
build/core/product_config.mk:234: *** Can not locate config makefile for product “slim_jfltetmo”. Stop.
Device jfltetmo not found. Attempting to retrieve device repository from SlimRoms Github (http://github.com/SlimRoms).
Found repository: device_samsung_jfltetmo
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r43
Default revision android-6.0.1_r43 not found in device_samsung_jfltetmo. Bailing.
Branches found:
jb4.2
jb4.3
kk4.4
lp5.0
lp5.1
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:234: *** Can not locate config makefile for product “slim_jfltetmo”. Stop.

** Don’t have a product spec for: ‘slim_jfltetmo’
** Do you have the right repo manifest?
[/CODE]

As we can see here, the problem is that the specified device does not have a github branch that is the correct branch. In this case, it is looking for a branch named mm6.0, but it would possibly take a branch named android-6.0.1_r43. The repo command then lists the available branches. The latest branch available for this github repository of this device is lp5.1.

Now the question is what do we do about it? Well, we have several options, but one that I decided to explore today was to use the ROOMSERVICE_BRANCHES variable and choose another branch, as we see here:

[CODE]
alaskalinuxuser@alaskalinuxuser-HP-Compaq-6715b-FY288UC-ABA:~/Documents/projects/phones/compile/slimroms6$ export ROOMSERVICE_BRANCHES=lp5.1
alaskalinuxuser@alaskalinuxuser-HP-Compaq-6715b-FY288UC-ABA:~/Documents/projects/phones/compile/slimroms6$ breakfast
including vendor/slim/vendorsetup.sh

You’re building on Linux

Breakfast menu… pick a combo:
(—EDITED FOR SPACE—)
46. slim_jfltetmo-userdebug 97. slim_vs985-userdebug
(—EDITED FOR SPACE—)
… and don’t forget the bacon!

Which would you like? [aosp_arm-eng] 46
build/core/product_config.mk:234: *** Can not locate config makefile for product “slim_jfltetmo”. Stop.
Device jfltetmo not found. Attempting to retrieve device repository from SlimRoms Github (http://github.com/SlimRoms).
Found repository: device_samsung_jfltetmo
Checking branch info
Calculated revision: mm6.0
Default revision: android-6.0.1_r43
Using fallback branch: lp5.1
Adding dependency: SlimRoms/device_samsung_jfltetmo -> device/samsung/jfltetmo
Using branch lp5.1 for SlimRoms/device_samsung_jfltetmo
Syncing repository to retrieve project.
Fetching project SlimRoms/device_samsung_jfltetmo
remote: Counting objects: 81, done.
remote: Total 81 (delta 0), reused 0 (delta 0), pack-reused 81
From git://github.com/SlimRoms/device_samsung_jfltetmo
* [new branch] jb4.2 -> github/jb4.2
* [new branch] jb4.3 -> github/jb4.3
* [new branch] kk4.4 -> github/kk4.4
* [new branch] lp5.0 -> github/lp5.0
* [new branch] lp5.1 -> github/lp5.1
Fetching projects: 100% (1/1), done.

Repository synced!
Looking for dependencies
Adding dependencies to manifest
Adding dependency: SlimRoms/device_samsung_qcom-common -> device/samsung/qcom-common
Adding dependency: SlimRoms/hardware_samsung -> hardware/samsung
Adding dependency: SlimRoms/device_samsung_jf-common -> device/samsung/jf-common
Adding dependency: CyanogenMod/android_kernel_samsung_jf -> kernel/samsung/jf
Syncing dependencies
Fetching project Slim
[/CODE]

As you can see, it worked to download the older branch. This does not mean, however, that the build will be successfull or work when done by using this older branch. It simply allows you to sync something that was not on the default branch. This tool is pretty handy if you want to try other branches of something without editing your roomservice files, or as in this case, older branches that need updating to a newer branch for testing purposes.

Linux – Keep it simple.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s