Becoming a Developer - What Tools to Use? - Connected Car

Good evening,
I've been using XDA forums for years to root my android devices. I'm due to try out the new Galaxy S7 Active root and I'll probably be trying to get that done within the next week or so.
I'd like to transition from being a user of knowledge here on the forum to being a producer of it. I have an aftermarket touch screen head unit in my car (pioneer MVH-AV290BT) that I would like to hack to run something other than the stock ROM, like Android Auto or a Linux distribution. If this was already done and there was a thread, I could replace the ROM, but I'd like to learn how to create it myself instead of waiting for someone else do it for me. What tools are used in enabling systems to run aftermarket ROMs? What are the typical processes used in finding exploitable weaknesses?
For reference, I would like to replace the OS on my head unit to allow it to interface with my car's OBD2 port, which I am currently doing with a raspberry pi running into the video input of the console. However this solution is clunky and I would much rather integrate this functionality into the head unit itself, which has the hardware capability to do so. I could do this if it were running a standardized or open source operating system.
I'm a graduate student in engineering and so I have a firm grasp of python, C and its derivatives, and working in a UNIX console. I have written applications in python, C, MATLAB, and JavaScript. I'm just unfamiliar with the process of finding and exploiting weaknesses and am having trouble finding more information.
Thank you for any help you can provide.

Related

[Q] REAL hacking.

Hello there to all the souls of the xda forums.
im new to wp7. never used one before like 3 days ago. i like it, great device my surround is. but im not here to tell you about how good it is. we all know its good.
im here to ask if theres any real hacking going on with this thing yet. im looking for at least some kind of command line.
from there i could use tools such as aircrack, nmap, metasploit, SET, etc.
ive had an iphone for about 3 years, booting iOS and Android. i am used to hacking from that, but at the same time i know there a bigger user base for those devices, so theres more devs for it. i just wanted to know if anyone has already started on such a project before i dedicate alot of my time to developing this for you all.
BTW i am not interested in pirating apps, cracking apps
With enough effort, command-line interface *might* be possible - the OS technically supports such things - but the underlying core is Windows CE. Even less so than NT, CE really isn't meant for a CLI; apps are written with the intent of being run on a graphical interface. Also, having no POSIX compatibility and only partial Win32 compatibility, a lot of apps that you're used to from the desktop (or from POSIX-based phone OSs like iOS and Android) aren't going to be available.
That said, if you want to get started in the WP7 hacking space, there's certainly plenty to do. One project that I have on the back burner until I get some more urgent stuff out of the way is a SSH client. There are a number of things that are required here. First of all, we have homebrew Socket support, but the official SDK lacks it so you'd need to use a native Homebrew DLL. Second, there's no official command line interface, so you'd need to write one. The second point is all sorts of fun, since what you're really writing is a terminal emulator.
Other interesting projects include getting a unified cross-platform approach to writing to the filesystem, or even reading from all of it (instead of the relatively small portions currently accessible) or figuring out how to make third-party apps run in the background.
thanks man. I think I'll work on getting a full file browser for the phone. That should happen , i think, before anything else. As far as a terminal emu, it sounds like its going to be more of a chalange for me. Again, I'm used to more Linux and UNIX systems than I am windows. I had to reinstall windows 7 onto a partition just so I could sync the phone with the Zune software Microsoft insisted I use.
So is anyone currently working on the file browser? Has there been any progress with it? If so, who should I contact so I can help?
sea_bass said:
thanks man. I think I'll work on getting a full file browser for the phone. That should happen , i think, before anything else. As far as a terminal emu, it sounds like its going to be more of a chalange for me. Again, I'm used to more Linux and UNIX systems than I am windows. I had to reinstall windows 7 onto a partition just so I could sync the phone with the Zune software Microsoft insisted I use.
So is anyone currently working on the file browser? Has there been any progress with it? If so, who should I contact so I can help?
Click to expand...
Click to collapse
TouchXplorer. Do a bit of searching. A lot of homebrew has already been in the works.
thesecondsfade said:
TouchXplorer. Do a bit of searching. A lot of homebrew has already been in the works.
Click to expand...
Click to collapse
Thanks. Just found that page

A collective action

