Related
Hi!
Since last week, I've been working on an usable kernel for the HTC Vox. I guess you've already looked at this post: http://forum.xda-developers.com/showthread.php?t=368014&page=5
More or less, I have a working kernel. I've tested some images against the modified kernel, and both Gpe and Opie get to the welcome screen (without getting stucked). Nothing is really usable, as they're not even compiled for this specific platform (cannot get to compile opie for arm by myself... yet), but as a base, it's not bad at all.
As I've seen on my previous post, there's people interested on this (3300 views make me believe that), what I would want to know is, are there more developers interested on building a linux port for the Vox? Testers will be needed also, but later, when we get to something useful for testing
If you're interested, reply!
Cannot help u develop anything here, but would be a willing tester for it... thoroughly
I'd love to help, but I'm in the middle of moving to a new place and won't have internet most of the time next 2 weeks.
Do you have a Wiki or other place for collaberating? SourceForge perhaps?
I do have a wiki, but upload is no faster than around 80kB/s
In case you haven't seen it, you have a new build of the kernel on the other post, along with links and a little manual to start a graphic environment on the vox.
@barth666, @StefanHamminga
I've been thinking about it, and... I don't know what to do I mean, I think Sourceforge is the best place to dump it all, and it gives us a wiki too. On the other side, here is the xanadux wiki, and maybe it would be a good idea to let sourceforge host the files, and leave the wiki in here with other HTC phones... what do you think?
Oh! For GPIO dumping, the only thing I've seen working is the linwizard project's Haret_Omap.exe (in case you want to try to guess where the damned keys are )
PS: Anyone has an HTC Tornado? I'd love to know if the tornado kernel makes the leds and vibrator flash, I can't find where they are!
biktor_gj said:
PS: Anyone has an HTC Tornado? I'd love to know if the tornado kernel makes the leds and vibrator flash, I can't find where they are!
Click to expand...
Click to collapse
I have a tornado (and vox and wings), so tell me what to test
I know from the ml_iPod wiki (I am the admin) that SourceForge is really slow and the Php and Sql versions are old, in case you want to set up something like MediaWiki! You might want to try http://code.google.com/ , it has a built in Wiki and you can host files!
Just a suggestion
Keep up the good work
EDIT: I could even set one up, if you want, but I am not into coding at all!
Hi! Sorry for the delay, but I'm having lots of work this week and I've been unable to keep on with this...
@Walram: On the following days I'll try to build a kernel for you, wich should put all the lights on and makes the phone vibrate until you take the battery out Obviously just for testing, it shouldn't break anything, but I need to know if the originally-made-for-the-tornado vibrator and led drivers actually work on the tornado... Thanks!
@Frauhottelmann
Didn't know that google gave that service too! will look at it this weekend and post back when I have something done with this.. thanks for the feedback!
walram said:
I have a tornado (and vox and wings), so tell me what to test
Click to expand...
Click to collapse
Hi!
Ok, here's what I want you to try. If you haven't downloaded it yet, download the Linux Test Image:
http://rapidshare.com/files/93938763/test.zip.html
Then, download the kernel for the tornado:
http://rapidshare.com/files/96145010/kernel_tornado_driver.tar.gz.html
Dump the contents of the first file to the memory card, and then overwrite the file "zImage", with the one from the second link. Run haret, and hit "Run".
It should, at least, boot. If it doesn't, tell me where it gets frozen (could be that you only se some dots on the screen, whatever appears, just tell me )
If it boots, don't stop looking at the leds (charge/bluetooth leds mainly), they should, at least, flash -theorically they should stay on all the time-. It also should vibrate, at least for a quarter of second
I just need to know what it actually does!
Thanks!
So what about a dev-page? Then you don't need to upload it to Rapidshare and you can see the progress better!
Hi frauhottelmann,
I'm going to tell you the truth. I think it would be better if it's you who admins a site for this project than if I do, for various reasons:
1. I started all this thing, but I'm no owner of anything, by now I just hacked four things to make this phone boot a kernel, but no more.
2. I've seen your work at the ml_ipod sourceforge page, and think it's usable, clean, and nice, and I think that's exactly what we would need (even if it's a little slow just as you stated in your previous post). I could make the graphics for the web (I'm quite decent at photoshop), but I have never built a wiki, or a project anywhere else, and I don't know a sh** about it, so that would be another big thing to learn, and for now, I gotta learn more about the linux kernel, and that itself it's huge.
3. I don't think I can handle work, classes, building patches, kernels and bootstrap images and administrate a site, it feels like too much for me
Conclussion? I think it's better to let people do what does better, and I'm quite sure you'll do it better than I, so if you want, it's all yours
PS: In any case, we will need a name for the project, any suggestions?
What I have heard from the ml_iPod developers is that upload to SF is not a nice process either. I still think Google code is better, although it's not as customizable as SF.net. But we could also set up a page on Googlepages (pages.google.com) and then point to the Google code site with the Wiki and downloads!
I can offer my technical know-how (SPL, GPIOs, etc.)
Since I have little time you should ask me precise questions for which I can try to find the answers.
Sorry for the delay...
frauhottelmann said:
What I have heard from the ml_iPod developers is that upload to SF is not a nice process either. I still think Google code is better, although it's not as customizable as SF.net. But we could also set up a page on Googlepages (pages.google.com) and then point to the Google code site with the Wiki and downloads!
Click to expand...
Click to collapse
So we can start using google code, and stick with it if it goes well. We can always change the hosting if something goes wrong! About the wiki, the easiest thing is start with google code too, and simply link the xda wiki to it...
i can't code, but i can keep you company maybe
i am here if help is nedeed
But what name do we want to use?
Linux for Vox?
LinVox !
how does that sound ?
just kidding
waiting to get linux running on my vox....
But what name do we want to use?
Click to expand...
Click to collapse
Hooked on Vonix!
vonix sounds ok
can also try "Mobile TUX"
wow
this is an incredible news ! linux on the Vox !
I'd love to flash mine with a movibuntu distro =)
How do you guys feel about splitting the project up in several subprojects?
Like:
Kernel and driver work: TI OMAP HTC Vox board patch and perhaps drivers
Base system: minimal rootfs and toolkit to utilize all Vox functionality
Usability: GUI and (for instance) Android support
This would also enable us to share the base system & usability work with other 'linux on smartphone' and embedded projects.
I do have a suggestion for the base system:
www.emdebian.org
Very up to date build toolchain for arm (GCC 4.x toolchains) and you can have apt support on the base rom. This would allow access to a huge amount of packages that can be used with relatively little effort. Others I've checked out are the new mobile ubuntu (system requirements way to high), MontaVista (severe lack of proper documentation to get up to speed quickly), uClinux (uses ulibc instead of the faster full fledged one, in my opinion we'd better trade some storage for more speed) and some others I can't remember now...
PS. I've got internet at my new place and I've recovered my bricked wizard from the 'spare electronics bin', so finally I can spend some more time on this
So you’ve got a nice, shiny, new G1 and you’ve been hearing about all the amazing things you can do with it but you “MUST HAVE ROOT”. As far as you know, you’re not a plant (although you may feel as smart as one at this point) and beyond that, you have no clue what any of the terms or concepts mean in context.
Well, I’m bored so I’m going to try and clear some things up.
There are a lot of threads that cover each of these things but I’m going to try and put as many basics into one post as possible. Hopefully it can be a perfect start for n00bs and good reference in lieu of search for others. Please feel free to correct any semantic (or blatant) mistakes I make.
I’ll keep the glossary here and update terms as I add to this post:
Android OS - Like Windows Mobile but based on Linux, using a Java based front end.
Linux - Open Source operating system used instead of Windows XP/Vista, Mac OSX etc... it's free (as in beer).
Open Source (From Wiki) – Free and open source software, also F/OSS, FOSS, or FLOSS (free/libre/open source software) is software which is liberally licensed to grant the right of users to study, change, and improve its design through the availability of its source code.
Root (as in access)- root is like the administrator account on a windows machine (also referred to as su, or superuser). It allows you to have complete access to the underlying OS of a linux or *nix based machine. For the G1, it allows for the use of themes, native backup functionality, manually selecting which apps can utilize root access, auto-rotate screen, multi-touch in browser, moving applications/caches to the sd card etc...
Root (as in location)- the 'root' of a folder or drive is the top most area of that location. In windows, C:\ is the 'root' of your hard drive. The 'root' of your SD card just means you haven't moved into any subfolders.
Shell – (also heard as terminal, bash, command line) This is a loose definition, but it’s basically a command line to run specific actions against the OS.
Bootloader – the SPL and IPL of a flash based device. See jashu’s description here.
SPL (Secondary Program Loader) - You get to the SPL by holding the camera button while powering on your phone. This is where you flash NBH images. See bootloader above.
Recovery Mode - Holding the 'Home' key while while powering on the G1 will take you into Recovery Mode. From here you can perform a NANDroid backup, wipe your phone, access a command line and of course, flash your phone with an update.zip file.
RC## (or release candidate) – In context to the G1, it is an official release of Android from T-Mobile meant specifically for the G1 (not ADP).
ADP (Android Developer Phone) – A Google specific (or carrier non-specific) version of the G1/Dream that has root access by default and is meant for developers writing apps for the G1, or Android in general.
ADP vs. RC## - Neither RC’s or ADP versions are tied to their respective hardware. With the right bootloader, you can flash an ADP image to a G1 or an RC image to an ADP.
JFV1.## - Is a specific Version of a JesusFreke ROM. JesusFreke is a developer on this website that has graciously spent his time to modify the G1 OS to allow us to have root access to our phones. This gives us the ability to explore and modify our phones via a command line.
Cupcake – a development branch of the Android OS that contains many improvements that was merged into the master build of Android and is currently being released to new phones as Android 1.5.
Nandroid – a utility, accessible through Recovery Mode, that allows you to backup your phone and restore to the exact condition at backup.
Apps2SD – Applications moved to your SD card instead of internal memory. Some people like the extra room, some people don’t want to hassle with the partitioning.
Partition – just like the partitions that separate cubicles in an office, a partition separates parts of a drive.
File system – there are many. It’s basically a specific way of organizing data on a partition. FAT(32) is generally windows, ext2 is generally linux. This is not a hard and fast rule, just most common in context with what you’ll see here.
Scripts – scripts are text files that contain a list of commands to perform. Instead of typing each command out multiple times, a script can be run that will initiate all steps listed in the script.
Android SDK (System Developer’s Kit) – This includes all tools (sans fastboot) that a developer needs to create applications for the G1. It also has tools for interacting with the phone via a command line (ADB).
ADB - is a part of the SDK that allows you to run commands against the G1 in lieu of using the terminal on the phone itself.
Fastboot - is a tool used to flash system images (.img files) to the G1 from a command line on your pc. IMG files are created when you do NANDroid backups and official images can be downloaded from HTC as well. To get to fastboot mode on your phone, hold the back button while powering on.
When T-Mobile first released the G1, they left a bug in the Android OS that allowed anything typed on the keyboard to be passed on to a root shell running in the background. This really was a major flaw and needed to be patched. Unfortunately, when they patched it, they really patched it. RC29 was the last version that still had root. With all versions RC30 on, it was removed. It completely denied us any hope at modding our “open-source” phone.
Somehow, the base image for RC29 (dreaimg.nbh) was leaked and some enterprising developers were able get access to the bootloader and return an updated G1 (RC30+) to RC29 and use this to regain root.
Somewhere along this road, Google released the ADP (Android Developer Phone), which has root enabled and uses a specific SPL (EngineeringSPL) that was the base for the modified HardSPL that most of us use now. Nandroid was included to allow us to back up our phones and shortly after, JesusFreke modified RC30 to keep root and still provide the fixes and improvements that came with it.
I’m not sure where it all started, but eventually, LucidREM released a modified version of JesusFreke’s ROM. This made moving applications to SD painless and freed up system storage and now we can have 32 flashlights and 62 tip calculators installed all at once.
Apps2sd has been the bane of many peoples existence. It requires you to partition your SD card in to separate file systems (FAT32 to remain compatible with windows computers as a mass storage device and ext2 to maintain compatibility with the underlying linux OS of the G1). It also requires you to move your apps to the SD card and then create symbolic links (similar to a windows shortcut) from the internal location pointing to the SD card. Lots can go wrong in this process and that’s why LucidREM, MartinFick, MarcusMaximus04 and others have created tools to help simplify the process.
Now of course, to achieve any of the things you want to do with the G1, you have to interact with it. There are at least 2 main ways to do this. Some prefer to do everything from the phone itself using a terminal, while some prefer to use their PC with the phone connected via USB. Others avoid both of these, as best they can, and use other peoples apps or scripts anywhere they can get away with it. This is why you may find many different explanations of the same goal.
In order to interact with your phone from a pc, you need the Android SDK, which includes ADB. ADB is basically a linux shell that communicates with the G1. It is easier to copy and paste from threads and insert commands without worrying about making typos. It also requires it’s own bit of hoops to jump through (unless you use a mac or linux ;-)) and sometimes scares people away. It is highly recommended if you plan on hacking at your phone with any regularity.
Of course, there are some sadists (I once was one) that like to type line after line of code on a tiny keyboard and use the terminal directly from the phone. This is fun and it makes you feel 1337, but it also leaves a lot of room for error. Remember, you are a root user now, and any mistake you make can be potentially huge.
Well, that’s all for now folks. Please feel free to add, subtract, reorganize, correct anything I’ve said, in the comments. Also, I’ve tried to add links to any relevant threads and sources that I used in making this… this, whatever you wanna call it.
Thanks to everyone in this community for doing what you do. We are all geeks and enjoy doing this stuff. It's good to have so many talented people taking an interest in Android and the G1 in general. It is open source communites that keep technology interesting and exciting.
Thanks to Haykuro, TheDudeofLife, all the theme devs, and all the big players that I didn't reference in this post. Oh, and SolemWishing for the Timeline! It helped, thanks!
Reserved for future posting
Awesome post for nuubs. This should be permanently stickied!
Very cool. a couple terms you should add:
Fastboot
SPL
Recovery mode
(including what key strokes you need to hit to get into spl and recov. modes)
Thanks for the feedback!
I added SPL and Recovery... let me get my facts straight on fastboot and I'll add that tomorrow.
I don't know if it is the right place for it, but there seem to have been lots of question about "radio" or more specifically "radio update".
I feel smarter already.
I particularly found the file system explanation useful, i put it together that fat32 and the other were the two partitions but didnt realize which was for cpu. Not ready to attempt but definitely closer (although Im not even sure if I want to partition i have no need for all that space at this point) It doesnt affect performance does it?
Agreed. Good stuff. Definitely noob required reading material.
Yes, indeed a very nice guide for the beginners. Hell we ALL started that way...i remember when I first got this phone ~6 months ago (no root), and there was almost nothing about it, no support, no add-ons, no hacks, nothing. It was boring, and for me I was coming from a motorola (motomodders?), so going to something that was far superior but didnt have community support made me almost cry.
Though look now, 3 months later the market was filling up and being abundent of new stuff to play with (I didnt even try rooting for a while, until it became a lot more well-known [fixes and the likes], and themes became a necessity because they started to get really good), and now 6 months later people are hacking away figuring out soo much stuff about it. Amazing work everyone, seriously.
Something good: It all starts at the roots .
Well, I added info on fastboot and exceeded my 10000 character limit. Now I understand why so many people reserve the second post. lol...
I'll make some changes so I can add info about the radio, however the link to fastboot explains the radio fairly well.
Thanks for the feedback everybody, I hope this helps some people out.
skri11a said:
So you’ve got a nice, shiny, new G1 and you’ve been hearing about all the amazing things you can do with it but you “MUST HAVE ROOT”. As far as you know, you’re not a plant (although you may feel as smart as one at this point) and beyond that, you have no clue what any of the terms or concepts mean in context.
Click to expand...
Click to collapse
When i read those lines i knew that this post would be worth reading
It was a really nice n00b guide, though ive done some WiMo flashing so some of the terms sounded familliar i certanly learned a thing or two
I would say it should be stickied and put on the wiki - oh and perhaps list it in alphabetic order, it would make it more usefull as a "I dont understand this term so ill just look it up"-thread...
Perhaps you can get a mod to give you post #2 & #3
//M
DMaverick50 said:
I feel smarter already.
I particularly found the file system explanation useful, i put it together that fat32 and the other were the two partitions but didnt realize which was for cpu. Not ready to attempt but definitely closer (although Im not even sure if I want to partition i have no need for all that space at this point) It doesnt affect performance does it?
Click to expand...
Click to collapse
I'm glad it helped. As far as performance issues, I've had none. In fact, when I was skating along with 12-19MB of free space, my phone would crall and cause me all sorts of grief. Since I've moved the apps and dalvik-cache, it's been very responsive and reliable. That being said, get a GOOD sd card. I see a lot of people having problems using cheap or < class4 sd cards.
m.klinge said:
When i read those lines i knew that this post would be worth reading
It was a really nice n00b guide, though ive done some WiMo flashing so some of the terms sounded familliar i certanly learned a thing or two
I would say it should be stickied and put on the wiki - oh and perhaps list it in alphabetic order, it would make it more usefull as a "I dont understand this term so ill just look it up"-thread...
Perhaps you can get a mod to give you post #2 & #3
//M
Click to expand...
Click to collapse
lol... I'm glad you liked it.
And thanks for the tips. I'm gone for the weekend, but I'll alphabetize it when I get back. Not sure what I can do about getting it stickied but I'll look into the wiki on monday too.
can you add busybox
in the nandroid instructions it requires busybox but I didnt see an explanation for what busybox is. Thanks and this thread has already been very helpful for me
speaking of stickying this....
who is in charge of stickies? A lot of stickable topics aren't stickied and a lot of topics that should be unstickied are still stuck...
DMaverick50 said:
in the nandroid instructions it requires busybox but I didnt see an explanation for what busybox is. Thanks and this thread has already been very helpful for me
Click to expand...
Click to collapse
Hey sorry for the late reply... Been pretty busy since Friday.
I'll try and add this to the first post shortly. I may have to remove some of the history lesson if I can't get a mod to give me the second/third post.
BusyBox - This is a single executable utility that contains many common Linux commands, instead of having an individual executable for each command. As far as I know this is built into all of the JF releases, as well as Dude's. It is also usable in the JF recovery console by hitting alt-x. To use busybox, just type "busybox" in front of the command you want to use (i.e. #busybox ls -L --to get a list of your directory).
AbsoluteDesignz said:
speaking of stickying this....
who is in charge of stickies? A lot of stickable topics aren't stickied and a lot of topics that should be unstickied are still stuck...
Click to expand...
Click to collapse
If you figure this out, let me know. I haven't tried to PM a mod or anything but I'd still be curious to know what the magic requirements are.
This will definitely help a lot of newcomers. Thanks for taking the time to make it.
Way to get stickied! Now I can stop copying pasting updates worrying I might not be able to find the post...
skri11a:
BusyBox - This is a single executable utility that contains many common Linux commands, instead of having an individual executable for each command. As far as I know this is built into all of the JF releases, as well as Dude's. It is also usable in the JF recovery console by hitting alt-x. To use busybox, just type "busybox" in front of the command you want to use (i.e. #busybox ls -L --to get a list of your directory).
Click to expand...
Click to collapse
Wouldn't "Unix utilities" be more correct than "Linux commands"?
And saying Android is "like windows mobile" is blasphemy! You can't compare Unix to Micro$oft Windoze (Yes, that's a very sophisticated and mature way to express my hatred of the OS )! >:|
Anyway, it's good that you wrote this, theres probably a lot around here not having a clue about how things work in the world of unix
Hello, XDA. This is my first post.
Before I start out looking like I'm helpless, and keeping with the mindset that I don't expect something for nothing, I've spent the time to write up newbie-friendly guides:
(edit: Apparently, I have to make eight posts before I can post external links) I will probably accumulate eight posts in this thread, and will edit this at that point.)
Adding OpenVPN and liblzo to the AOSP source tree and compiling a kernel to support it. Includes instructions for patching OpenSSL1.0.0a to enable engine support.
Wrangling with USB permissions
Making a custom boot animation from an animated gif
If it would be better to have the content located on the forum somewhere, tell me where it ought to go.
My problem:
I am trying to roll my own ROM from AOSP (Gingerbread 2.3.4). I have been successfully building images and even kernels for the Nexus S for several weeks now. Recently, I broke something.
I've beat my head against this for three days now. I think I read the entire internet before posting here. I think there is a problem with my build tools, but I don't know where I should be looking for it, or how to test it. The problem is not in the AOSP source tree. I know this because I checked out a clean copy of it, followed Google's instructions, and I get the same result. I get the same result in both the emulator, and on the Nexus S.
When I launch the browser, this is the output from logcat:
(edit: Wow... the parser that tells me I can't post URLs is so aggressive, that I can't paste my logcat output either... I have base64 encoded it instead.)
Code:
SS9BY3Rpdml0eU1hbmFnZXIoICAgNjYpOiBTdGFydCBwcm9jIGNvbS5hbmRyb2lkLmJyb3dzZXIg
Zm9yIGFjdGl2aXR5IGNvbS5hbmRyb2lkLmJyb3dzZXIvLkJyb3dzZXJBY3Rpdml0eTogcGlkPTM1
NyB1aWQ9MTAwMjEgZ2lkcz17MzAwMywgMTAxNX0NCkkvQWN0aXZpdHlUaHJlYWQoICAzNTcpOiBQ
dWIgYnJvd3NlcjogY29tLmFuZHJvaWQuYnJvd3Nlci5Ccm93c2VyUHJvdmlkZXINCkkvQnJvd3Nl
clNldHRpbmdzKCAgMzU3KTogU2VsZWN0ZWQgc2VhcmNoIGVuZ2luZTogQWN0aXZpdHlTZWFyY2hF
bmdpbmV7YW5kcm9pZC5hcHAuU2VhcmNoYWJsZUluZm9ANDA1OTU4Yzh9DQpEL2RhbHZpa3ZtKCAg
MzU3KTogR0NfQ09OQ1VSUkVOVCBmcmVlZCA0NTZLLCA1MSUgZnJlZSAyOTE0Sy81ODMxSywgZXh0
ZXJuYWwgOTM0Sy8xMDM4SywgcGF1c2VkIDVtcyszbXMNClcvZGFsdmlrdm0oICAzNTcpOiBObyBp
bXBsZW1lbnRhdGlvbiBmb3VuZCBmb3IgbmF0aXZlIExhbmRyb2lkL3dlYmtpdC9KV2ViQ29yZUph
dmFCcmlkZ2U7Lm5hdGl2ZUNvbnN0cnVjdG9yICgpVg0KVy9kYWx2aWt2bSggIDM1Nyk6IHRocmVh
ZGlkPTExOiB0aHJlYWQgZXhpdGluZyB3aXRoIHVuY2F1Z2h0IGV4Y2VwdGlvbiAoZ3JvdXA9MHg0
MDAxNTU2MCkNCkUvQW5kcm9pZFJ1bnRpbWUoICAzNTcpOiBGQVRBTCBFWENFUFRJT046IFdlYlZp
ZXdDb3JlVGhyZWFkDQpFL0FuZHJvaWRSdW50aW1lKCAgMzU3KTogamF2YS5sYW5nLlVuc2F0aXNm
aWVkTGlua0Vycm9yOiBuYXRpdmVDb25zdHJ1Y3Rvcg0KRS9BbmRyb2lkUnVudGltZSggIDM1Nyk6
IAlhdCBhbmRyb2lkLndlYmtpdC5KV2ViQ29yZUphdmFCcmlkZ2UubmF0aXZlQ29uc3RydWN0b3Io
TmF0aXZlIE1ldGhvZCkNCkUvQW5kcm9pZFJ1bnRpbWUoICAzNTcpOiAJYXQgYW5kcm9pZC53ZWJr
aXQuSldlYkNvcmVKYXZhQnJpZGdlLjxpbml0PihKV2ViQ29yZUphdmFCcmlkZ2UuamF2YTo2MCkN
CkUvQW5kcm9pZFJ1bnRpbWUoICAzNTcpOiAJYXQgYW5kcm9pZC53ZWJraXQuQnJvd3NlckZyYW1l
Ljxpbml0PihCcm93c2VyRnJhbWUuamF2YToxOTIpDQpFL0FuZHJvaWRSdW50aW1lKCAgMzU3KTog
CWF0IGFuZHJvaWQud2Via2l0LldlYlZpZXdDb3JlLmluaXRpYWxpemUoV2ViVmlld0NvcmUuamF2
YToxOTApDQpFL0FuZHJvaWRSdW50aW1lKCAgMzU3KTogCWF0IGFuZHJvaWQud2Via2l0LldlYlZp
ZXdDb3JlLmFjY2VzcyQ1MDAoV2ViVmlld0NvcmUuamF2YTo1MykNCkUvQW5kcm9pZFJ1bnRpbWUo
ICAzNTcpOiAJYXQgYW5kcm9pZC53ZWJraXQuV2ViVmlld0NvcmUkV2ViQ29yZVRocmVhZCQxLmhh
bmRsZU1lc3NhZ2UoV2ViVmlld0NvcmUuamF2YTo2MTQpDQpFL0FuZHJvaWRSdW50aW1lKCAgMzU3
KTogCWF0IGFuZHJvaWQub3MuSGFuZGxlci5kaXNwYXRjaE1lc3NhZ2UoSGFuZGxlci5qYXZhOjk5
KQ0KRS9BbmRyb2lkUnVudGltZSggIDM1Nyk6IAlhdCBhbmRyb2lkLm9zLkxvb3Blci5sb29wKExv
b3Blci5qYXZhOjEzMCkNCkUvQW5kcm9pZFJ1bnRpbWUoICAzNTcpOiAJYXQgYW5kcm9pZC53ZWJr
aXQuV2ViVmlld0NvcmUkV2ViQ29yZVRocmVhZC5ydW4oV2ViVmlld0NvcmUuamF2YTo2MzMpDQpF
L0FuZHJvaWRSdW50aW1lKCAgMzU3KTogCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5q
YXZhOjEwMTkpDQpXL0FjdGl2aXR5TWFuYWdlciggICA2Nik6ICAgRm9yY2UgZmluaXNoaW5nIGFj
dGl2aXR5IGNvbS5hbmRyb2lkLmJyb3dzZXIvLkJyb3dzZXJBY3Rpdml0eQ0KVy9kYWx2aWt2bSgg
IDM1Nyk6IE5vIGltcGxlbWVudGF0aW9uIGZvdW5kIGZvciBuYXRpdmUgTGFuZHJvaWQvd2Via2l0
L1dlYlZpZXc7Lm5hdGl2ZU1vdmVHZW5lcmF0aW9uICgpSQ0KRC9BbmRyb2lkUnVudGltZSggIDM1
Nyk6IFNodXR0aW5nIGRvd24gVk0NClcvZGFsdmlrdm0oICAzNTcpOiB0aHJlYWRpZD0xOiB0aHJl
YWQgZXhpdGluZyB3aXRoIHVuY2F1Z2h0IGV4Y2VwdGlvbiAoZ3JvdXA9MHg0MDAxNTU2MCkNCkkv
UHJvY2VzcyAoICAzNTcpOiBTZW5kaW5nIHNpZ25hbC4gUElEOiAzNTcgU0lHOiA5
At first, I thought maybe it was some setting specific to the browser. But then I tried another application that also calls native libraries (CSIPSimple). Whenever CSIP tries to load native libraries, I see something like this:
Code:
RC9kYWx2aWt2bSggIDQyOCk6IFRyeWluZyB0byBsb2FkIGxpYiAvZGF0YS9kYXRhL2NvbS5jc2lw
c2ltcGxlL2xpYi9saWJwanNpcGpuaS5zbyAweDQwNTEzNDg4DQpFL1BqU2VydmljZSggIDQyOCk6
IFdlIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhlIGN1cnJlbnQgc3RhY2suLi4uIE5PVCBZRVQgSW1w
bGVtZW50ZWQNCkUvUGpTZXJ2aWNlKCAgNDI4KTogamF2YS5sYW5nLlVuc2F0aXNmaWVkTGlua0Vy
cm9yOiBDYW5ub3QgbG9hZCBsaWJyYXJ5OiByZWxvY19saWJyYXJ5WzEzMTVdOiAgICAzMiBjYW5u
b3QgbG9jYXRlICdfX2Rzb19oYW5kbGUnLi4uDQpFL1BqU2VydmljZSggIDQyOCk6IA0KRS9QalNl
cnZpY2UoICA0MjgpOiAJYXQgamF2YS5sYW5nLlJ1bnRpbWUubG9hZChSdW50aW1lLmphdmE6Mzk0
KQ0KRS9QalNlcnZpY2UoICA0MjgpOiAJYXQgamF2YS5sYW5nLlN5c3RlbS5sb2FkKFN5c3RlbS5q
YXZhOjUzNCkNCkUvUGpTZXJ2aWNlKCAgNDI4KTogCWF0IGNvbS5jc2lwc2ltcGxlLnBqc2lwLlBq
U2lwU2VydmljZS50cnlUb0xvYWRTdGFjayhQalNpcFNlcnZpY2UuamF2YToxMTkpDQpFL1BqU2Vy
dmljZSggIDQyOCk6IAlhdCBjb20uY3NpcHNpbXBsZS5zZXJ2aWNlLlNpcFNlcnZpY2UubG9hZFN0
YWNrKFNpcFNlcnZpY2UuamF2YTo5MTMpDQpFL1BqU2VydmljZSggIDQyOCk6IAlhdCBjb20uY3Np
cHNpbXBsZS5zZXJ2aWNlLlNpcFNlcnZpY2Uub25TdGFydChTaXBTZXJ2aWNlLmphdmE6ODczKQ0K
RS9QalNlcnZpY2UoICA0MjgpOiAJYXQgYW5kcm9pZC5hcHAuU2VydmljZS5vblN0YXJ0Q29tbWFu
ZChTZXJ2aWNlLmphdmE6NDI4KQ0KRS9QalNlcnZpY2UoICA0MjgpOiAJYXQgYW5kcm9pZC5hcHAu
QWN0aXZpdHlUaHJlYWQuaGFuZGxlU2VydmljZUFyZ3MoQWN0aXZpdHlUaHJlYWQuamF2YToyMDM5
KQ0KRS9QalNlcnZpY2UoICA0MjgpOiAJYXQgYW5kcm9pZC5hcHAuQWN0aXZpdHlUaHJlYWQuYWNj
ZXNzJDI4MDAoQWN0aXZpdHlUaHJlYWQuamF2YToxMTcpDQpFL1BqU2VydmljZSggIDQyOCk6IAlh
dCBhbmRyb2lkLmFwcC5BY3Rpdml0eVRocmVhZCRILmhhbmRsZU1lc3NhZ2UoQWN0aXZpdHlUaHJl
YWQuamF2YTo5OTQpDQpFL1BqU2VydmljZSggIDQyOCk6IAlhdCBhbmRyb2lkLm9zLkhhbmRsZXIu
ZGlzcGF0Y2hNZXNzYWdlKEhhbmRsZXIuamF2YTo5OSkNCkUvUGpTZXJ2aWNlKCAgNDI4KTogCWF0
IGFuZHJvaWQub3MuTG9vcGVyLmxvb3AoTG9vcGVyLmphdmE6MTMwKQ0KRS9QalNlcnZpY2UoICA0
MjgpOiAJYXQgYW5kcm9pZC5hcHAuQWN0aXZpdHlUaHJlYWQubWFpbihBY3Rpdml0eVRocmVhZC5q
YXZhOjM2ODMpDQpFL1BqU2VydmljZSggIDQyOCk6IAlhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRo
b2QuaW52b2tlTmF0aXZlKE5hdGl2ZSBNZXRob2QpDQpFL1BqU2VydmljZSggIDQyOCk6IAlhdCBq
YXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjUwNykNCkUvUGpTZXJ2
aWNlKCAgNDI4KTogCWF0IGNvbS5hbmRyb2lkLmludGVybmFsLm9zLlp5Z290ZUluaXQkTWV0aG9k
QW5kQXJnc0NhbGxlci5ydW4oWnlnb3RlSW5pdC5qYXZhOjgzOSkNCkUvUGpTZXJ2aWNlKCAgNDI4
KTogCWF0IGNvbS5hbmRyb2lkLmludGVybmFsLm9zLlp5Z290ZUluaXQubWFpbihaeWdvdGVJbml0
LmphdmE6NTk3KQ0KRS9QalNlcnZpY2UoICA0MjgpOiAJYXQgZGFsdmlrLnN5c3RlbS5OYXRpdmVT
dGFydC5tYWluKE5hdGl2ZSBNZXRob2Qp
Are there any veteran android devs that can point me in the correct general direction? I don't need to have my hand held, but having never written any app more complex than HelloWorld, I'm not sure where to begin debugging.
edit: As long as I'm thwarting the parser with Base64, here are the external links I am not supposed to be able to post. I hope it helps someone. Figuring all that out was a lot of work.
Code:
W0xJU1RdDQpbKl1bVVJMPSJodHRwOi8vd3d3Lmpvc2hpYW5saW5kc2F5LmNvbS9pbmRleC5waHA/
aWQ9MTEzIl1BZGRpbmcgT3BlblZQTiBhbmQgbGlibHpvIHRvIHRoZSBBT1NQIHNvdXJjZSB0cmVl
IGFuZCBjb21waWxpbmcgYSBrZXJuZWwgdG8gc3VwcG9ydCBpdC4gSW5jbHVkZXMgaW5zdHJ1Y3Rp
b25zIGZvciBwYXRjaGluZyBPcGVuU1NMMS4wLjBhIHRvIGVuYWJsZSBlbmdpbmUgc3VwcG9ydC5b
L1VSTF0NClsqXVtVUkw9Imh0dHA6Ly93d3cuam9zaGlhbmxpbmRzYXkuY29tL2luZGV4LnBocD9p
ZD0xMTIiXVdyYW5nbGluZyB3aXRoIFVTQiBwZXJtaXNzaW9uc1svVVJMXQ0KWypdW1VSTD0iaHR0
cDovL3d3dy5qb3NoaWFubGluZHNheS5jb20vaW5kZXgucGhwP2lkPTExMSJdTWFraW5nIGEgY3Vz
dG9tIGJvb3QgYW5pbWF0aW9uIGZyb20gYW4gYW5pbWF0ZWQgZ2lmWy9VUkxdDQpbL0xJU1Rd
Thanks in advance for any help you are willing to give.
Hello XDA,
I have some questions about the sidekick Development Keys. I actually used to have one of my own in 2008. Here is what I am looking for.
An actual copy of a dev-key file.
The HTCONSOLE command for uploading a dev-key file to the phone.
I am looking for these things because I am interested in reversing the Dev-Key algorithm. I am planning on using JTAG to dump the firmware and do an investigation. These things all lead up to restoring internet capabilities to the phone. As we know, the phone is a bit crippled because of hard-coded operations to use Danger's servers for networking. But, there is internet access, just need to find a way to circumvent Danger's servers. I thought that getting a dev-key so that I could upload my own programs would be a good first step. However, since I cannot get another from Danger, I figured reversing would be the next best step. However, without the dev-key file format and HTCONSOLE command syntax for uploading the key. I am in the dark.
Thanks in advance
bazzinator said:
Hello XDA,
I have some questions about the sidekick Development Keys. I actually used to have one of my own in 2008. Here is what I am looking for.
An actual copy of a dev-key file.
The HTCONSOLE command for uploading a dev-key file to the phone.
I am looking for these things because I am interested in reversing the Dev-Key algorithm. I am planning on using JTAG to dump the firmware and do an investigation. These things all lead up to restoring internet capabilities to the phone. As we know, the phone is a bit crippled because of hard-coded operations to use Danger's servers for networking. But, there is internet access, just need to find a way to circumvent Danger's servers. I thought that getting a dev-key so that I could upload my own programs would be a good first step. However, since I cannot get another from Danger, I figured reversing would be the next best step. However, without the dev-key file format and HTCONSOLE command syntax for uploading the key. I am in the dark.
Thanks in advance
Click to expand...
Click to collapse
Hi!
I had the same problem, is at least 3 years that I try to bring back into operation a old Sidekick2 found in the trash.
I was able to operator-unlock it with a key combination (here in Italy sidekick mobile phones have never been marketed and therefore are virtually unknown!).
Then I search SDK everywhere, for years, all in vain (all danger's site are dead, and archive.org is unuseful)
BUT Today (literally) I found this site: The Holy Grail (w w w .cs.umb.edu / ~bazz / learn /sidekick2/ )! I'm very excited! :victory:
Now I need my devkey but is obvious impossible to obtain it, so I was thinking to automate a brute force process (autoit? a small c++ program? who know..) to get it, but if you can obtain an algoritm via reverse engineering is better.
Another alternative would be try to contact former employees of Danger Inc, but I would not know how to do because english isn't my native language.
so please KEPP US UPDATED! :fingers-crossed:
ABANDONED
Hi! Does anyone here use Linux desktop distributions in chroot environment on Android device?
I am developing wayland protocol server for Android devices. If anyone is interested in checking my project, latest version of apk is always available here:
ftp://ftp.drivehq.com/mogryph/sparkle/
Currently I am only focused on running Xwayland as client. Also apk supports audio output.
Simplest instruction:
1. Android 6 or newer required, busybox required, root required
2. Prepare linux distribution in directory, image or on partition. Make sure you have Xwayland installed in it. Make sure you specify which DE to run (or at least xterm) in ~/.xinitrc
3. Install and start sparkle.apk
4. Press "edit user.sh", uncomment (remove #) line starting with start_generic_container. Change rest of this line to match your device:
first arg - image or partition where distribution is installed. If distribution is installed in directory and mouting is not needed, leave this arg unchanged.
second arg - mount point or directory with distribution. If you use mounting (first arg), this arg can be left unchanged.
third arg - name of the user which will be used to start Xwayland and DE. Its better to specify non-root. Also this is the user who must have .xinitrc in his home dir (see step 2).
5. Save user.sh and click "Start".
6. Any problems and crashes will be reflected in the log.
If you want audio output:
1. Compile and install driver from pcm_sparkle.tar.gz in your distribtion
2. cp 1.asoundrc ~/.asoundrc
If you have blinking problem, change upload_mode from 1 to 2 in settings. If you have bad performance, setting no_damage to true may help, but in most cases no_damage=false is better. Fastest upload mode is 0 (if it works).
If you don't trust me and don't want to give sparkle root permissions (I perfectly understand this) you don't have to. Also you can do without busybox.
But in this case, you need to understand and do a lot of things. Check sparkle's user.sh to get idea about what needs to be done. Basically:
1. You need to make /data/data/com.sion.sparkle/files accessible from inside chroot container. You can use bind bound.
2. Make sure you have tmpfs mounted over /tmp in container.
3. You may need to change selinux context on /tmp to match sparkle's context or disable SELinux.
4. You need to create new directory in /tmp, symlink sparkle's wayland socket from /data/data/com.sion.sparkle/files/wayland-0 to this dir. And export XDG_RUNTIME_DIR to point to this dir. Dir must be (ch)owned by user who will be running Xwayland and DE.
5. After all this, you can try to start Xwayland and your DE.
new version
New version
rgho.st/8Fbz64Rxj
Added x86 and x86_64 support. Actually it is rewritten almost from scratch but x86 support is the only thing others can notice...
Hello! This project is interesting. I tried you app and it works on my Xiaomi Redmi Note 4X(chromium and glmark from chrooted environment works very well)! Can you publish source code on Github, because it really interesting project?
Also I'm interested, please post it on github!
Did you put this up on github or move this thread? Looks very interesting.
1
Argh, sorry, I decided to abandon this project. You are free to delete thread. Also no copyleft-licensed components were used so I don't have to bother releasing sources.
Hentacler said:
Argh, sorry, I decided to abandon this project. You are free to delete thread. Also no copyleft-licensed components were used so I don't have to bother releasing sources.
Click to expand...
Click to collapse
Check your PM please!
1
Hello again.
For last two weeks I was rewriting it from scratch (yes. again... yes, third time).
Probably need another week to make it stable.
Currently I am not sure it runs on any device except my own 5-year old phone (LineageOS 14).
I will maintain last version here:
ftp://ftp.drivehq.com/mogryph/sparkle/
There is no English documentation, but you can see script "user.sh" to get idea about how to start xwayland. In most cases it should be enough to edit few lines in that script to make it work on another device. If you execute this script on your device with "install" argument, it is supposed to place itself into sparkle's directory and sparkle is supposed to run it ("start" function) automatically. Sparkle doesn't request root unless script does.
Here is video of sparkle working:
https://www.youtube.com/watch?v=tOSFYxCF7Q8
But it seems that KDE + video recording was too much for my old phone
Still, if you going to see video, don't close it until 2:00 where I turned of composition which caused lags.
Also on device everything looks much smoother than on video, even after 2:00.
When I watch fullscreen (1280x720) video on my device, sparkle + xwayland together add just 5% of CPU load (20% load of single core).
Thats it I guess... I tried to to discuss sparkle on 4pda.ru (russian forums), but got very bad reception. "xsdl is perfect, dont reinvent the wheel" they say. So I started to hate humanity and I decided to make sparkle personal project. Also this is last time I am solving reCAPTCHA to leave post on XDA.
Still alive
We are still alive. I've changed first post to reflect actual state. Now sparkle supports audio, auto-mouting containers and is lot more stable.
Yet there are still many things I want to improve in sparkle's core before adding new functions.
Also there are few demo videos on ftp.
Amazing!
Working great on my redmi 6 pro. Stock miui 9.9.3 rom. With linuxdeploy and sparkle from your ftp. No lag on visual and sound. My Linux distribution is alpinelinux arm64 arch.
Since first time I see your posting on 4pda. I'm interested in it. And finally it's on xda.
Thanks dev.
---------- Post added at 02:52 AM ---------- Previous post was at 02:44 AM ----------
For anyone interested in the topic. Please follow the instructions in documentation from ftp. And Translate it to eng from rus.
This sounds amazing! Just curious, is it related to https://github.com/twaik/sparkle ?
I now have it working very well on my Samsung Tab S3 using Xwayland and a tiling window manager. Firefox runs amazingly well!
Is it meant to be used only with Xwayland or will it also work with native Wayland applications?
BTW, I think if you open sourced this project and promoted it a bit, it could become quite popular. It's basically the first way to run X11 GUI applications on Android devices at full speed. If you set up a donation link, you could also get compensated for your time and effort. I'll personally contribute $20 if it's open sourced, and I'm sure others will chip in as well.
robsmith11 said:
This sounds amazing! Just curious, is it related to https://github.com/twaik/sparkle ?
Click to expand...
Click to collapse
Thanks for feedback. Nice to hear that someone managed to start this thing
Twaik's repository is clone of my very very old version of sparkle. I made that version years ago when I was just starting to learn linux and C++. Sparkle was rewritten from scratch two or three times since that version. And (I believe) current version is much better.
Regarding making it open source... Few months ago I had to find real job. Can't spend much time on personal projects any more. But I have my own strange programming style and my own vision of what sparkle should be. Not sure I want others to paint on my picture. It's probably all because of Twaik! I hate how he used old open source version of sparkle. He did terrible things to it, outraging all my beliefs Sorry!
P.S.: Yesterday I've uploaded another apk to my ftp. The file is called "sparkle-testing.apk". This version is much newer and has many fixes. But I've also changed to many things since tested version including some fundamental changes. No guarantee it will run at all on other devices. Interest is mega low and I get no test reports at all.
Hi Hentacler, I've just found your project - it looks really promising. Unfortunately, the only link currently working on this thread is to github. Is this project still live?
I have a samsung galaxy note 10+, and am using it as a laptop replacement. In addition to the android apps using Samsung Dex (Samsung's desktop solution), I have several linux distributions installed inside a chroot using userLand - so far, its working great. I'd be keen to give you project a try if it's still live, and am happy to help out with testing from my device.
Re open source - while I like your project, I'm not super interested in investing time into something that's not open sourced - I appreciate your concerns about wanting to maintain the direction, but having transparent development is pretty important to me. Is Twaik's fork of your project a better place to go?
Cheers.
tillum said:
Hi Hentacler, I've just found your project - it looks really promising. Unfortunately, the only link currently working on this thread is to github. Is this project still live?
I have a samsung galaxy note 10+, and am using it as a laptop replacement. In addition to the android apps using Samsung Dex (Samsung's desktop solution), I have several linux distributions installed inside a chroot using userLand - so far, its working great. I'd be keen to give you project a try if it's still live, and am happy to help out with testing from my device.
Re open source - while I like your project, I'm not super interested in investing time into something that's not open sourced - I appreciate your concerns about wanting to maintain the direction, but having transparent development is pretty important to me. Is Twaik's fork of your project a better place to go?
Cheers.
Click to expand...
Click to collapse
ftp://ftp.drivehq.com/mogryph/sparkle/
Link to FTP should work and there you can get two versions:
sparkle.apk - old version, but confirmed to work by 3-4 people.
sparkle-testing.apk - latest version, but only briefly tested by me.
I don't ask anyone to invest anything... Sparkle doesn't request root access or any other dangerous permissions (unless you enable automatic container mounting and starting) so it's safe to try for anyone who wants.
Btw, somewhere between these two versions I've replaced BASH container initialization script with LUA version. That was probably a bad idea. LUA script is harder to start directly as root and hacks I used may not work (currently may even cause application freeze if root access is denied). Going to revert to BASH probably. But this only touches people who want sparkle to mount container and launch everything automatically on single button press.
p.s.: Why I need to solve captcha every time I post something?
Thanks for the new release! I've updated and everything seems to be working without any changes on my Samsung Tab S3 with chroot and Arch Arm Linux.
Your changes also solved the flickering for me! The old version would flicker the screen whenever my keyboard's trackpoint activated, but it's not flickering at all any more. Performance seems to be about the same.
I think this could be quite popular, but not many people know about it. Perhaps a post on Hacker News or Reddit would raise awareness.
I understand your position on open source and maintaining control. One idea if you haven't already considered it is releasing the code with a restrictive license that forbids any forks. But either way, I'm enjoying being to properly use X11 on my tablet.
BTW, have you tried any native Wayland compositors? I don't really understand the Wayland ecosystem that well. I gave Sway a brief try, but it didn't seem to work. I've only been using XWayland.
@Hentacler Thanks for your reply! Very keen to get this working, but having a few issues. I'm unsure how to configure the user.lua file - I'm using your latest apk.
I have a non-rooted device, and am running archlinux under termux. Works fine with xsdl. I have installed xorg-server-wayland for X11. I'd appreciate any advice you have.
@robsmith11 Are you able to share how you got this working on Arch? Thanks!!!!
tillum said:
@Hentacler Thanks for your reply! Very keen to get this working, but having a few issues. I'm unsure how to configure the user.lua file - I'm using your latest apk.
I have a non-rooted device, and am running archlinux under termux. Works fine with xsdl. I have installed xorg-server-wayland for X11. I'd appreciate any advice you have.
@robsmith11 Are you able to share how you got this working on Arch? Thanks!!!!
Click to expand...
Click to collapse
I am not sure it is possible to use sparkle without root...
Sparkle makes it's directory accessible for everyone (chmod 777). Before Android 8 or 9 this was enough and xwayland from termux was able to connect to sparkle. Here is how people used to start it:
export XDG_RUNTIME_DIR=/data/data/com.sion.sparkle/files
Xwayland
But newer versions of Android brought more restrictions and termux can no longer connect to sparkle. These new restrictions are implemented using SELinux if you know what it is. Applications now have different security contexts.
But that is not all. Newest versions of android brought even more terrible meaningless restrictions effectively "killing" applications like termux and many others.
In short, from now one applications are not allowed to execute code (binary) that comes from "untrusted" sources. Termux used to download a lot of such code from it's own repositories. And now it can't. We can't even unpack binaries from assets.
So I can only help with rooted devices.
P.S. Please forgive me, but I am leaving this website. Making people solve recaptcha every time they want to post something is unacceptable level of contempt.
My mail: [email protected]
Thanks for that, will have a play. I could always just root my device. Weird about recaptcha, not having this issue. Currently through termux I have access to the whole sdcard, and am able to download packages (and distros) in it - will have a play and see what else is possible.
@tillum
I basically just followed the instructions on the first post for using Sparkle without busybox. I didn't need to modify the Lua scripts.
I'm guessing SELinux may be a problem without root. I'll try setting it up without root when I have a chance later.