atomilluminati
Well-Known Member
How do you make a device repo? What OS do you need? Anyone know of a detailed outline on how to do this? Any help is appreciated thanks....
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
A device repo is essentially the proprietary device files in the bin, lib and etc folders from the phone. The libs are the software that tell the OS how to interact with the hardware. This one is easy to set up, because it's just a dump of those folders into your Linux client for compilation.
Here's an example: https://github.com/koush/proprietary_vendor_lge/tree/gingerbread/p990
Then, you've got an actual 'device' folder, which is what's important, because it contains the 'make' files, which tell Linux how to build Cyanogenmod and where to copy files from/to. Here's an example of one for the Nitro: https://github.com/CyanogenMod/android_device_lge_p930
Google has this info for setting up a repo and has instructions on how to pull prop files from your phone with ADB (I just zipped in root browser and moved to my computer): Downloading the Source Tree | Android Open Source
You need Linux, but I used Ubuntu 12 on a VMWare install within Windows; it's a more 'windows-esq' experience of Linux. To do this, you're going to need a hefty machine... I've got 4gb ram and a quad core i5, so I could do it, but you need at least 2gb ram to compile at a good rate and you don't want to assign all your RAM to the VM box, so keep that in mind.
Generally, device repos are cloned off similar devices (the D2 was cloned off the DX, which was cloned off the D1, etc), so I cloned the P930, since it's the closest to our device.
The issue is our lib files are named TOTALLY DIFFERENT than any other LG device. This doesn't seem like a big deal, but you have to remember the 'make' files contain the lib file names and those lib files are what ensure the hardware works with the software. So when a lib file is called 'libvvzzbb' in the P930, I have to find the exact lib file in the VS920 folder that does the exact same thing. I was able to get about 20 or so lib files updated in the cloned 'make' files, because they were small changes, like 'p930' to 'bryce2', but there were some, like the video-related that have names like 'libvvxxzzfh' and frankly, I don't know WTF any of them do.
And there's the problem and why we don't have CM7, AOSP or the workings of CM9. To get past that issue, there need to be people that know what these libs do and/or spend hours/days hammering away to update the code to get it to compile right. I got CM7 to boot, but nothing would display past a gray screen, so I'm out... it's above my pay-grade... I studied law in school, not programming. lol
It's calling on other mk/make files.$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
# The gps config appropriate for this device
$(call inherit-product, device/common/gps/gps_us_supl.mk)
$(call inherit-product-if-exists, vendor/lge/p930/p930-vendor.mk)
PRODUCT_TAGS += dalvik.gc.type-precise
$(call inherit-product, frameworks/base/build/phone-xhdpi-1024-dalvik-heap.mk)
It also calls for pulling/copying files necessary to the operation of the OS on the phone. When we clone, we have to update ALL of these files to the specific device. On Motorola, that's easy... the files are generally named the same thing, with only differences being device-specific things like 'd2' or 'dx'... that's not the case with the Spectrum.PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.iprj.rc:root/init.iprj.rc \
$(LOCAL_PATH)/ueventd.iprj.rc:root/ueventd.iprj.rc
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.iprj.usb.rc:root/init.iprj.usb.rc \
$(LOCAL_PATH)/prebuilt/boot_logo_00000.rle:root/bootimages/boot_logo_00000.rle \
$(LOCAL_PATH)/prebuilt/init.qcom.sh:root/init.qcom.sh \
$(LOCAL_PATH)/prebuilt/init.qcom.post_boot.sh:system/etc/init.qcom.post_boot.sh \
$(LOCAL_PATH)/prebuilt/init.qcom.modem_links.sh:system/etc/init.qcom.modem_links.sh \
$(LOCAL_PATH)/prebuilt/init.qcom.mdm_links.sh:system/etc/init.qcom.mdm_links.sh
## Configs
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/config/atcmd_virtual_kbd.kl:system/usr/keylayout/atcmd_virtual_kbd.kl \
$(LOCAL_PATH)/config/ffa-keypad_qwerty.kl:system/usr/keylayout/ffa-keypad_qwerty.kl \
$(LOCAL_PATH)/config/i_atnt-keypad.kl:system/usr/keylayout/i_atnt-keypad.kl \
$(LOCAL_PATH)/config/pmic8058_pwrkey.kl:system/usr/keylayout/pmic8058_pwrkey.kl \
$(LOCAL_PATH)/config/synaptics_ts.kl:system/usr/keylayout/synaptics_ts.kl \
$(LOCAL_PATH)/config/synaptics_ts.idc:system/usr/idc/synaptics_ts.idc \
$(LOCAL_PATH)/config/thermald.conf:system/etc/thermald.conf
Pulling the files isn't the issue (the proprietary folder).... the issue is the 'device' folder, which has the 'make' files: https://github.com/CyanogenMod/android_device_lge_p930
To do that, you'd need to write build code for all the files in that folder, specifically for the VS920. That's why people clone and alter the folders. Because many of the '.mk' files are dependent on one another (they reference each other in the code), it makes for a snowball effect if you screw up the coding on one of them... trust me, I messed up 1 syntax error and the entire build halted.
For example, take a look at p930.mk: https://github.com/CyanogenMod/android_device_lge_p930/blob/ics/p930.mk
It's calling on other mk/make files.
It also calls for pulling/copying files necessary to the operation of the OS on the phone. When we clone, we have to update ALL of these files to the specific device. On Motorola, that's easy... the files are generally named the same thing, with only differences being device-specific things like 'd2' or 'dx'... that's not the case with the Spectrum.
So if you don't clone, you'd have to know what all the files on the phone do for the phone... otherwise, you'd be coding for files that have nothing to do with the function. But cloning and re-coding is just a bear with these LG phones... consistency with phone files would make it easier. It's like they tease us with an unlocked bootloader and make it hard as hell to actually build something else to load! lol
... but I don't mean to discourage. Look at the CM wiki for the LG phones and on that Google link if you want to build a repo and compile. If you have the time, patience and programming know-how, you may very well crack the issue that eluded me.
have you looked at this??
https://github.com/playfulgod/android_device_lge_vs920
That is for cwm recovery.