One thing that I seem to notice is that even though this forum may have some releases that people can use it seems to lack both information and tools to get into trying to help the community. Some people, such as me and im sure many others, have some, even if only basic, skills but the process of applying them to the field of Windows Phone. For example a while back I wanted to tinker with the Windows Phone emulator but I failed to find working tools to dump and reconstruct the ROM and sadly no documentation to look at the format to see whats going on. I once saw a tool for HTC ROM's I think but that has since disappeared. Some of the old formats are at least partially known but burried somewhere deep in this forum where it becomes a pain to find them.
Specifically I would be interested to know if there are ways to actually debug the assemblies using tools like IDA on either the emulator or an actual phone (even though they were compiled to different instr sets they still probably mostly share the same code). I am also wondering what tools could be used to atleast compile native binaries, even if they can't be executed yet.
I personally have a little reversing experience and a fair amount of coding experience yet the current barrier of lack of information seems overwhelming and deterring. I can't say I will have either the experience or time to get us all further but I wouldn't mind tinkering with my phone and/or it's operating system and isn't that the whole point of this community?
It would interest me if there are others who feel the same way and whether there are others out there who could maybe help to get others started. XDA has a wiki but it seems to be mainly "consumer" orientated.

Any way to port Android apps to the Windows Phone platform

Hello XDA,
I have developed an app called Ring My Droid (Scan the QR-Code attached with this post).
Currently this app is only available for the Android platform through the Google Play Store.
I am learning to develop apps for the Windows Phone platform too. But, then I came across this section of the XDA Forum and I am interested to know if anyone out here is aware of a tool or a website or blog providing tutorials or a methodology for porting my existing application to the Windows Phone platform?
This may be a noob question, but I am very new to programming for Windows Phone so bear with me..
Any help would be greatly appreciated!
Thanks.
prognosis: serious
I don't know of any frameworks off the top of my head, but I can infer some of the answers based on experience in other platforms. And those answers are not very promising, unfortunately.
1) If you want your app to be cross-platform, you need to design it as such from inception. Otherwise you're in for a lot of work no matter how you slice it.
2) Because WP and Android use different languages for native apps, you have a big problem in just getting your source code targeted to both platforms. If your codebase is already in Java, you'll need a Java -> C#/VB/C++ translator to make it work. I'm not sure that a product like that exists. If you had started with, say, C#, you could utilize something like Xamarin to target Android and WP at the same time, but like I said I'm not aware of anything similar for Java->C#.
3) If your app is written in HTML 5, then you could adapt it to work on WP8 with very little extra effort. But in that case I bet you would have already known that you're cross-platform-compatible and wouldn't ask this question to begin with.
4) If you're resigned to rewriting your app while maintaining its core design the same, then the basic methodology is as follows:
a) refactor your app into well-defined, loosely coupled components.
b) factor away all Android specific APIs into adapter classes and have all "core" functionality written in terms of those adapters
c) port your core classes to a different platform (WP) in a WP-supported language, such as C#. This would be a straight, mechanical but nevertheless manual rewrite.
d) reimplement your missing adapters on WP to take advantage of WP APIs, while leaving internal-facing interfaces the same, so your core classes just work.
e) all of this makes sense only if there is enough complex core functionality to warrant the rearchitecture + translation. If your app is little more than glue shuffling data between external data sources, then all of this is not worth it, and a compete rewrite is the only way to go (sorry I don't have a QR reader readily available right now so I can't check your app directly).

[Q] What do I need to know to start functional testing?

