[I9505] Ubuntu Touch Development - Galaxy S 4 Developer Discussion [Developers-Only]

Ok guys, starting this theard also to find other devs that also are working on porting ubuntu touch to the same device and buildup a team, anyone interested?
So my 1st try was when CM wasn't final release and got stuck at boot, i could connect with adb, but i only got displayed ubuntu and kernel version, and only a few commands worked, this is my 2nd try, so let's hope it will work better this time, also i will put my work on github.
24.NOV.2013:
-Having issues with libstagefright: http://pastebin.com/C8cuCAYA

Not much at rom porting but I'm a strictly linux only user and will help anyway I can. Send me a pm or post where your git is.
Sent from my GT-I9505 using xda app-developers

JustSueMe said:
Not much at rom porting but I'm a strictly linux only user and will help anyway I can. Send me a pm or post where your git is.
Sent from my GT-I9505 using xda app-developers
Click to expand...
Click to collapse
Nice to have people interested in this project, I will get GIT up when I will have it running 1st 13.10 since its stable.

nyl said:
Nice to have people interested in this project, I will get GIT up when I will have it running 1st 13.10 since its stable.
Click to expand...
Click to collapse
Nice I have a dev build env for ubuntu touch but unsure how to pull repo for unknown device. But if u get a build that boots I'm more than eager to work on it
Sent from my GT-I9505 using xda app-developers app

I've tried a few times to get it going for the M919 but each time I can't get past the Samsung Splash screen. I wasn't even able to connect via adb. Granted, I don't exactly know what I'm doing, but I do have a build environment set up and do have a little experience building and debugging builds. I should have time to tinker with it again in a few weeks.

ubuntu build
nyl said:
Nice to have people interested in this project, I will get GIT up when I will have it running 1st 13.10 since its stable.
Click to expand...
Click to collapse
i have a build enviroment made up and pulled repos ect.. i just need to work a few things out before im ready to test it and post on here, if you can point in right direction (if yours boots)
need to do the audio part but can boot without sound in the alpha
neeed to add in apparmor later, can be done later ubuntu should boot without it
brightness, i dont think it matters so much as booting up is priority but i dont seem to have file it wants me to change "device/[manufacturer]/[codename]/init.[codename].rc"
problem with the way fstab has to be setup
within my android source my fstab is "void.fstab" which has lines that look like :
dev_mount sdcard /storage/sdcard1 auto /devices/platform/msm_sdcc.4/mmc_host/mmc2/ /devices/platform/msm_sdcc.2/mmc_host/mmc2/
ubuntu port guide for fstab asks to find a filename like "fstab.jfltexx" and have lines that look like:
/dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs ext4 nosuid,nodev,barrier=1
help with fstab will be much appreciated.
then ill make my build ready for testing/debugging + suppose ill upload files output files for others that are interested to use

Try this
Code:
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1,errors=panic wait
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,journal_async_commit wait,check
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,journal_async_commit,noauto_da_alloc,errors=panic wait,check,encryptable=footer,length=-16384
# recovery
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults recoveryonly
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults recoveryonly
# vold managed volumes
/devices/platform/msm_sdcc.2/mmc_host/mmc2 auto auto defaults voldmanaged=sdcard1:auto
/devices/platform/msm_hsusb_host/usb auto auto defaults voldmanaged=sda:auto

Yes I used part of that, problem now is compile errors, I have fixed a lot of them which involved discarding some features for the time being.
Boot is the main priority though
Im stuck on a compile errors for shared library, ill attempt this one after I've slept.
Hope fully this is the last error, then ill have a .zip to upload .

Thats some great news ^^
What is the rom size?
Sent from my GT-I9505 using XDA Premium 4 mobile app

coolnessQ said:
Thats some great news ^^
What is the rom size?
Sent from my GT-I9505 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Erm i haven't got a system to flash yet, possibly I could try just getting a boot.img and flashing a ubuntu filesystem but the system modified will be needed to boot fully, in theory I'd only get a shell. I did have a boot.img [seemed to have misplaced it :s , comes out at 7.3mb]
When I've got more time I will go bk to source code and try work out how to solve the errors so I can have boot.img and system.img.
If anyone else is working on this, share problems and solutions With me ti help further the progress.

JustSueMe said:
Erm i haven't got a system to flash yet, possibly I could try just getting a boot.img and flashing a ubuntu filesystem but the system modified will be needed to boot fully, in theory I'd only get a shell. I did have a boot.img [seemed to have misplaced it :s , comes out at 7.3mb]
When I've got more time I will go bk to source code and try work out how to solve the errors so I can have boot.img and system.img.
If anyone else is working on this, share problems and solutions With me ti help further the progress.
Click to expand...
Click to collapse
are you unsing tw stock sources for the kernel? with 7.3mb it almost looks like that.
I have tried porting it before and here is my advise, you really have to look at the errors that it gives you during compiling rather then skipping it, or ignoring it, this is the only way you will get it decently working. the rom itself is only around 100mb if i remember correctly. the ubuntu package is like 400mb on top, but thats all proprietary files so universal.

Im using ubuntu tool.
So sources come from cyanogen's clone with modifications (if thats correct)
Yes I have been fixing errors hence no nfc support, but atm it's a problem with libstagefright [hardware video decoder] I was advised to remove it as not needed to make 1st boot but seems to be hardcoded in there
$ grep -r -H "stagefright" *

