[Q] What are the basic requirements for Android device driver development? - Android Q&A, Help & Troubleshooting

Hello,
I'm totally new to both android and Linux.
Actually I've to write a driver for android phone to read all the messages.
Questions:
1. What OS, should I select?
2. If Linux; then with which flavor and version should I go?
3. From where should I begin my Android device driver learning to accomplish my task?
4. Do I need to install any SDK on my windows system to develop Android device driver or simply I should prepare linux system for Android work?
Kindly guide me with better beginning points
Regards
Matt

Related

[Q] Android general questions

I'm new to Android and have a few question that didn't get answered by Google it. I have bought my first Android phone (SGS2 of course, after years of being a Symbian fanboy), but have not received it yet.
1. Does everything run on top of Dalvik JVM? At the bottom is the Linux kernel. Then there is a Linux process which runs Dalvik VM. Could for instance Sun's JVM run on a Linux process of its own or another Linux application?
2. Can C/C++ Linux program run on Android? Though compiled for ARM. Android has NDK (Native Development Kit) which allows it to run C/C++ applications inside Android applications, but I'm wondering about running C/C++ applications directly on Android. BusyBox is coded in C, but runs on Android. Is it running directly on the kernel's linux process or within an Android application on Dalvik?
3. The latter(Q2) would indicate that not everything run on top of Dalvik. Otherwise C/C++ programs would not run.
4. Android uses ADB (Android Debug Bridge) for its CLI magic. BusyBox uses Ash. Can one install bash as the default shell, with full GNU Core Utilities commands? Some forum posts indicate that it is possible to install an ARM re-compiled bash version.
5. Android can be rooted by installing applications like Super User or BusyBox that would let the user execute applications as root. That would indicate that there exist a root user, in addition to the actual user. Is this similar to how it is on Linux? Can I define a password for the root user so that no applications can run root directly?
6. Are all user data stored in the database SQLite? User data is accessible through different applications, but how does Android determine access rights to it?
7. I have read that Android applications run on their own Linux process and are assigned a unique user ID. Does this mean that we can run ps to see all running processes or does it act like the Sun JVM just showing each VM process? However looks like different applications can run in the same process. Can these be distinguished or do we just the the once process.
8, Is the camera application (that some have made modifications of) a Google app or Samsung app? Just wondering since the former would allow such modified versions to run on other than Samsung phones, but given that different phones have different camera specs I don't see how this could go well.
9. Can the codes typed in the dialer be executed through a shell instead (adb)?
There are some apps that run direct c++ code. The stock gallery app for example is written in c++. So not everything uses that dalvik virtual machine. I don't know enough to answer all your questions though.
Not many replies. That is disappointing.
Perhaps I could move this thread to another forum here on XDA? Or perhaps another forum.
In the meantime I'll try some more Google search on the subjects...

[Q] App development question: Windows or Linux

I'd like to start developing apps and was wondering whether it's easier to develop with Windows or Linux. (Mac is out of the question as I don't have access to one.) I'm not a Linux guru, but I'm not a noob either. What are the advantages and disadvantages of either OS over the other?
Actually, it doesn't matter. The result wil be the same, and the steps to install the necessary tools are pretty similar between SO.
Simply install the tools on your primary SO, for convenience

Convert an Android system.img to run in a virtual machine?

This question is very specifically about virtualising the operating system from a system.img file (designed to be flashed to a device) in software like VMWare or VirtualBox. It is not about running Android in a virtual machine in a generic sense.
Google doesn't give me anything for this topic, so before I type out what doesn't work I'm going to leave the thread open and see what advice we can assemble. I do have a specific ROM in mind, but this would be vastly more useful for the world as a whole if the solution was generic. Even if it's very complicated. I imagine it is complicated because there's no installer and no driver pack for VMWare or VirtualBox. I would prefer a solution that uses one of these, even if performance isn't wonderful.
Notes: We're talking about virtualisation, so the ROM is of course for an x86 device, but I do not have the device yet to flash this ROM to. So solutions can't involve flashing to the real device in order to get the filesystem.

Question about ADB Platform Tools & Visual Studio Requirements

So I've been trying to get ADB up and running properly so I can modify some aspects of the Android OS to fix the phone's Wi-fi Hotspot feature. Android OS is version Oreo 8.1, and Windows is Win 7 x64. Already had Dev Mode enabled on the phone with USB Debugging.
When I downloaded the Android platform tools and tried to execute the ADB via command line, I get an error message [I had a link to an image showing it, but due to me being a new account it won't let me post it, but basically it's an error message that appears when you try to launch an app on Windows without having the VS 2015 or newer redistributable files installed which have the Win10 compatibility files necessary for it to run] which means I don't have either the 2015 or later version of the VS Redistributable installed. Unfortunately due to this Windows installation's MS Package Updater being borked, I can't really install those either to fix this (thanks MS) without doing a bunch of **** I don't want to risk at the moment.
So the question is, does anybody know of an older version of the SDK Platform Tools that only require VS 2013, and if it would be compatible with Android 8.1? Thanks.
Gonna give this a quick bump but I'm basically just asking if anybody knows where one could get an older build of the SDK Platform Tools (command line tools only, not the full package) that only requires VS 2013 to be installed to run.

Use Subsystem for Linux on windows (WSL) instead to use the Ubuntu's Terminal on Virtual Machine Platform

Is it possible to do so ?
Lavithiran -=-=-= said:
Is it possible to do so ?
Click to expand...
Click to collapse
It's hard to figure out exactly what you want from that six-word question, so I will just state two somewhat related tools that you may find useful - but if not - please ignore these two features.
1. Windows 11 runs Android natively, and,
2. Most linux distros run native on Android within Termux.

Categories

Resources