Hi everyone,
I just took an internship position in which my first project is coming up with ways to QA our company's mobile application, which we do not personally develop. I thought that thorough test cases run with some kind of automation framework (like Appium) would be the best way to do this, but please correct me if I'm wrong.
I don't have any real Android application development experience. Our application is a client-side application, not web-based. I am assuming that I am going to need to teach myself a fair amount of Java, start looking into how to use the Android development kit, and then learn how to write and implement test scripts using an automation framework. Could anyone once over my thinking on how I need to progress here to make sure I'm heading down the right path to learn how to functionally test client side applications? Will I just need to know Java to write these test scripts, or do I need to learn Javascript?
cbutler94 said:
Hi everyone,
I just took an internship position in which my first project is coming up with ways to QA our company's mobile application, which we do not personally develop. I thought that thorough test cases run with some kind of automation framework (like Appium) would be the best way to do this, but please correct me if I'm wrong.
I don't have any real Android application development experience. Our application is a client-side application, not web-based. I am assuming that I am going to need to teach myself a fair amount of Java, start looking into how to use the Android development kit, and then learn how to write and implement test scripts using an automation framework. Could anyone once over my thinking on how I need to progress here to make sure I'm heading down the right path to learn how to functionally test client side applications? Will I just need to know Java to write these test scripts, or do I need to learn Javascript?
Click to expand...
Click to collapse
You could stick with Java if you wish. There may be more work involved. Android has a built in testing framework wrapped around JUnit. Check out the documentation on developer.android.com/tools/testing/testing_android.html.
Although I suppose JUnit is more suited for unit testing. It may be that using an automation framework like Appium may better suit your needs. It also looks like Appium provides support for testing in Java, so you may be able to skip learning Javascript.

[Q] Full Windows 8.1 or 10 (x86, not WinPho) on Asus ZenFone 2