JustSueMe said:
Im using ubuntu tool.
So sources come from cyanogen's clone with modifications (if thats correct)
Yes I have been fixing errors hence no nfc support, but atm it's a problem with libstagefright [hardware video decoder] I was advised to remove it as not needed to make 1st boot but seems to be hardcoded in there
$ grep -r -H "stagefright" *
Click to expand...
Click to collapse
Here is the reference :good:
Code:
[email protected] /media/broodplank/linuxdatanew/AOSP-KK/device/samsung $ grep -r 'stagefright' .
./qcom-common/qcom-common.mk: libstagefrighthw \
also if you need clean sources for some particular things just use my repos from AOSP 4.3 (https://github.com/aosp-s4). it only includes the needed commits for jf devices only. way less filled with potential compile breakers like the source of cm.

broodplank1337 said:
Here is the reference :good:
Code:
[email protected] /media/broodplank/linuxdatanew/AOSP-KK/device/samsung $ grep -r 'stagefright' .
./qcom-common/qcom-common.mk: libstagefrighthw \
also if you need clean sources for some particular things just use my repos from AOSP 4.3 (https://github.com/aosp-s4). it only includes the needed commits for jf devices only. way less filled with potential compile breakers like the source of cm.
Click to expand...
Click to collapse
Ah I see this seems to of cleared it up abit for me, im busy today but may get look in at code, if not then tomorrow and clean it up abit and try recompile.
If it looks like a lost cause ill jump over to your git and pull that repo.
Fingers crossed
Sent from my GT-I9505 using xda app-developers app

commit to github so we can all take a look at it

.
..

You need to copy some header files for libstagefright to compile:
cp hardware/qcom/media/mm-core/inc/QCMediaDefs.h frameworks/av/media/libstagefright/
cp hardware/qcom/media/mm-core/inc/QCMetaData.h frameworks/av/media/libstagefright/
cp hardware/qcom/media/mm-
core/inc/QOMX_AudioExtensions.h frameworks/av/media/libstagefright/
cp hardware/qcom/media/mm-core/inc/OMX_QCOMExtns.h frameworks/av/media/libstagefright/
cp hardware/qcom/media/mm-core/inc/QCMediaDefs.h frameworks/av/media/libmediaplayerservice
My cm compiled but it wont boot (after flashing .zip and ubuntu system)

hmm.. did you remove all unecessary APPS? that are only needed by android not ubuntu touch? at you it seems relating to mounting points, something in your source doesn't let the kernel mount the partitions, maybe find a different approach to mount and add it to the source tree.
http://e2fsprogs.sourceforge.net/

everyone with interest in using ubuntu
if your interested in ubuntu touch on jfltexx and want to help
your now in luck
go here http://forum.xda-developers.com/showthread.php?p=48344910#post48344910
there is the download links and a few fixes for connectivity

Here is the link to the AT&T/Tmobile rom download : http://www.androidfilehost.com/?fid=23252070760974893'
Here is the link to the how to site (now instead of the phablet download use the one above) : http://forum.xda-developers.com/showthread.php?t=2564187
Oh and you need to flash the lokidoki zip file if used for AT&T.
Had it working perfectly, it is in extreme alpha, I had the wifi working and sound only works when plugged into headphones.
This should be more than enough to get the rom started up and getting a nice UT running shortly where everything works :3
I am not responsible for whatever happens to you or your device before, during, or after this. :3

Related

[DEV] Gb first pre-alpha porting

After too many work's and to many white night GB now working, off course there's no GSM waitin to Rebellos and Oleg work's on. Thank's for them to make this possible.
First Picture :
This ddms because S8530 no lcd then S8500 can use it with LCD view.
Update :
First pre-alpha SD
Work : Touch screen, Screen rotate...
Don't work : Wifi, Audio, all key...
I9000 factroyfs XJVO, initramfs XJVP full with modification!!!
Kernel GB some modif but not necessary, dont remember now
Just to clarify, all the work is mine except the kernel which is Rebellos and Oleg, I had no choice to use the kernel in order to work on porting Gb. But it will be confidentially.
Very very nice
Cant wait for LCD drivers to get ready.. badly want to play with android even if there are countless things left to fix
suggest not calling it "release" because it's certainly not rename thread?
maybe *MAYBE* pre-alpha release once it's shown on a phone with working display - S8530 has slightly different sdcard interface apparently... i've not been able to mount anything yet on my S8500, well done getting platform to start on S8530.
nbates66 said:
suggest not calling it "release" because it's certainly not rename thread?
maybe *MAYBE* pre-alpha release once it's shown on a phone with working display - S8530 has slightly different sdcard interface apparently... i've not been able to mount anything yet on my S8500, well done getting platform to start on S8530.
Click to expand...
Click to collapse
Its some corrupt with disk_policy i disabled it. there's maybe difference but im not sure. Send you later script you will see. For now some little issue with touch screen.
Very well done my friend ^^
Tigrouzen said:
After too many work's and to many white night GB now working, off course there's no GSM waitin to Rebellos and Oleg work's on. Thank's for them to make this possible.
Click to expand...
Click to collapse
Thumbs Up! I just finished my GB kernel compile, (but I replaced the init with the old one in the intramfs - I need my Bada, too ) but I can not test it until later this afternoon or evening... I'm on S8500 ...
Which version of OS did you used?
i've had disk policy disabled in all my builds as well, trying another variation now after redoing my filesystem though, Tigrouhzen are you able to mount moviNAND as well yet?
Gud start ..
this GB port can work on S8500 right ? the s-AMOLED drivers are already ready with the devs unlike the wave II i believe..
so this Gingerbread port will display on the wave S8500 Screen?
nbates66 said:
i've had disk policy disabled in all my builds as well, trying another variation now after redoing my filesystem though, Tigrouhzen are you able to mount moviNAND as well yet?
Click to expand...
Click to collapse
Yes verry wel mounted all partition.
anghelyi said:
Thumbs Up! I just finished my GB kernel compile, (but I replaced the init with the old one in the intramfs - I need my Bada, too ) but I can not test it until later this afternoon or evening... I'm on S8500 ...
Which version of OS did you used?
Click to expand...
Click to collapse
OK, it boots here, too, to some extent: I can see the boot logo, but I haven't provided a filesystem to it so it reboots after a while... But my Bada is intact so later I'll try to mount the filesystem, too!
anghelyi said:
OK, it boots here, too, to some extent: I can see the boot logo, but I haven't provided a filesystem to it so it reboots after a while... But my Bada is intact so later I'll try to mount the filesystem, too!
Click to expand...
Click to collapse
Because its on initramfs. If you want your bada intact dont forget disabled disk_policy. I use Gb init full from i9000. The big hardly its you need to change script and some script on system also, and make right symlink then ive got problem with symlink doesnt make any link then i make on my initramfs a link, like mount ext2 /dev/block/mmcblk1p2 /sd2 ln -s /sd2/system /system....etc...
I go to sleep some good night !!!
Edit: nbates66 ive got a real all scripts, booting in sd version froyo then adb pull /*.rc
i've been able to get gb kernel to execute for a while but no filesystems yet, anyways, for filesystems you make, ensure you configure the toolbox symlinks, this will help ensure all services work correctly later on:
http://dl.dropbox.com/u/55049485/gb_binsymlinks.sh
(the files are slightly different to in froyo apparently, but same thing is done)
hmmm current sources less functional for me compared to the ones a few days ago, with this kernel source set i cannot get adb to work(worked on gb build a few days ago), still no filesystem mounts working on S8500 as far as i can tell either (yes, symlink method doesn't work either)
Tigrouzen said:
Because its on initramfs. If you want your bada intact dont forget disabled disk_policy. I use Gb init full from i9000. The big hardly its you need to change script and some script on system also, and make right symlink then ive got problem with symlink doesnt make any link then i make on my initramfs a link, like mount ext2 /dev/block/mmcblk1p2 /sd2 ln -s /sd2/system /system....etc...
I go to sleep some good night !!!
Edit: nbates66 ive got a real all scripts, booting in sd version froyo then adb pull /*.rc
Click to expand...
Click to collapse
It's no news for me to change the scripts, played a lot with that in Froyo But as I see the apply_disk_policy is commented out in the latest init.rc...
nbates66: with disabled disk policy is it safe for Bada to use the original init ? (oh, man, I checked the script you provided... I remember doing the same by hand some months ago )
anghelyi said:
nbates66: with disabled disk policy is it safe for Bada to use the original init ?
Click to expand...
Click to collapse
which one? If you mean the init here: http://code.google.com/p/badadroid-kernel/source/list
then yes and haven't corrupted my bada for 2 weeks! Haven't tried using the froyo init on Gingerbread kernel since a while ago though(gingerbread requires ueventd).
nbates66 said:
which one? If you mean the init here: http://code.google.com/p/badadroid-kernel/source/list
then yes and haven't corrupted my bada for 2 weeks! Haven't tried using the froyo init on Gingerbread kernel since a while ago though(gingerbread requires ueventd).
Click to expand...
Click to collapse
Was it with the latest one? As Rebellos replaced the initramfs completly!
yes i just tried two kernels with that init executable from latest file push, my bada OS is intact just i can't do anything with the kernels without adb or device mounting capability
nbates66 said:
yes i just tried two kernels with that init executable from latest file push, my bada OS is intact just i can't do anything with the kernels without adb or device mounting capability
Click to expand...
Click to collapse
Thanks! I'll replace the old one then and later do some tests!
how about getting the old irc port channel up to discuss some results and ideas?
I saw that you wrote that screen rotation works. I was wondering, if you can charge the battery of the phone?
Awesome work, thank you a lot. I will donate next month.
Good work, awsome work indeed,
Just for asking, is this a Cyanogen Mod 7 version of GB for Galaxy S? If it is, then it's awsome work... If it isn't, why you don't pick it up? I have 0 knowledge in this so it can be a noob question, but I am interested in knowing that
Cheers

[TUTORIAL] How To Build CWM From Source

Ok guys, im awful at writing tutorials so i spent the past hour or so looking for the best one, as a few of you have pm'd me asking me to tell you guys how to build recoveries:
First, let's check out the CyanogenMod tree. The CyanogenMod repository contains Clockwork Recovery, which is part of a full Android build.
repo init -u git://github.com/CyanogenMod/android.git -b ics-release
repo sync
make -j4 otatools
Now, use dump_image or dd to dump your recovery or boot image from a running phone and copy it to your computer somewhere.
dump_image boot boot.img
To build Android from source for a new device, you need to set up a board config and its makefiles. This is generally a long and tedious process. Luckily, if you are only building recovery, it is a lot easier. From the root of your Android source directory (assuming you've run envsetup.sh), run the following (substituting names appropriately):
build/tools/device/mkvendor.sh device_manufacturer_name device_name /your/path/to/the/boot.img
You will receive the confirmation "Done!" if everything worked. The mkvendor.sh script will also have created the following directory in your Android source tree:
manufacturer_name/device_name
Now, type the following:
lunch full_device_name-eng
This will set the build system up to build for your new device. Open up the directory in a file explorer or IDE. You should have the following files: AndroidBoard.mk, AndroidProducts.mk, BoardConfig.mk, device_.mk, kernel, system.prop, recovery.fstab, and vendorsetup.sh.
The two files you are interested in are recovery.fstab and kernel. The kernel in that directory is the stock one that was extracted from the boot.img that was provided earlier. For the most part, recovery.fstab will work on most devices that have mtd, emmc, or otherwise named partitions. But if not, recovery.fstab will need to be tweaked to support mounts and their mount points. For example, if your /sdcard mount is /dev/block/mmcblk1p1, you would need the following lines in your BoardConfig.mk:
/sdcard vfat /dev/block/mmcblk1p1
Once the recovery.fstab has been properly setup, you can build the recovery using:
make -j4 recoveryimage
Your recovery can then be found at $OUT/recovery.img. If you are in need of building a fakeflash recovery, you will need to run the following to create the update.zip that hot replaces the recovery:
make -j4 recoveryzip
Once this is done, build, and tested, notify me, "koush", on Github and I can build official releases and add ROM Manager support!
Tip: Run "make clobber" between builds if you change the BoardConfig.mk, or the change will not get picked up.
Credits to Koush and his tutorial here
Hey Lloir was just checking your guide (I'm from the X8 scene). The funniest bit was "Notify...me, "koush"". I guess it's a typo. Anyways good guide.
I think you guys should look into getting Lloir a dev Desire X, he could do a lot more for you guys if he actually had the device
He has done some great work on the One V, including porting both CM9 and CM10, and he could do the same over here for you guys. I'm just dropping by to say that I vouch for Lloir He also has his own ROM in the works
Hopefully you can snag one of these devices soon Lloir, its always nice to get a fun device to play around on and to develop CM for
thanks for that endorsement Rohan, didn't expect that at all..
Lloir said:
thanks for that endorsement Rohan, didn't expect that at all..
Click to expand...
Click to collapse
I tried to compile a CWM based on gingerbread to get the earlier version of nandroid backups, but I just can't get it to work. Props and thanks again for making a CWM 6 for us, without it, we'd be nowhere
Thanks
Hi,
I managed to successfully built CWM using your guide.
It kinda works but i did not adjust recovery.fstab so i get errors saying failed to find cache partition to mount at /cache and some related to recovery.log.
Anyways, have you found the reason for the graphical glitch yet??
Thanks for the guide, it helped me to get started.
Got CWM working (still testing) for my rk3066 based tablet.
One thing I could not figure out - what to does one need to put into recovery.fstab to be able to mount a USB stick from CWM?
hi
Jin^eLD said:
Thanks for the guide, it helped me to get started.
Got CWM working (still testing) for my rk3066 based tablet.
One thing I could not figure out - what to does one need to put into recovery.fstab to be able to mount a USB stick from CWM?
Click to expand...
Click to collapse
On github, find a device tree with similar setup (a similar tab with option for mounting sd card) and use its fstab as reference. You'll also need to add BOARD_LUN_PATH or TARGET_LUN_FILE_PATH or something like that in the BoardConfig.mk of your device to make USB mounting work. Hope it helps.
Regards
Yasir
Yasir Javed Ansari said:
On github, find a device tree with similar setup (a similar tab with option for mounting sd card) and use its fstab as reference. You'll also need to add BOARD_LUN_PATH or TARGET_LUN_FILE_PATH or something like that in the BoardConfig.mk of your device to make USB mounting work. Hope it helps.
Regards
Yasir
Click to expand...
Click to collapse
Yasir, that was one of the things I noticed about the CM9 boardconfig : the paths you just mentioned need fixing
yes, i fixed it, then broke it again.... now figuring out what broke it
any ideea how i can build a touch recovery?
---------- Post added at 03:13 PM ---------- Previous post was at 03:11 PM ----------
neXus PRIME said:
Hi,
I managed to successfully built CWM using your guide.
It kinda works but i did not adjust recovery.fstab so i get errors saying failed to find cache partition to mount at /cache and some related to recovery.log.
Anyways, have you found the reason for the graphical glitch yet??
Click to expand...
Click to collapse
it it cannot find cache partition, the fstab is not correct
for the graphics, what are the bugs?
dany547 said:
any ideea how i can build a touch recovery?
---------- Post added at 03:13 PM ---------- Previous post was at 03:11 PM ----------
it it cannot find cache partition, the fstab is not correct
for the graphics, what are the bugs?
Click to expand...
Click to collapse
The method lloir posted is from koush, it needs some tweaking to work properly. Are you interested in building one yourself?
Compile from a new device
Hello,
I have a BLU Dash 3.5 and would like to build recovery.
I followed the steps in the guide and compilation errors did not return put the recovery did not work. The phone connects but gets the BLU logo on the screen.
The ADB recognizes the device.
The / system / data / cache / sdcard and / sd-ext is mounted correctly.
but the phone's screen does not pass soon.
I noticed that the ROM Manager can make and restore backups normally.
What am I doing wrong?
dump_image
i tried dump_image of boot boot terminal emulator says dump_image not found... i m running jelly bean 4.1.2 Samsung gt-s5282

[Q] Making android kernel compatible with ubuntu?

Hello.
I noticed that kernels for ubuntu seem a bit old. I was thinking that maybe someone could modify cm10(or 3.0.21) kernel to support ubuntu/teach me how to add ubuntu support to android kernel. I did a bit googling, but results were filled with those loop ubuntus, not native.
I am also thankful if someone can point me to right direction.
(Trevd, i am counting on you )
Sent from my GT-I9100 using xda app-developers app
julle131 said:
Hello.
I noticed that kernels for ubuntu seem a bit old. I was thinking that maybe someone could modify cm10(or 3.0.21) kernel to support ubuntu/teach me how to add ubuntu support to android kernel. I did a bit googling, but results were filled with those loop ubuntus, not native.
I am also thankful if someone can point me to right direction.
(Trevd, i am counting on you )
Sent from my GT-I9100 using xda app-developers app
Click to expand...
Click to collapse
Well as seeing as you ask so nicely, I'm far from an expert however especially in the ways of ubuntu kernels, A1Pha got the original ubuntu image going but ubuntu have done an official arm release now so that changes things ( probably ) I can only point you in the direction of more, hopefully better resources.
The Blaze Tablet seems to have have been the Development Platform for the G9 so you'll probably get some purchase from following that route.
Here's some links for you.
http://omappedia.org/wiki/Source_Trees
http://omappedia.org/wiki/OMAP_Ubuntu_Main
My days on the G9 could well be numbered, I foolishly overwrote the bootlloader in one of my more Laissez-faire moments. meh! That's what I get for having a caliver approach to consumer electronics.
trevd said:
Well as seeing as you ask so nicely, I'm far from an expert however especially in the ways of ubuntu kernels, A1Pha got the original ubuntu image going but ubuntu have done an official arm release now so that changes things ( probably ) I can only point you in the direction of more, hopefully better resources.
The Blaze Tablet seems to have have been the Development Platform for the G9 so you'll probably get some purchase from following that route.
Here's some links for you.
http://omappedia.org/wiki/Source_Trees
http://omappedia.org/wiki/OMAP_Ubuntu_Main
My days on the G9 could well be numbered, I foolishly overwrote the bootlloader in one of my more Laissez-faire moments. meh! That's what I get for having a caliver approach to consumer electronics.
Click to expand...
Click to collapse
Thanks for answering. I'm out of thanks for today, so i press that button when i have more.
Now to business.
After doing some research, and asking few questions on #ubuntu-arm, this seems a bit hard project because there are no sources. There is no source for CM10 kernel(Or i can't read the github) nor Ubuntu kernel, so i can't just apply tweaks of them both to archos 3.0.8+ kernel. A way to unpack the zimage from ubuntu kernel and cm10 kernel would help, but atleast the script i tried couldn't unpack the zimage of ubuntu. Lets see what i figure out next.
julle131 said:
After doing some research, and asking few questions on #ubuntu-arm, this seems a bit hard project because there are no sources. There is no source for CM10 kernel(Or i can't read the github) nor Ubuntu kernel, so i can't just apply tweaks of them both to archos 3.0.8+ kernel. A way to unpack the zimage from ubuntu kernel and cm10 kernel would help, but atleast the script i tried couldn't unpack the zimage of ubuntu. Lets see what i figure out next.
Click to expand...
Click to collapse
Not sure what you mean by the CM10 Kernel, I don't think CM have any different settings from what is required by JellyBean itself. Plus the Kernel we originally used for the Archos CM10 is an ICS kernel with IPV6 Mangling adding, we got away with that because the Init.rc used to boot the Rom is a mashed up ICS Version. After thinking about it let me add the bit of knowledge I think I do know.
The kernels on arm platforms, to paraphrase Linus Tovalds was a complete mess, something which Linaro are working hard to fix, and are unique to the SOC vendor.
You need to get the Archos specific sources which are located on GItorious @ git://gitorious.org/archos/archos-gpl-gen9-kernel-ics.git, clone the 3.0.21 branch, in the directory there's a file called linux.config.g9 ( or something similar ). that's the config file. I just copy that to .config, change the settings I need to (if any) compile. That should setup an archos kernel which should run android
Code:
git clone git://gitorious.org/archos/archos-gpl-gen9-kernel-ics.git -b linux-icc-3.0.21
cp linux.config.g9 .config
make menuconfig
make -j8
Like I say I was thinking about it and the main difference between a standard kernel and android kernels is the binder, the switch class support and the log driver ( this is things I've noticed when building an android x86 Kernel )
When doing menuconfig the Android Driver settings are found in devices/staging/android, I suppose a place to start is to turn them off then switch on SYSV IPC ( i think that's in genral kernel settings ), from what I understand this is the sysv binder and should create a node at /dev/binder, standard kernel switch class support is set in Device Drivers ( Switch Class Support ).
I'm not sure about logging , It basically breaks down like this. The Android Kernel has a specific logging driver this creates device node at /dev/log/main /dev/log/system etc , Ubunutu ( on x86 at least ) has a single log device node which is created at /dev/log, I don't know weather this is something created by the kernel or something created in userspace by syslogd or something similar. I also don't know whether the Android Logs are compatible with ubuntu, or the android binder for that matter. I'll try and boot my x86 ubuntu with my Android Kernel later on , I suspect It won't work but speculation is one thing, knowing for sure is better
With regards to unpacking the zImage, I'll say this , Not all zImages are created equal , I notice you are using a samsung mobile ( galaxy s, if I'm not mistaken ) , so you're probably using the samsung zImage as a frame of reference... How I understand it Samsung pack the initramfs into the zImage, similar, but not same to the way android AOSP pack a boot.img. Samsung however do this in kernel itself, this is why Samsung zImage a) can be unpacked and b) require different tools than the standard tools used for unpacking boot images which work on just about every other device ( expect Archos of course ) . So you generally don't unpack zImage because It's just a binary blob that contains all the kernel functions, this is in the assembly language of whatever architecture you built your kernel for.
Given all that info you should now be able to build a working archos android kernel ( I assume you using linux etc and your not stupid ) , You now need the Ubuntu side of things..... Have you asked in the Archos G9 Ubuntu Development thread, they may be able to shed light on the changes to the config you need to make or alternativaly you could download the Ubuntu for Arm OMAP Image from https://wiki.ubuntu.com/ARM/OMAP , unpack/mount it and see if there is the kernel .config file, It is normally packaged somehow with the distro for example x86 lubuntu has .configs in /lib/modules/3.5.0-19-generic/build/.config, the arm distro may have something similar. Then it's a case of see what configuration options are different, You can't just copy the config whole sale however because there are Archos Specific board settings in the Archos Kernel. Failing that the kernel sources will be somewhere as it is a legal requirement under the GPL and Cannonical are compliant, at least I've not read anywhere to the contrary.
This is just really how I understand it at the minute, Some of it could be inaccurate or just plain BS but hopefully should give you something to run with, there is a bit of a barrier to entry on the whole subject kernels/android kernels as the information is in little pieces all over the internet, when I was first getting to grips with it, it did feel like a bit a of treasure hunt for knowledge. Also knowing the Keywords to search for in the first place can be difficult It sounds quite an interesting challenge, shame about my brick!!
If you want to understand more about the kernel generally ( and lets face it, who doesn't ) then Linux Kernel in a nutshell ( http://www.kroah.com/lkn/ ) is a free e-book written by one of the kernel maintainers a should be a useful reference.
JUST IN CASE: Don't forget prefixing a filename with a fullstop (.) makes that file hidden and won't display in normal file listings, using ls -a to display all file in a directory
The CM10 kernel i was refering to is the CM10 in dev section. I thought there were other "hacks" than just a IPv6 addon, and that's why i counsidered it as a totally diferent kernel.
I think i need to download the kernel source as soons as i get to my laptop then. I have some experience on it, because i have made a few builds of B2G, but that was mainly just: download source, choose the device and build.
For the differences, that is what i consider as the hardest part. Merging them and then getting the kernel to build might take some time. Luckily I have plenty of time.
For the zImage, I was trying to unpack the ubuntu zImage one, because I'm working on archos device . Unpacking Galaxy S2 kernel wouldn't make any sense. atleast to me . I was trying to use a general unpacker, but it didn't work, just as you wrote.
For the OS & Knowledge, i am using linux indeed. Backbox, which is based on ubuntu 11.04 to be precise. I didn't even think about unpacking the IMG file... Maybe i am stupid . I think i am able to mount it to folder, so it is easy to explore.
I think I know the basics, and folders starting with . is part of them
Lets see what happens the next time i pick my laptop, boot it and start fooling around :good:.
Edit: Well, after the menuconfig, i can't fand anything related to ipv6 mangling. There was a file on the root of cloned folder called linux.config, but it was the default config for kernel, not archos specific.
julle131 said:
The CM10 kernel i was refering to is the CM10 in dev section. I thought there were other "hacks" than just a IPv6 addon, and that's why i counsidered it as a totally diferent kernel.
I think i need to download the kernel source as soons as i get to my laptop then. I have some experience on it, because i have made a few builds of B2G, but that was mainly just: download source, choose the device and build.
For the differences, that is what i consider as the hardest part. Merging them and then getting the kernel to build might take some time. Luckily I have plenty of time.
For the zImage, I was trying to unpack the ubuntu zImage one, because I'm working on archos device . Unpacking Galaxy S2 kernel wouldn't make any sense. atleast to me . I was trying to use a general unpacker, but it didn't work, just as you wrote.
For the OS & Knowledge, i am using linux indeed. Backbox, which is based on ubuntu 11.04 to be precise. I didn't even think about unpacking the IMG file... Maybe i am stupid . I think i am able to mount it to folder, so it is easy to explore.
I think I know the basics, and folders starting with . is part of them
Lets see what happens the next time i pick my laptop, boot it and start fooling around :good:.
Click to expand...
Click to collapse
The 3.0.31 Kernel started by Quallenauge in the dev section is an Highly Expirimental effort. this was started before Archos released the 3.0.21 Kernel with their 4.0.2x roms which covered what was trying to be achieved by this development, It's best left alone unless you really want to get you're hands dirty with device bring up code, There's a version on my github which I think boots the G9A101's as well as the 80's......... anyway
You shouldn't have to do any merging of code, more a case of selecting the right options in the config, Thinking back, I've have booted Ubuntu using mainline kernel sources from kernel.org that I built myself so that kinda of suggests there's nothing special about ubuntu's kernels per se' .
Your main problem won't be with building , more booting, It should compile fine but I wouldn't be surprised to be looking at a blank screen then your problem is monitoring the output....There's an option in the archos config to get early debug output over USB, I think there's some modification you need to make to the USB Cable, Quallenauge knows about that, he did it , I was ghetto and used adb for my debugging. which can be probably made to work when booting ubuntu but I'd go the correct route , I just have my wierd ways of doing things.
Another thing that spring to mind with android "specialisms". Android runs /init in the root directory ubuntu normally likes /sbin/init. This is something that is specified again in the kernel config using the kernel cmdline option , just something to be aware of... If anything else springs to mind I'll let you know.
So I suppose as you say, Just fool around and see what happens. :good:
I think I know the basics, and folders starting with . is part of them
Click to expand...
Click to collapse
Just Checking LOL.
trevd said:
The 3.0.31 Kernel started by Quallenauge in the dev section is an Highly Expirimental effort. this was started before Archos released the 3.0.21 Kernel with their 4.0.2x roms which covered what was trying to be achieved by this development, It's best left alone unless you really want to get you're hands dirty with device bring up code, There's a version on my github which I think boots the G9A101's as well as the 80's......... anyway
You shouldn't have to do any merging of code, more a case of selecting the right options in the config, Thinking back, I've have booted Ubuntu using mainline kernel sources from kernel.org that I built myself so that kinda of suggests there's nothing special about ubuntu's kernels per se' .
Your main problem won't be with building , more booting, It should compile fine but I wouldn't be surprised to be looking at a blank screen then your problem is monitoring the output....There's an option in the archos config to get early debug output over USB, I think there's some modification you need to make to the USB Cable, Quallenauge knows about that, he did it , I was ghetto and used adb for my debugging. which can be probably made to work when booting ubuntu but I'd go the correct route , I just have my wierd ways of doing things.
Another thing that spring to mind with android "specialisms". Android runs /init in the root directory ubuntu normally likes /sbin/init. This is something that is specified again in the kernel config using the kernel cmdline option , just something to be aware of... If anything else springs to mind I'll let you know.
So I suppose as you say, Just fool around and see what happens. :good:
Just Checking LOL.
Click to expand...
Click to collapse
At the moment i'm trying to find the archos config file. there is a defcon file, which looks like a config file in arch/arm/configs called android_archos_defcon. It sounds correct. Next thing for me to do is to find the right place to put it. I guess the root of the project is correct, and rename it to .config and linux.config. After building I need to test it. [email protected] or 4.0.26 root will suffice, right? I also need to figure out if there is a way to force adb on through kernel. And the IPv6 Mangling is nowhere to be found
julle131 said:
At the moment i'm trying to find the archos config file. there is a defcon file, which looks like a config file in arch/arm/configs called android_archos_defcon. It sounds correct. Next thing for me to do is to find the right place to put it. I guess the root of the project is correct, and rename it to .config and linux.config. After building I need to test it. [email protected] or 4.0.26 root will suffice, right? I also need to figure out if there is a way to force adb on through kernel. And the IPv6 Mangling is nowhere to be found
Click to expand...
Click to collapse
The config file " linux.config.g9" should be in the root kernel directory, if it's not there then your on the wrong branch and you need to checkout the 3.0.21 branch explicitly using
Code:
git checkout linux-ics-3.0.21
If your using ICS builds to check with, which I probably recommend then don't worry about IPV6 managling , I don't think It's named that exactly but something like that!, For reference , I've just had a check the option is "Networking support/Networking options/Network packet filtering framework (Netfilter)/IPv6: Netfilter Configuration /Packet Managling"
You have to look pretty deep on some of these settings
As a test. Boot with a normal kernel configure your android debug options , then swap the kernels out , that should give you adb while booting, when I've tried to force adb on an uncofigured rom it got a bit confused with itself
If your struggling a bit with git, http://gitimmersion.com/ has a great tutorial you can step through in about 10 minutes to get the basics and get it configured a bit better
---------- Post added at 09:31 PM ---------- Previous post was at 09:20 PM ----------
EDIT: Make sure you building for arm as well
Code:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
Reference: http://source.android.com/source/building-kernels.html
Huuuh i'm late... most had been pointed out already.
Just to add this...
As you might know Android is put on top of a Linux base system more or less.
In most cases a kernel built for Android will suit most linux distributions as well.
Trevd already highlighted the main aspects.
The other way round is more evil... unmodified linux kernel (or a kernel set up to run well with Ubuntu) will refuse to boot up an Android system.
Some addon's on the default config may be nice though, depends on how the whole rootfs stuff is arranged in the end and if your system heavily depends on udev and stuff.
Keep track of the startup scripts at /etc/init.d.
It's good to have an extensive look at the /etc directory of your distribution image... to much to point at here.
The kernel may handle to boot into a lot of different scenarios.
On the Archos tablets initramfs plays an important role.
You may even tweak this jumpboard and locate your final rootfs on an USB stick if you like.
It's all about handling mounts, chroot and similar during start up.
There are limits on the Archos with stock loader though, because you might need to influence the kernel command line at a certain point.
I'm aware that this is not very specific but there are so many ways to set things up.
Just follow the useful links trevd gave already... these are good starting points :fingers-crossed:
...and just to add this:
I don't speak of fine tune the system in the end. This is another story and sometimes very hard stuff, where you may need to reverse engineer some proprietary libs or executables.
Best regards,
scholbert
Well, I have now built my first kernel... And it was 3.0.8+... I think I downloaded wrong source . I have ipv6 mangling enabled on it, so I should try it with CM10 now. I think I should search the 3.0.21 source, and download it.
Edit: Well, my 3.0.8+ Kernel image can boot CM10, AOKP and 4.0.7 roms... Now i have to figure out why i downloaded 3.0.8+ kernel and not 3.0.21 kernel. Maybe i had wrong branch.
Edit:Yep, wrong branch. I did realize when i downloaded the srce that it informed that the branch does not exists. i had icc instead of ics
Do you have any tips where i can find info about kernel modifications, like adding governors? I tried adding few, but all i got was bunch of errors. I propably forgot something.
Sent from my GT-I9100 using xda app-developers app
mer
Still working on this? I have been using Mer kernels with Ubuntu and they seem to be working fine.
Archos Gen9 Mer Adaptation Kernel --> http://gitorious.org/archos-gen9-mer-adaptation-kernel/
Archos Gen9 Mer Adaptation Kernel ICS --> https://gitorious.org/archos-gen9-mer-adaptation-kernel/archos-gen9-mer-adaptation-kernel-ics
I am using the 3.08 kernel from a Plasma Active distribution. --> http://share.basyskom.com/plasma-active/archos_gen9.html
Just mount the data partion in linux and convert it to ext4, write the linux image to it. Then cp the files from mer /boot /lib/modules to new rom, modules file in etc to load your modules, modify fstab, cp mtev.so to /usr/lib/xorg/modules/input, change or add a few other files.
/etc
modules
Code:
cypress_tma340
tr16c0_i2c
hso
compat
cfg80211
mac80211
wl12xx
wl12xx_sdio
cpt_i2c_tsp
pixcir_i2c_tsp
hci_uart
fstab
Code:
/swap none swap sw 0 0
/dev/mmcblk0p2 /media/system ext4 ro,noauto,users,uid=1000,gid=0,noatime 0 0
/dev/mmcblk0p4 /media/data ext4 ro,noauto,users,uid=1000,gid=0,noatime 0 0
none /proc proc rw,relatime,noexec,nosuid,nodev 0 0
none /sys sysfs rw,relatime,noexec,nosuid,nodev 0 0
none /dev devtmpfs rw,mode=0755 0 0
none /dev/pts devpts rw,relatime,gid=5,mode=0620,ptmxmode=0666 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
binfmt_misc /proc/sys/fs/binfmt_misc rw,noexec,nosuid,nodev 0 0
none /sys/fs/fuse/connections fusectl rw 0 0
none /sys/kernel/debug debugfs rw 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
none /dev/bus/usb usbdevfs defaults 0 0
none /sys/kernel/security securityfs (rw) 0 0
/etc/udev/rules.d
70-persistent-net.rules
Code:
# net device ()
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:28:90:64:31", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
# USB device 0x9710:0x7830 (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:13:3b:04:02:6c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
70-touchscreen.rules
Code:
KERNEL=="event*", SUBSYSTEM=="input", SUBSYSTEMS=="input", ATTRS{name}=="cypress-tma340", SYMLINK="input/touchscreen"
/usr/share/X11/xorg.conf.d
Add to the end of 10-evdev.conf, cypress-tma340 is the touchscreen on my G9.
Code:
Section "InputClass"
Identifier "Archos Touchscreen"
MatchProduct "cypress-tma340"
Option "Ignore" "off"
Option "CorePointer" "on"
Driver "mtev""
EndSection
openSUSE --> http://en.opensuse.org/openSUSE:eek:penSUSE_on_your_ARM_board
Ubuntu --> https://wiki.ubuntu.com/ARM/OMAP
Kubuntu 12.10 --> http://cdimage.ubuntu.com/kubuntu/releases/12.10/release/kubuntu-12.10-desktop-armhf+omap4.img
Please i am using Backbox Linux Distribution (Dual booted ) wit my windows 7....... now i wish to use a dail up connection on my modem !! PLEASE HOW DO I GO ABOUT IT ...
Sent from my L3 using XDA Free mobile app

Who wants to help finish proprietary vendor blobs?

"Blobs" are the files specific to each device that we need in order to compile custom ROMS that work on our device. The process of finding them is tedious and slow... I have been picking away at them for months when I have time. There are over 600 files so far! But there are also references to files that are not being found. They are either missing, or they are not located where they are expected to be located. This is where I need help.
So, if you want to help, go HERE:
https://github.com/mightysween/android_vendor_motorola_payton
and look through the proprietary-files.txt file for anywhere that it says "warning".... and then search inside of the firmware (working on 8.0+ now, not 7.1 please) and try to track down the file that it says is missing [obviously, you will need a system dump, or to search on a rooted device]. If you find it, please post below like this:
LINE NUMBER OF THE WARNING (from github)
PATH TO THE MISSING FILE (relative to /system... in other words, don't inlude your own local path)
Once this file is complete, we can use it to automatically pull the correct vendor files into our build environments... having a working recovery, active kernel developement and completed vendor blobs should open us up to more development efforts.
Also, if anyone has done any testing and knows of other proproetary files that are needed, please post them here so I can include them.
My time at the computer to work on this is really limited, so I have only identified a dozen or so daemons that definitely call for proprietary libs... I am sure there are more
I would love to pitch in on this but have zero experience with anything related to development. Do you think I could still be of help? Sounds like a basic enough task that it wouldn't be too difficult. Let me check and see that I understand the process.
Went to github and looked at proprietary-files.txt. The first warning I found was in line 49: "blob file libpn553_fw.so missing or broken". Then searched for that file in my device's system folder using ES File Explorer with Root Explorer enabled.
So is this what you're looking for?
49
/system/vendor/firmware/libpn553_fw.so
---------- Post added at 14:31 ---------- Previous post was at 14:07 ----------
I'd like to contribute in some way but if this is best not left to a complete noob then I totally understand
mightysween said:
Also, if anyone has done any testing and knows of other proproetary files that are needed, please post them here so I can include them.
My time at the computer to work on this is really limited, so I have only identified a dozen or so daemons that definitely call for proprietary libs... I am sure there are more
Click to expand...
Click to collapse
Do you have a link to a system dump?
TheBassDude said:
I would love to pitch in on this but have zero experience with anything related to development. Do you think I could still be of help? Sounds like a basic enough task that it wouldn't be too difficult. Let me check and see that I understand the process.
Went to github and looked at proprietary-files.txt. The first warning I found was in line 49: "blob file libpn553_fw.so missing or broken". Then searched for that file in my device's system folder using ES File Explorer with Root Explorer enabled.
So is this what you're looking for?
49
/system/vendor/firmware/libpn553_fw.so
---------- Post added at 14:31 ---------- Previous post was at 14:07 ----------
I'd like to contribute in some way but if this is best not left to a complete noob then I totally understand
Click to expand...
Click to collapse
Thanks, that is all there is to it
Just time consuming (especially after the first 500)...lol
QWZR said:
Do you have a link to a system dump?
Click to expand...
Click to collapse
Nah, too big to conveniently upload... but if you are rooted, you can use the phone to search
mightysween said:
Nah, too big to conveniently upload... but if you are rooted, you can use the phone to search
Click to expand...
Click to collapse
Mine gets here next week
mightysween said:
Nah, too big to conveniently upload... but if you are rooted, you can use the phone to search
Click to expand...
Click to collapse
If you have root on the system you can find the files for, you should be able to find any given filename with:
find / -name "filename" -print
And it should output any filenames that match. I don't have time at the moment to dig into this any more, but would this resolve much of it?
ebrandsberg said:
If you have root on the system you can find the files for, you should be able to find any given filename with:
find / -name "filename" -print
And it should output any filenames that match. I don't have time at the moment to dig into this any more, but would this resolve much of it?
Click to expand...
Click to collapse
Any way that works is fine by me
I am on the road a lot and just don't have enough time to sit and work on it... so it is taking months. I bet a few people helping could finish it in a matter of hours.
I am hoping to have a few hours next week to work on it. But the sooner this is done, the sooner I can shift to trying to compile Lineage OS with working hardware.
BTW, Lineage *does* compile if I comment out all the stuff causing make errors... not much works, obviously.
The next step will be compiling with these blobs, then logging all the new errors and chasing down all the additional broken symlinks... and then adapting the kernel as needed.
Then, MAYBE we can get a base Lineage tree up and open up the X4 to building for other roms. I know someone started a skeleton tree for Carbon already on Github... they are likely just waiting for the completed device tree, too.
mightysween said:
Thanks, that is all there is to it
Just time consuming (especially after the first 500)...lol
Click to expand...
Click to collapse
ebrandsberg said:
If you have root on the system you can find the files for, you should be able to find any given filename with:
find / -name "filename" -print
And it should output any filenames that match. I don't have time at the moment to dig into this any more, but would this resolve much of it?
Click to expand...
Click to collapse
I don't own this device yet, but I was thinking of getting one. I figured this might help you all out (you'll need to be running linux):
First, let's get a list of all the files on the phone, to make searching faster.
Code:
adb shell
su
find / > /sdcard/allfiles.txt
exit
exit
adb pull /sdcard/allfiles.txt
Now you should have allfiles.txt on your machine. Also grab the proprietary-files.txt, and then run this:
Code:
grep -Po '(?<=(blob file )).*(?= missing or broken)' proprietary-files.txt | xargs -I @ grep "@" allfiles.txt
That should find the paths of all the missing files (except the ones marked "wildcard")
BLuFeNiX said:
I don't own this device yet, but I was thinking of getting one. I figured this might help you all out (you'll need to be running linux):
First, let's get a list of all the files on the phone, to make searching faster.
Code:
adb shell
su
find / > /sdcard/allfiles.txt
exit
exit
adb pull /sdcard/allfiles.txt
Now you should have allfiles.txt on your machine. Also grab the proprietary-files.txt, and then run this:
Code:
grep -Po '(?<=(blob file )).*(?= missing or broken)' proprietary-files.txt | xargs -I @ grep "@" allfiles.txt
That should find the paths of all the missing files (except the ones marked "wildcard")
Click to expand...
Click to collapse
Thanks, I had recently completed this, but your code worked fantastic for double checking, and actually helped me find one that I had missed :good:
Now, on to identifying any more daemons that need proprietary files... and then assembling the tree itself... PROGRESS!
PHASE 1 is complete!
https://github.com/mightysween/android_vendor_motorola_payton
I am 99% sure that this is only ~75% of what will be needed to actually build LOS15. But it is a good foundation to work off of now.
My plan is to start attempting to compile LOS and take error logs to chase down the remaning missing stuff. LOTS to be done still to get to that point...hoping for some other builders/devs to materialize here and help out
Hi! Just a question: it´s mandatory to use A/B partition scheme to build a custom ROM for this device or it will be possible to use a traditional partition scheme and free up some GBs of internal storage for use?
christianrj said:
Hi! Just a question: it´s mandatory to use A/B partition scheme to build a custom ROM for this device or it will be possible to use a traditional partition scheme and free up some GBs of internal storage for use?
Click to expand...
Click to collapse
It would seem that we will still be stuck with A/B, as the bootloader does the initial check of the active slot. Perhaps there may be some clever ways around this in the future...but nothing I will be tackling.
mightysween said:
It would seem that we will still be stuck with A/B, as the bootloader does the initial check of the active slot. Perhaps there may be some clever ways around this in the future...but nothing I will be tackling.
Click to expand...
Click to collapse
You would probably need a custom kernel to do it properly. The bootloader passes a kernel param (androidboot.ro.boot.slot_suffix) specifying which slot to use. In the absense of a kernel param, the value is read from the ro.boot.slot_suffix build property.
That being said, you might be able to just repartition your device to only have 1 slot, flash your ROM, and use
Code:
fastboot --set-active=_a
. If your ROM has disabled OTA updates from the OEM, you should be fine.
I'm going to get an X4 in the coming weeks. I'd like to help with this soon. I'm a seasoned developer by trade and can collab on GitHub. Hope to be able to start working with you soon. :good:
I don't know if any of you have seen this article, but it seems promising that it might not be too difficult to achieve for this device:
https://www.xda-developers.com/xiaomi-redmi-note-4-project-treble/
Hariiiii said:
I don't know if any of you have seen this article, but it seems promising that it might not be too difficult to achieve for this device:
https://www.xda-developers.com/xiaomi-redmi-note-4-project-treble/
Click to expand...
Click to collapse
@vache at the Moto G5 Plus forums has already managed it using the /oem partition which is otherwise unused for custom ROMs
Hariiiii said:
I don't know if any of you have seen this article, but it seems promising that it might not be too difficult to achieve for this device:
https://www.xda-developers.com/xiaomi-redmi-note-4-project-treble/
Click to expand...
Click to collapse
Cool... seems it may be possible. Will follow the progress on the Redmi and G5 devices
navenedrob said:
I'm going to get an X4 in the coming weeks. I'd like to help with this soon. I'm a seasoned developer by trade and can collab on GitHub. Hope to be able to start working with you soon. :good:
Click to expand...
Click to collapse
The more I am reading about enabling Treble, the more I think it is entirely possible.... and probably the best direction to focus our efforts.
Seems like we have partitions that could be used as /vendor. I am reading up on exactly how the Treble vendor partition is set up. Tricky, but not implausible.
EDIT: Actually, none of the partitions we could potentially re-purpose for /vendor are big enough. So, it may be harder on this device than on others. It may require repartitioning.

HP Touchpad Swap - The Easy Way

HP TOUCHPAD has discovered a wonderful way to speed up the old girl, but for many it's too complicated. So here's an easy way.
Download the SKZ Kernel from here
Download Swapper from the Playstore​
This creates a swapfile rather than a swap partition. There's plenty of discussion about the relative merits of each, but for normal operations, they're pretty much equivalent.
You'll need to be rooted, of course, and your ROM needs to be Dirty Unicorns. Set the swap for what you want (I used 384 MB, but you'll never need more than 1 GB). The kernel contains most of HP TOUCHPAD's changes, but I've not disabled anything in the kernel, so you can still set it any way you want.
Enjoy, and be sure and thank HP TOUCHPAD for his great work.
...
friends, I do not know how to do this, a step by step video, please refer to the step when creating the kernel installation zip file, which the user will install using TWRP.
Add a script to create the swap file and format, a video with this step please
HP_TOUCHPAD said:
__SNIP__
Add an script to create the swap file and formatted:
Working directory:
Code:
cd /boot/usr/sbin
./lvm.static vgchange -ay
./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor 0 -n /dev/store/swap
mkswap /dev/store/swap
__SNIP__]
Click to expand...
Click to collapse
Ok, you win. Check out my latest kernel here
...
..
HP_TOUCHPAD said:
--SNIP--
The issue it by setting the permission (set_perm), something is wrong.
Click to expand...
Click to collapse
Try this
..
HP_TOUCHPAD said:
--SNIP
Also the process of update is been done by update-binary and not busybox. The update-binary that you have is 832.7 kb the one on the Dirty Unicorn ROM zip file is 1.3 MB. I also swap the update-binary but it did not work.
I think that the reason set_perm does not work is because is not integrated in the update-binary which has all the commands to execute the update-script.
Where does the update-binary comes from? where is it generated from?
--SNIP--
Click to expand...
Click to collapse
Version with an old update-binary here. I tested it in recovery, and it seems to work, but I'm not holding my breath.
...
HP_TOUCHPAD said:
Is a good thing you did not hold your breath, other wise your skin color will be like a Smurf and not able to read this message, as you will be on the other side ;-(.
The update-binary been only 254.7 kb, is able to change the permission and also run a program and that is all we need it to do. But because the environment is not properly set in TWRP the common arguments does not work and everything must be specified. The run_program ("lvm.sh") does not work as I explained why.
Just when I thought that I knew the basics, now I am learning how Edify Code works and that is the fundamental as is the (creation), (installation) or (flashing) of everything that gets copy and executed in Recovery.
I got it working!
But I am writing everything in details to wipe out all the partitions ( a reset ) and then recreating everything including the swap partition, it should work for all models 16GB 32GB and 64GB. One single zip flash!
Will report back with the results!
Click to expand...
Click to collapse
Good luck. I'm done. I did notice, however, that you can replace the update-binary with your own shell script, but that was more than I wanted to do.
...
help!
Halloo
I'm trying to do this as my touchpad is unusably laggy using DU. I can't get it rooted though... Can someone explain the latest method? I tried various SuperSU zips, nothing works. I suspect I'm doing something wrong..
...
Thats good news! Meanwhile could you help me with the SuperSU problem?? I want to get rooted!!
...
HP_TOUCHPAD said:
--SNIP--
The swap file is not been use by the Kernel.
( keep it lean )
--SNIP--.
Click to expand...
Click to collapse
The swap file is not in use because there isn't any command to turn it on. You need to add "swapon /dev/store/swap" to the script or in the ramdisk after boot initialization.
This is where we part company. I've always wanted to provide the greatest flexibility, not the necessarily the best performance. I'm not really interested in providing the single "best" configuration since I don't know what others think is the "best". You're doing a great job - go for it. I'm outta here.
..
This is sounding good! Hope you guys are successful!
...

Categories

Resources