[HTC One S] BiteBlaze:
Hello everyone! I am anxiously awaiting jellybean for our phone and I know that many of you are also, so I decided to make this thread and help speed things up :)! I am currently watching my repo sync so I am hard at work developing this for us but other users can work to, so we get it done faster ;). So if you are not on ubuntu 10 or 11, LEAVE because this is likely not going to work for you :(. A few things first: 1. the "$" is an indication of the command, there is one $ before every command and it is already in your terminal so do not type it. 2. You may want to copy and paste commands... 3. This will either not boot or have many bugs, as expected.

There are currently 2 JB roms available, here (by me) and here (by djsubtronic)

GENERAL JELLYBEAN THREAD IS HERE

1) First thing is first, install the required packages:

Open terminal and KEEP IT OPEN FOR ALL OF THIS!!!!!!!!!!!!

$ sudo apt-get install openjdk-6-jdk
$ sudo apt-get install python
$ sudo apt-get install git-core

Next, download the android sdk for linux and extract it to your home directory. Name it "android-sdk" (without the quotes) for simplicity. In you home folder, show the hidden files (hit Ctrl + H). Open the .bashrc file in the text editor. Add the following lines at the bottom (end) of it:

# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin

Save it and then go back to the home folder. Edit the .profile file and add this to the end:

PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"

You now have the sdk installed. In your terminal, enter:

$ cd android-sdk
$ android

When the sdk manager pops up, download platform-tools, and update the tools folder if needed.

If it does not pop up, try one the following 3 commands and see if it does:

$ cd tools
$ android

Or

$ cd platfrom-tools
$ android

$ cd
$ android

And if none of those bring up the manager, close your terminal window. Then open terminal and type:

$ android

MORE FILES?!?!?! Yes.

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Finally! Past the downloads (for now... wait for the repo sync:rolleyes:)

2) Configure the usb:

$ gksudo gedit /etc/udev/rules.d/51-android.rules

In the blank text field, paste the following:

#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"

#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666"

#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"

#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"

#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"

#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"

#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"

#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"

#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"

#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"

#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"

#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"

#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"

#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"

#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"

#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"

#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"

#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"

#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"

#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"

#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"

#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"

#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"

#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"

#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"

#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"

#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"

#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"

Save the new text file and close it. Enter this command in your terminal window:

$ sudo chmod a+r /etc/udev/rules.d/51-android.rules

3) Installing the repo:

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

4) Initialize (init) the repo:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r1

or, if you want to do CM10, replace the last line (repo init -u blahblahblah) with:

$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean

4.5) If you already have the repo initialized and all of the above done, and are just starting over, do this:

$ cd WORKING_DIRECTORY
$ repo init -b android-4.1.1_r1
$ repo sync

Don't do it if you are starting new.

5) Sync the needed files (repo)

$ repo sync -j1

When it asks, enter your REAL name and email

6) Compile:

$ source build/envsetup.sh

or

$ . build/envsetup.sh

7) Who's hungry?

$ lunch

Seriously, you have to!

8) Adding HTC One S (ville) to the list

$ cd WORKING_DIRECTORY/device
$ mkdir htc
$ cd htc

9) I have no name for this (github sync ;))

$ git clone git://github.com/intervigilium/android_device_htc_ville.git -b jellybean-ril ville

or

$ git clone git://github.com/intervigilium/android_device_htc_ville.git -b jellybean ville

10) Navigate to "ville"

$ cd ville

11) Connect your HTC One S to the computer and verify that adb is working (usb debugging) and once that is verified do this:

$ ./extract-files.sh

You can disconnect after this is done.

11.5) Every .cpp file in device/htc/ville/libsensors needs these lines to be added after the #includes section:

#define LOGE
#define LOGE_IF

The following lines must be added to /device/htc/ville/liblights/lights.c after the #includes section:

#define LOGE
#define LOGE_IF
#define LOGV

(Thanks to djsubtronic for this step!)

12) Time to build!

$ cd ~/WORKING_DIRECTORY

then:

$ source build/envsetup.sh

or

$ . build/envsetup.sh

13) Verify the ville is there:

$ lunch

14) Choose from the list

15) Compile!

The # stand for the number of cores plus one (Example: my VAIO has 2 cores so I do -j3, if it were quad core I would do -j5)

$ make -j#

Flashable zip command (instead of above command):

$ make -j# otapackage

Thanks to dastin1015 for this (Look at it for a general build): http://xdaforums.com/showthread.php?t=1762641

Thanks to everyone with a ville github account!

Post your results in this thread. Also, ask questions here too!

If I have done something wrong, just tell me politely what it is and I will fix it. It is late here and this is a long thread so there is likely at least one mistake. Thanks!

ERRORS AND FIXES:

build/core/product_config.mk:205: *** No matches for product "device_ville". Stop.

** Don't have a product spec for: 'device_ville'
** Do you have the right repo manifest?

Add this:

PRODUCT_NAME := device_ville
PRODUCT_DEVICE := ville
PRODUCT_BRAND := Android
PRODUCT_MODEL := Full Android on ville

to the bottom (end) of device_ville.mk

Ville does not show up in lunch menu? Make the file "vendorsetup.sh". Edit it and add this:

add_lunch_combo device_ville-userdebug