I know this question will come with some confused comments and answers... so Ill ask the question and qualify my question with some examples why I am asking and of what I am not asking.
Question: What is the likelihood of getting/shoehorning Full x86 Windows 10 (or 8.1 until 10 releases) onto this phone?
Qualifying statements:
1. I am not asking about Windows Phone OS at all. Everyone knows Microsoft screwed the pooch during their shift from Windows Mobile 6.5 to Windows Phone 7 then again from Windows Phone 7 to Windows Phone 8. That is why so many of us jumped ship from Microsoft's Phone offerings over to Android in 2010. This is 5 years later and Microsoft might be able to get some market share back, but only if they pull their head out of their a$$....
2. (Example of irrelevant answer... Why do you want full Windows when there is Win RT or WinPho???lol!!!!LMFAO!!!! TrolllFACE!!!)
There are plenty of usage cases to justify full x86 Windows on a mobile device. Microsoft and Intel are pushing on the tablet market but for some reason they have not begun to crack the phone market with Full WinTel.... Simply put, If someone is willing to pick up a Windows 8.1 x86 tablet with 1GB or 2GB of RAM for $200 or $300 bucks then they should be ok picking up a similar device with 4GB of RAM and the ability to make calls.
3. (Another example of irrelevant answer...But Android!!!! It rulz!!!)
First off I am an avid android user. We started with My wife and I getting the EVO 4G in 2010, then EVO 3D in 2011 (I know...), then Note 2 in 2012, and My wife switching out the Note 2 for the Huawei Ascend Mate 2 last year. Im holding on to my Note 2 for the final stretch with its 9300 mAh Zero Lemon battery. All phones we've gotten have been rooted and customized by me. I use Bluestacks and/or Andy OS on all of my Windows PCs and have owned several Android Tablets. In short I prefer Android over Windows phone and iOS and whatever else is out there... Now in saying that, I feel a full Windows device in a phone with sufficient processor and RAM would be able to run Windows as its main OS and Android as an emulator to satisfy my Android needs.
Very well put, I'm also interested in this.
Sent from my MT2L03 using Tapatalk
Also interested in this!
I think this needs Microsoft's direct support. IMHO these are some blockades the community will be met with:
1. Since Android uses a boot.img as stage2, some work have to be done for the boot image to be able to chainload Windows. Vanilla installation goes out of the equation.
2. Figuring out how to chainload a proprietary OS properly is, well, hard.
3. It seems like the device uses some special Intel modem and wireless chipset. Porting won't be easy (Look at Intel PRO...)
4. Although 5.5in is GIGANTIC for a phone, maybe explorer or metro won't be able to fit in it?
5. Onboard storage is lackluster to host a full desktop Windows.
6. Windows doesn't even have a dialer.
But generally, this is a great idea! Being able to run x86 apps on a phone, oh the feels!
I'd be very interested if it would run full x86 or x64 Windows! However as stated, I doubt that will happen.
Even then it would be a bit limited and the main issue I would imagine to be space. The screen is quite small for a 1080p window to display on. I'd want to probably run a 720p res for larger buttons and such, might fit a bit better.
Perhaps if you could have it all run off a memory card, but then it would be rather slow to boot and cache stuff?
Here check out this small presentation. Something could be possible with the virtualization extensions that intel processor has.
This totally depends on :
- how well Asus releases the source code.
- Bootloader unlockable or not, i.e. ways to work around the secure boot.
I tried similar things on Lenovo K900 which is running Z2580. Lenovo's open source release was just horrible since even building the kernel was difficult due to lack of info.
I was able to eventually built the kernel with KVM enabled, but was having trouble signing the kernel for the bootloader.
Just force loading the kvm.ko was not successful either since the stock kernel had some feature missing required by KVM.
I would be interested to work on this phone again if we can form a group.
kazuken said:
Here check out this small presentation. Something could be possible with the virtualization extensions that intel processor has.
Click to expand...
Click to collapse
chinabull said:
This totally depends on :
- how well Asus releases the source code.
- Bootloader unlockable or not, i.e. ways to work around the secure boot.
I tried similar things on Lenovo K900 which is running Z2580. Lenovo's open source release was just horrible since even building the kernel was difficult due to lack of info.
I was able to eventually built the kernel with KVM enabled, but was having trouble signing the kernel for the bootloader.
Just force loading the kvm.ko was not successful either since the stock kernel had some feature missing required by KVM.
I would be interested to work on this phone again if we can form a group.
Click to expand...
Click to collapse
sure we can start a group on slack.com
some other things that also come to my mind:
wine for x86
docker for x86
debian chroot
wine already has some ARM support
This would likely be much easier... Notice the 'high end' system reqs?
http://www.ubuntu.com/tablet/operators-and-oems
I think the biggest problem for Windows would be wrestling with the PowerVR-based gpu.. Those stupid things are usually a roadblock in just about every interesting project..
kazuken said:
sure we can start a group on slack.com
some other things that also come to my mind:
wine for x86
docker for x86
debian chroot
wine already has some ARM support
Click to expand...
Click to collapse
Sorry for ressurecting this old thread but you would definitely be able to run Linux X86 on chroot. Then through wine you'd be able to run a lot of windows apps. Only issue is that performance would be low *unless* you'd output the GUI to android's framebuffer (FB0) which would require a kernel supporting this (outputting to framebuffer) which in turn would need Asus releasing the kernel sources so that to bake FB support.
So yeah it's all doable even with relatively good performance and by outputting the image (through MHL or chromecast) into the big screen would give us a X86 PC on the go. In fact I'd prefer it from running windows X86 natively because then you'd be losing calls and notifications... Imagine your *phone* running all your PC's software (well almost all as wine often has issues). You can buy one of those 128gb micro sds and your "phone" would have plenty of space for your (PC) data...
Stevethegreat said:
Sorry for ressurecting this old thread but you would definitely be able to run Linux X86 on chroot. Then through wine you'd be able to run a lot of windows apps. Only issue is that performance would be low *unless* you'd output the GUI to android's framebuffer (FB0) which would require a kernel supporting this (outputting to framebuffer) which in turn would need Asus releasing the kernel sources so that to bake FB support.
So yeah it's all doable even with relatively good performance and by outputting the image (through MHL or chromecast) into the big screen would give us a X86 PC on the go. In fact I'd prefer it from running windows X86 natively because then you'd be losing calls and notifications... Imagine your *phone* running all your PC's software (well almost all as wine often has issues). You can buy one of those 128gb micro sds and your "phone" would have plenty of space for your (PC) data...
Click to expand...
Click to collapse
I tried it out. you can get GNUroot and GNUroot wheezy x86 on play store. I was able to get fluxbox with tightvncserver running (though no apps, but was able to get an image in vnc) i am now going to try lxde and then see if nomachine 4.0 will work. wine should be able to run photoshop cs2.
kazuken said:
I tried it out. you can get GNUroot and GNUroot wheezy x86 on play store. I was able to get fluxbox with tightvncserver running (though no apps, but was able to get an image in vnc) i am now going to try lxde and then see if nomachine 4.0 will work. wine should be able to run photoshop cs2.
Click to expand...
Click to collapse
Problem with running your gui on a VNC server is that it is slow. It's (far) easier to setup though.
On my android machines I prefer to (basically) output an X Server window on the (machine's) frame buffer. You get real time performance (almost the same as if you had installed the OS natively), plus you get sound which is useful if one wants to run sound and video editing software (or plainly listen to music ). It's (quite) harder to setup but it has all been streamlined lately by a play store app named linuxdeploy (IIRC it has added X86 distros support lately).
Yeah... Don't use vnc, use xserver-xsdl . It's in the app store. Best Android X server. In your chroot, export DISPLAY=:0 after starting it up.
Sent from my ASUS_Z00AD using XDA Free mobile app
ycavan said:
Yeah... Don't use vnc, use xserver-xsdl . It's in the app store. Best Android X server. In your chroot, export DISPLAY=:0 after starting it up.
Sent from my ASUS_Z00AD using XDA Free mobile app
Click to expand...
Click to collapse
That's a great solution too! Hadn't thought to recommend it. It's easy to setup too.
Still outputting directly to framebuffer instead of an xserver app is quite faster (even than that!). But I'd expect the Xserver-XSDL performance to be quite good too.
OMG, this is SO interesting. I have been looking forward to put windows desktop in my phone since ages. Virtualization never let you go any further than Winxp. But now, this is another story. I am thinking of getting one of my own to help with the testing
Keep it up guys!
I ran photoshop cs2, via xserver xsdl, takes a while to load but eventually does, but its very hard to drag windows via xserver xsdl. i tried with vnc and was able to open a picture taken from the zenfone's camera and adjust levels. its alot easier to use a physical mouse and keyboard. but here are some screenshots of it running all on the android. it took brute force to create the x with the paintbrush and to drag a window. I ran it at 720p, also at 1080p. photoshop loads a lot quicker using xserver xsdl vs vnc.
You can change mouse settings when you start up xserver-xsdl. By default it's set up like the screen is a laptop touch pad.
The other thing you might want to try is a different Windows manager. I prefer fvwm2 since it's very light.
Sent from my ASUS_Z00AD using XDA Free mobile app
*irrelevant reply alert*
This takes me back to running Linux on the Windows-based XDA Exec. Those were the days.
Anyway, this is a great idea and you're finding some interesting workarounds, but I think you should be looking to get Windows to run natively. Sure, it doesn't have a dialler, but I'm sure someone can hook something up - especially if the interface is anything like the old Voice Modems from when we could only get our internets at 56kbps. (You kids don't know you're born! In my day, etc)
Meanwhile, in the Enterprise world where we try to reduce the costs of people having a whole processor each that they carry around with them, we're looking at using PCoIP to deliver a PC experience on a tablet. Sure, it's a little laggy (we're talking milliseconds on WiFi, though) but you get a lot of processing power, and if you're using Amazon you'll get NVidia rendering too. That's more for workstation graphics - CAD etc, rather than gaming. But then, if you're looking at installing Windows on a Phone, you're probably not going to be trying to play GTA5 on it.
Again, this reply is irrelevant because I realise you probably don't want to shell out $20-$40 per month on a virtual machine with a full Office suite. Plus, it's less fun to play with and not quite as much of an achievement to have set up something that works out of the box.
Native Linux 64 bit maybe, you get a much better OS, customizable, better resources management, open source, faster and waste less battery plus you can create your own mobile friendly interface just like Ubuntu Touch. Someone said it might be possible to port dialer, modem and other driver's concept since android is linux based. Microsoft is a handicapped development private code and as linux creator affirmed, its therefore a crappy OS lol There is steam on linux and it can run OpenGL games faster with the same hw due to uncluttered OS.
The hardest part will be GPU acceleration.
aziz07 said:
Native Linux 64 bit maybe, you get a much better OS, customizable, better resources management, open source, faster and waste less battery plus you can create your own mobile friendly interface just like Ubuntu Touch. Someone said it might be possible to port dialer, modem and other driver's concept since android is linux based. Microsoft is a handicapped development private code and as linux creator affirmed, its therefore a crappy OS lol There is steam on linux and it can run OpenGL games faster with the same hw due to uncluttered OS.
The hardest part will be GPU acceleration.
Click to expand...
Click to collapse
The .Net Framework is already Open Source. It's likely Windows 10 will go Open Source at some point. It's said to be the "last version of Windows" - probably similarly to the way MacOS X hasn't been replaced with MacOS XI. (There will still be a market for desktops when we have 128bit CPUs, and they won't just stick with the same 64bit kernel.)

Categories

Resources