[Q] New rom (or just launcher)? - Android Q&A, Help & Troubleshooting
The first thing I want to say is that my English is not really good. I hope you understand my questions.
I have an idea for a new Android rom, but I'm faced with a dilemma. I want to have as much as possible supported devices, so I also can just build a launcher apk which can be installed through Google Play. In this way all mobile devices with the minimal platform version can use it. The biggest problem is that I don't only want a replacement for the application launcher but also the notification drawer and everything else. Is it possible to replace them also? I don't think so, so I think I'll work on a custom rom.
The next problem is which base rom I would use if I really build a custom rom. It's most likely to use AOSP as base because it's clean. The question is which version of AOSP: Gingerbread, Ice Cream Sandwich, or the newest version Jelly Bean. You would probably say Jelly Bean because this is the newest version. The problem is the phone support. Gingerbread is supported on most phones. If I build ICS or JB the phones which are supported by Cyanogenmod are easy to support, because I can use their device files. The only problem is that my phone, the Samsung Galaxy Gio is not officially supported and the unofficial port is not really stable. I don't think it's a big problem to use this device files and just wait till the developer makes it more stable, but I don't know for sure.
The last thing I want to know is if it's really that simple to support multiple devices. If I read tutorials about porting existing roms to your device they all say you just have to add your device files to the source and compile it. But they never say something about the kernel. Most devices need another kernel because their hardware is different isn't it? Please explain me how this works.
I'm sorry about this hazy story, but please help me before I make wrong choices. Thanks on purpose.
Wietse
WietsedeVries said:
The biggest problem is that I don't only want a replacement for the application launcher but also the notification drawer and everything else. Is it possible to replace them also? I don't think so, so I think I'll work on a custom rom.
Click to expand...
Click to collapse
These changes you are talking about can be done. They are system changes so not supported by the android app installer.
Eg: Your notification drawer, status bar are part of SystemUI.apk. The source for this is can be found in the AOSP source code under android/frameworks/base/...
You can make your modifications, compile it into an apk and then make a flashable zip to replace the current one (or push it via a rooted adb console).
or you can compile the entire source code into a flashable zip (eg CM7,9 etc..) and use it a replacement ROM with your modifications.
This is the line between an application under the android runtime and the android runtime itself.
these files, under framework are part of the OS. so to provide a customized version of the operating itself is what people like to call ROMs.
Now ROMs (like any OS) are device dependant. Windows has the code to run in a lot of different hardware configs, but android aims to be small. It should have only the minimum required code to efficiently run itself on a device.
Thats the kernel. The kernel communicates with the hardware and so the rest of the hardware can happily talk to a working kernel and expect the hardware to function as advertised. Kernel is a simple program which goes into the RAM on system start and sits there directing the operation of the phone.
Kernel devs work on making sure the hardware and the android runtime work perfectly together. Now, in this imperfect world, not all sources are open, even though they should be. and therein the issue lies.
If you want to compile android from source and make sure it works on your phone, first you need to make sure you have the kernel with all the changes(patches) to it made by the vendor (chap who made the phone and bullied you into buying it) to get it working on your hardware.
If you dont have that, you have to do it yourself. Or wait for someone else to do it.
once you can compile android and get it working on your phone with all the itty bitty hardware working A-OK.. then you can browse through the source, make changes as per your individual requirements and compile it into a ROM.
see the changes to the OS are separate from the changes to the kernel. The kernel changes are for hardware-software interaction so they are phone SPECIFIC.
but changes to your custom android OS (ROM) can be "cherry-picked" from other ROM/gerrit/AOSP/CM/AOKP sources and put inside your own source tree to get included in your build.
so if you have all the device / kernel stuff from a working android distribution, you can take the source of another android distribution and swap the device stuff into it and see if it works.
hope this helps.
wingie6200 said:
These changes you are talking about can be done. They are system changes so not supported by the android app installer.
Eg: Your notification drawer, status bar are part of SystemUI.apk. The source for this is can be found in the AOSP source code under android/frameworks/base/...
You can make your modifications, compile it into an apk and then make a flashable zip to replace the current one (or push it via a rooted adb console).
or you can compile the entire source code into a flashable zip (eg CM7,9 etc..) and use it a replacement ROM with your modifications.
This is the line between an application under the android runtime and the android runtime itself.
these files, under framework are part of the OS. so to provide a customized version of the operating itself is what people like to call ROMs.
Now ROMs (like any OS) are device dependant. Windows has the code to run in a lot of different hardware configs, but android aims to be small. It should have only the minimum required code to efficiently run itself on a device.
Thats the kernel. The kernel communicates with the hardware and so the rest of the hardware can happily talk to a working kernel and expect the hardware to function as advertised. Kernel is a simple program which goes into the RAM on system start and sits there directing the operation of the phone.
Kernel devs work on making sure the hardware and the android runtime work perfectly together. Now, in this imperfect world, not all sources are open, even though they should be. and therein the issue lies.
If you want to compile android from source and make sure it works on your phone, first you need to make sure you have the kernel with all the changes(patches) to it made by the vendor (chap who made the phone and bullied you into buying it) to get it working on your hardware.
If you dont have that, you have to do it yourself. Or wait for someone else to do it.
once you can compile android and get it working on your phone with all the itty bitty hardware working A-OK.. then you can browse through the source, make changes as per your individual requirements and compile it into a ROM.
see the changes to the OS are separate from the changes to the kernel. The kernel changes are for hardware-software interaction so they are phone SPECIFIC.
but changes to your custom android OS (ROM) can be "cherry-picked" from other ROM/gerrit/AOSP/CM/AOKP sources and put inside your own source tree to get included in your build.
so if you have all the device / kernel stuff from a working android distribution, you can take the source of another android distribution and swap the device stuff into it and see if it works.
hope this helps.
Click to expand...
Click to collapse
Thank you very very much for your explanation! It's a pity it's impossible to hit multiple times "Thanks".
I think I'm going to make a modified SystemUI.apk but you didn't tell the application launcher is also in this file. Did you just forget this or is this stored in another file/folder? And the lock screen? And I want also to replace the boot animation if it's possible.
If I take the source files of the SystemUI.apk of AOSP ICS, does this work on every phone running ICS? Included CM, AOKP and other (smaller) custom roms? And my last question: Since SystemUI.apk a apk file is, is it possible to edit these files through Eclipse and build it in Eclipse? Or do I get errors?
//Edit:
Still another question: How much work is it to, as example, port a modified Gingerbread SystemUI.apk to ICS? (Or vice versa)
WietsedeVries said:
Thank you very very much for your explanation! It's a pity it's impossible to hit multiple times "Thanks".
I think I'm going to make a modified SystemUI.apk but you didn't tell the application launcher is also in this file. Did you just forget this or is this stored in another file/folder? And the lock screen? And I want also to replace the boot animation if it's possible.
If I take the source files of the SystemUI.apk of AOSP ICS, does this work on every phone running ICS? Included CM, AOKP and other (smaller) custom roms? And my last question: Since SystemUI.apk a apk file is, is it possible to edit these files through Eclipse and build it in Eclipse? Or do I get errors?
//Edit:
Still another question: How much work is it to, as example, port a modified Gingerbread SystemUI.apk to ICS? (Or vice versa)
Click to expand...
Click to collapse
Only way is through exchanging the png files since porting the whole .apk is impossible.
Sent from my Jelly Beaned Ace
Thanks for the answer. And do you also know the answers of the other questions?
Sent from my GT-S5660 using xda app-developers app
WietsedeVries said:
If I take the source files of the SystemUI.apk of AOSP ICS, does this work on every phone running ICS? Included CM, AOKP and other (smaller) custom roms? And my last question: Since SystemUI.apk a apk file is, is it possible to edit these files through Eclipse and build it in Eclipse? Or do I get errors?
//Edit:
Still another question: How much work is it to, as example, port a modified Gingerbread SystemUI.apk to ICS? (Or vice versa)
Click to expand...
Click to collapse
There are two roads you can go now - one is use apktool to *decompile* apk the apk file that you've taken from your phone, it doesnt convert the app to java source code but java bytecode in .smali files (like an assembly version of the source) but you will have access to the resource files (xml, images etc..) so you can replace them and create some new themes.
http://forum.xda-developers.com/showthread.php?t=1814441
http://forum.xda-developers.com/showthread.php?t=1760133
And no - a GB systemUI.apk will *NOT* work on ICS. It is very probable that any changes you make through any of these methods can brick you phone. So make sure you have CWM and a nandroid backup.
If you want to add/edit functionality within the source code of systemUI.apk, you need to learn how to compile Android from Source. i would suggest getting hold of the CyanogenMod source tree for your device and playing around with it.
Ginger bread is CM7 and ICS is CM9.
http://forum.xda-developers.com/showthread.php?t=1552090
once you have the full source tree, you'll find a folder called android/frameworks/base/core/...something../systemui/..
this will contain the javasource code for your application. Here you can edit stuff to your hearts content!
Note that this cannot be compiled standalone by eclipse. The Android build system must be used to compile this (cuz its a system app).
a nice resource i used when i was doing the same thing :laugh:
http://iserveandroid.blogspot.in/2011/01/how-to-implement-your-own-status-bar.html
cheers and have fun.
Related
[Q] Beginner Questions
I'm very interested in doing some ROM development, though I'm quite the beginner. I know my way around Java and can hold up against some C, and I've also done some apps. I have a few questions though before I get started. After I run make on the AOSP, how can I test my build with the emulator and my device (Eris)? Will using the build on my Eris work, provided there are no build problems? How could I base a ROM I make off of an existing ROM? (For example, KaosFroyo) What is the difference between cooking a ROM, and running make on the AOSP? I think thats about it for now. Thanks for taking a look!
Chiggins said: I'm very interested in doing some ROM development, though I'm quite the beginner. I know my way around Java and can hold up against some C, and I've also done some apps. I have a few questions though before I get started. After I run make on the AOSP, how can I test my build with the emulator and my device (Eris)? Will using the build on my Eris work, provided there are no build problems? How could I base a ROM I make off of an existing ROM? (For example, KaosFroyo) What is the difference between cooking a ROM, and running make on the AOSP? I think thats about it for now. Thanks for taking a look! Click to expand... Click to collapse 1) I'll answer the Eris part, since I have done that more than once... You need to zip up the following: a) /system folder from 'out/target/product/generic (or desirec if you used a vendor tree) b) a /META-INF/com/google/android folder structure with a working update-script c) a boot.img with an Eris kernel and appropriate init.* scripts in the ramdiskThen sign the resulting zip. There's your base ROM. You can also just throw that into dsixda's kitchen. 2) Yes. Define 'work'. You'll need an Eris kernel, Eris specific drivers in the right place, and the correct settings in the init.* scripts and build.prop. It also helps to have a wlan.ko in /system/lib/modules that is compiled against the kernel that you are using. 3) If you take an existing Eris ROM and use it as a base, you're golden. The Eris specific stuff is already there. At that point, you can theme, add/remove apps/etc. Give credit where credit is due though. Personally, I recommend that you start with a stock ROM or AOSP, but that's me. 4) Well, I suppose it depends on who you ask... Some devs don't really like the 'cook' moniker. It sort of implies that you are just taking parts from everywhere else and making something tasty instead of coming up with something new. Compiling AOSP is not really coming up with something new, but at least you started 'from scratch'. Even if you don't want to use a kitchen, I recommend that you download dsixda's and my Android Builder to look at the scripts. You can learn a lot by looking at those.
[Q] Rom source code?
If I understand android correctly the kernel source has to be open. And the Google rom source is also open (AOSP, right?) But what about the rom, like das bamf, source. Is it open and able to be downloaded?
The HTC Sense Framework and related applications are not open source. You modify it by decompiling to bytecode and manually editing the results.
Ok so lets take the GB roms. They are based off the GB leak. So what does "based off" mean in that context. Are they tweaking source files or are they tweaking xml, build.prop, etc. files? This might be asking a too complicated question, but lets take das bamf sense 3.0, they took the GB leak, and then added the Sense 3.0 Framework on top, I understand then resized images and such, but what had to be "done" to make it work? Find working apks for camera and such? What I am getting at, is I am curious about Rom development. I am going to start small, thinking CM7 over on the Nook Color, seems like a good device to mess around on. And I know that source is available due to it being built from AOSP, but I was wondering about the Roms built off of, say, MR1 that is delivered by Verizon.
There is no source to the gingerbread leak or for any of the leaks based on sense, rom creators just do what I said in my last post. That's how it's done for anything build off of sense period. If you dont believe me, try googling for "htc sense source code" and see how far that gets you. If that still doesnt make sense, google "decompile code" If you want actual source code, you have to stick with building off of roms created with the Android Open Source Project like CM and OMFGB.
Oh I believe you. Thanks for the info, that is what I was curious about. So most of the Sense development is in a hex editor? Interesting.
you could hex edit, but there's easier ways. Google for apktool and dalvik bytecode instructions
Thanks. That info is very helpful in understanding all of this stuff.
sure, good luck
[Q] Rom porting - where to begin?
Hello XDA community! I'm interested in rom porting / developing, but don't know where to begin, and how. I have some C, C++ and Java knowledge (cause I learned to be a software designer and developer), and got some free time, so I want to help in rom developments, if I can. (for example to get Optimus Net rom woriking on our Optimus One) Could someone give an advice, where to begin to learn these things? Thank you for every help! And keep up the good work, developers!
Just some suggested ports -oxygen -AOSP -sense -miui
do you want to develop or customize? these are different things. for porting a binary compiled rom, you need most knowledge in decompiling code. for porting real source code, you need most knowledge of C/C++ and JAVA and hardware. for the first steps, use a ready and running rom and theme it something. if you want to do really more and have dreams what to do - start developing on source code - use direct source code from AOSP, CM7 or CodeAurora. Here you need to read about how the compile process is working, if you have a working and booting rom you can modify all the software you have or write new
Take a base ROM from another phone. First thing, delete the boot.img. That boot.img contains the kernel, which will not do good to your phone. Next, add the boot.img from your phone to this rom (use commom sense, if you are porting a vanilla rom, use an AOSP kernel, if porting sense, use HTC kernels, if you are porting other UI’s like blur, use an AOSP kernel.) Next, go into the /system folder. In here, we want to first delete the usr folder. The usr folder has hard button and keypad drivers. Replace the usr folder with the one from your phone. Next, go into the etc folder. delete the vold.fstab andapns-conf.xml and replace with the one from your phone. Next, we want to go into the lib folder. Here, we will want to replace the lights.(device name here) (and the sensors.name if it is an AOSP port) and replace with files from your phone
Want to start with AOSP JB 4.2 - experienced developers are welcome :)
Hi all, i want to start with AOSP 4.2 for our SGS3 i9300 - is anybody interested to develop and publish a AOSP based rom with me? I'm a real application developer (C,C++,JAVA,PHP,MySQL,some Oracle PLSQL) and now its some cold out - i have time to do some nice things I think a team of 2 or 3 developers should be enough to develop on this rom, as we can use a lot from AOSP 4.1.2 ### EDIT As long as no one has found to help, here a short description of current progress: - Code is pure based on AOSP 4.2 but some snippets of CyanogenMod to bring up hardware (camera,graphics,audio) - Device is bootable (no other boot.img required anymore) - Bootanimation is working - Mount of partitions is working - Deodexing is working - adb, debuggerd and root access is working Not working: a lot - Graphic not working perfect, needs a kernel patch or a working gralloc/hwcomposer/hwconverter to work without laggy PMEM) - Camera can not be activated due to a missing function call (undefined reference, maybe it can be solved with a newer driver) - Audio: missing speaker device (Code have to reworked to work with stagefright and tinyalsa libs) - USB/internal SDCard: cant be mounted (error message sounds like the device is mounted twice, have to find the error in init process) - RIL not working (Java file from CM10 have to be integrated in frameworks/opt/telephony) Currently, i'm working on the Graphic problem and USB part to bring up the device to a stable UI
Way to go man. Good luck to you!
Good luck ...!! Im waiting Sent from my GT-I9300 using xda premium
Good evening, Well how have you imagined that? Do you have build something like that before or would this be your first attempts to build up a rom from scratch? Do you know what's all necessary to contribute for that? I would try to help you, but I have clearly to say that I haven't done anything like this before. I'm in the last term of my study of technical computer sciences, working in a company as application programmer for C/C++ and Java(Android). Due to my studies I have also some knowledge about hardware programming, down to read/writing some code in assembler. I would be interested to this if I get introduced to the topic and some help with the necessary tool chain wouldn't hurt too ^^. greetings
hop3l3ss1990 said: Good evening, Well how have you imagined that? Do you have build something like that before or would this be your first attempts to build up a rom from scratch? Do you know what's all necessary to contribute for that? I would try to help you, but I have clearly to say that I haven't done anything like this before. I'm in the last term of my study of technical computer sciences, working in a company as application programmer for C/C++ and Java(Android). Due to my studies I have also some knowledge about hardware programming, down to read/writing some code in assembler. I would be interested to this if I get introduced to the topic and some help with the necessary tool chain wouldn't hurt too ^^. greetings Click to expand... Click to collapse I have successfully built a rom in year 2010 for the LG-P500 device, based on CM7 and modified it in a strange way, so i included a lot of nice things written from scratch - this rom was a unicate ... later, i developed the "Phoenix Launcher" for Gingerbread enabled devices, but its development is currently frozen because its strange to support every or almost every device with a bugless launcher. In the last months i learned a lot about android and have to re-think about what i'm able to do, and what i want to do. In the summer of 2011 i bought my SGS3, the first thing i was doing was to remove that samsung crap from my device and have installed AOKP. So now it's time to do my own thing again - i want to have AOSP as i think for me its the best Android solution for myself and want to publish it to other users who think "thats ok for me" too In short, it doesnt matter if its your first rom - its enough if you know about basic things like "how is android doing all that nice things", "how to debug code", "how to fix some bugs (even strange bugs)" and some experience with git and github. All other you can learn in a very short time - i've learned the most of things with try & error
andy572 said: I have successfully built a rom in year 2010 for the LG-P500 device, based on CM7 and modified it in a strange way, so i included a lot of nice things written from scratch - this rom was a unicate ... later, i developed the "Phoenix Launcher" for Gingerbread enabled devices, but its development is currently frozen because its strange to support every or almost every device with a bugless launcher. In the last months i learned a lot about android and have to re-think about what i'm able to do, and what i want to do. In the summer of 2011 i bought my SGS3, the first thing i was doing was to remove that samsung crap from my device and have installed AOKP. So now it's time to do my own thing again - i want to have AOSP as i think for me its the best Android solution for myself and want to publish it to other users who think "thats ok for me" too In short, it doesnt matter if its your first rom - its enough if you know about basic things like "how is android doing all that nice things", "how to debug code", "how to fix some bugs (even strange bugs)" and some experience with git and github. All other you can learn in a very short time - i've learned the most of things with try & error Click to expand... Click to collapse This all sounds interesting for me and yes I like the idea of developing a own clean rom with some cool additional stuff, too. But what would be the first steps to a new rom? Have you begun with all the administration stuff like setting up a new gitrepo, make a to do list etc...? I think Code debugging and writing some new stuff wouldn't be a problem for me but what are you meaning excactly with "how is android doing all that nice things"? How it build up, deep level architecture? Well, I know how the "normal" Linux system is working, how modules are getting loaded into the kernel... But how this is correctly working on android I have to learn at first and if there is a chance to do that I would do it Currently on my S3 is SlimBean and till that there is still no update to 4.2 I'm happy with it, but exploring something new would be pretty cool Do you have an IRC chat room or something like that? I've to go offline now, my girlfriend wants more attention.^^ But If you want, I' m willing to try to contribute to the rom PS. I'm sorry for my bad English and hope its understandable, but outside from here you can talk to me in German ^^
If you want to help the AOSP experience on our phones the best place to do it is with the CyanogenMod guys. You'll find pretty much everything based on AOSP (including people that port Vanilla AOSP and AOKP) is using a CM kernel. They're likely working on the merge now in terms of getting CM10.1 out (with Android 4.2) but most of our CM guys are pretty burned out on working with Samsung's subpar reference material to get basic stuff working (mostly HWC). If you think you could help with this, this would be provide a massive boost to the whole community that want to run these phones on an AOSP based ROM and they would be very grateful. Gotta warn you though it sounds like it'll be an uphill struggle to get the rest of the stuff working right; unless Samsung release some decent sources for HWC.
Currently i have only downloaded the AOSP sources and started to integrate most of the configs. Currently it cant compile because AOSP is not AOKP/CM10 where i got the device and vendor directories, so i have to make some changes in the basic system. if it's compiling to the end, i open a fresh github account and upload all my modifications. The compile process stops currently on audio,OMX plugins, graphics and camera - most of that are small pieces of changes i have to make - i think, tomorrow (its monday in germany here) i can upload all and then we can start to develop on
andy572 said: Currently i have only downloaded the AOSP sources and started to integrate most of the configs. Currently it cant compile because AOSP is not AOKP/CM10 where i got the device and vendor directories, so i have to make some changes in the basic system. if it's compiling to the end, i open a fresh github account and upload all my modifications. The compile process stops currently on audio,OMX plugins, graphics and camera - most of that are small pieces of changes i have to make - i think, tomorrow (its monday in germany here) i can upload all and then we can start to develop on Click to expand... Click to collapse Wish i could help (just started learning JAVA ) ! gl with this awesome project
Nice to see you here, I remember you from the P500 forums.
Xda user krarvind should be able to give you some useful hints, you will have to contact him through the RD forum as his pm is locked down, or I could possibly put him in contact with you
slaphead20 said: Xda user krarvind should be able to give you some useful hints, you will have to contact him through the RD forum as his pm is locked down, or I could possibly put him in contact with you Click to expand... Click to collapse Thank you, it would be nice if you can contact him
andy572 said: Thank you, it would be nice if you can contact him Click to expand... Click to collapse Ok, will mention it to him
andy572 said: Currently i have only downloaded the AOSP sources and started to integrate most of the configs. Currently it cant compile because AOSP is not AOKP/CM10 where i got the device and vendor directories, so i have to make some changes in the basic system. if it's compiling to the end, i open a fresh github account and upload all my modifications. The compile process stops currently on audio,OMX plugins, graphics and camera - most of that are small pieces of changes i have to make - i think, tomorrow (its monday in germany here) i can upload all and then we can start to develop on Click to expand... Click to collapse How it's going forward? Maybe it could be useful to publish the github link when it's ready and some more information like staus, on first post In the next days I have some trouble with my exams ( in two weeks I'm completely finished with my studies ^^) but I think if there is something to do I'll find some time to work on.
Good Luck Dude~ I haven't tried AOSP yet. Hope someday i can give it a go.:silly:
hop3l3ss1990 said: How it's going forward? Maybe it could be useful to publish the github link when it's ready and some more information like staus, on first post In the next days I have some trouble with my exams ( in two weeks I'm completely finished with my studies ^^) but I think if there is something to do I'll find some time to work on. Click to expand... Click to collapse current state: - patched android/build so we can compile the kernel within the main compile process - patched android/build main.mk file so we can use OpenJDK or Oracle JDK - added android/vendor/aokp and android/vendor/samsung tree from AOKP (its the most useful directory structure) - added android/hardware from AOKP so we have all that Exynos things that are needed, even by AOSP - modified android/frameworks/native/include so a OMX Plugin header can be found - modified android/libhardware and patched gralloc module currently it compiles to the Webkit library, most of all apps, libs and binaries are building without errors - the next problem to solve is the PRODUCT_COPY_FILES ****: nothing of proprietary files are copied to the android/out directory, seems like a bug in android/build too. For only 2 days trying to compile to the end without errors its a very good cut
here we go: it compiles to the end and a flashable "JOP40" zip could be created tryed to flash, but it gives errors in CWM: have to remove the recovery folder and the recovery.sh file from etc folder in the ota zip file, but it doesnt boot up - got a black screen only. do we need a new or patched kernel instead the CM10 smdk421x one?
Well does it have all the closed source libraries fron the phone? If not, it wont boot. Dont think i am calling you stupid, you obviously know what you are doing, but maybe you forgot. Idk. Check that. Try running a log cat and debug that. Sent from my GT-I9300 using xda premium
b-eock said: Well does it have all the closed source libraries fron the phone? If not, it wont boot. Dont think i am calling you stupid, you obviously know what you are doing, but maybe you forgot. Idk. Check that. Try running a log cat and debug that. Sent from my GT-I9300 using xda premium Click to expand... Click to collapse Thanks for the hint, yes i have all files included - i cant connect to adb, i see only small colored point on the top left side and a sensor is red blinking (the one to the right of the speaker.
That would be the proximity sensor near the top front speaker. Cant connect, adb binary in /system/bin or xbin? Sent from my GT-I9300 using xda premium
[Q] Building a specific apk from source.
Quick question. Can you download one specific apk from Android source and then just compile that or do you have to download the entire source, compile the entire rom and pick out the one apk? Id like to look at adding/merging some things to Mms.apk which I cant do just through apktool/xml but if it requires a full build environment Ill have to add it to the pile of things to get round to Never really looked at compiling from source, tend to stick to what I know (which isnt a lot!)