So, I have being thinking a software that can outlive a total OS wipe. Is it possible to create a software of this nature?
If you had software installed on a ROM (Read Only Memory) then it cannot be deleted save hardware failure of some sort. And assuming the reinstalled OS was configured to read it properly it would work perfectly fine, that is what the purpose of the BIOS is for. Although, there are ROM chips that are erasable (EEPROM) and modern BIOS chips nowadays are flashable for convenience purposes.
If you could get it into their data backup (onedrive, external personal server, etc.), then you could regain access as soon as they load their backup.
Assuming they clear all their temporary memory (RAM, graphics card, etc.) and reset their OS with a clean copy, I don't think there is a way to survive on that device.
Related
I would like to clean install embedded linux in ARM based smartphone. Inorder to do so i would need the device drivers such as flash memory, display etc. I was wondering if its is possible to extract the device drivers from the ROM'S supplied by these phone vendors?
No, this is not generally possible. One difficulty is due to linking. The drivers will call functions and infrastructure with-in Linux. For instance, even if kmalloc() is the same source, the location in address space maybe different. To extract the code, you would need to map the extracted Linux addresses to your target addresses. Also, it is common for drivers to inline features that might be called in another module like kfifo, etc which may have functional changes between the Linux versions. Even more common is that kfifo code will be inlined in the driver. If spinlock functionality changes between ARM Linux versions, you need to extract and replace this information from the driver with the new version. Finally, there are Linux features which aren't just deprecated, but completely removed and replaced by some other infrastructure.
You question is very similar to decompiling. From some of the above reasons and possibly more, you can see that it is very difficult or impossible to implement this. That is why people made the Linux kernel GPL. You should be able to ask for the source code and modify it in a much more efficient (and functionally correct) way.
I am new to AOSP anybody tell me what is difference between Android & Android Rom
I have found when i am googled but I did not understand the exact difference
Android is the open-source operating system used for smartphones.
Android ROM is the Android operating system. It is composed of a Linux kernel and various add-ons to achieve specific functionality.
As far as I know:
ROM
Literally it stands for Read Only Memory. When people talking about ROM it`s referring to the phone's internal memory. The memory where your firmware/apps are stored. When people say, falshing a new ROM, it means they are flashing a new version of the firmware onto their phone.
Android
In this case they are referring to the OS or to the product of Google.
Brace your self, Obvious link coming:
https://en.wikipedia.org/wiki/Android_(operating_system)
ROM is in fact "Read Only Memory." But for your purposes that has nothing to do with the use case here. Early on with some hardware the operating system was stored on a specific chip, a ROM chip. What you flashed onto that chip is called "the ROM image." It had to be written with special purpose hardware, or it had to be written to in a special boot sequence (like with a DOS bootdisk).
With Android, we distribute images which usually overwrite a file system without formatting it or partitioning it. That's more of a sloppy and crappy install and it's likely to go away at some point in time when someone clever does it the same way a desktop runs. So an "Android ROM" is usually just like a zip archive that gets unzipped to /. That's a bad way to upgrade a computer, but it's how it's done for now. It's also more acceptable to do it in such a bad way because on phones upgrades are done so seldom. You may get an OTA upgrade once a month, or every other month. And, you likely upgrade your phone fewer than 10 times.
is there a way to regulate the UMS-mode? I would like to implement a feature, that lets the user select which files he wants to share with a pc. Say you only want the pc see the picture subfolder, but not all the other folders on your sd. I am not sure if this is possible and most likely I will require root access when possible.
I know this will bring no real security, because you can always remove the sd card and read all the files on it. I thought of this feature mainly because of my crappy car radio. It can read mp3 files from a usb stick. But the many different folders and strange files on a android sd card seems to kill it. Furthermore I think there are a lot of other situation when you would prefer only to show a smaller part of your sd memory to a pc.
Can you imagine any other way to simulate the described behaviour? Can I generate completely new usb modes and implement my own UMS?
Every idea is welcome.
Sincerely Erik
is there a way to regulate the UMS-mode?
Not from an SDK application. Also, bear in mind that UMS mode is being deprecated in favor of MTP.
I am not sure if this is possible and most likely I will require root access when possible.
No, you will need to write your own custom firmware.
Can I generate completely new usb modes and implement my own UMS?
By writing your own firmware, presumably, yes.
Is there any way to prevent firmware modification in android aosp rom? The rom is to be flashed into Nexus One and unauthorized users will not be able to make any modification including flashing another rom. Thanks.
Handset manufacturers have been trying to do just this for a long time - almost all have failed.
Most attempts are software based an usually have flaws that can be exploited to enable local root access. At that point, you've already lost the battle.
Just flashing a new ROM will never allow you to prevent unauthorised modifications since an attacker can just boot to the bootloader and have unrestricted access from there. Your best bet may be to write a custom bootloader, but this is beyond what most people can achieve, plus, there's no guarantee that even this is secure from tampering.
Off the top of my head, the only people who have come close to achieving this is Motorola with their electronic fuse that blows if the loaded ROM is detected to be unauthorised (using digital signatures, I believe).
In short, there is probably nothing you can reasonably do to prevent unauthorised modification - once the handset is in somebody else's possession, you can't trust that it is unmodified.
Since the nexus one comes with an unlockable bootloader (that you would use to install your firmware) the short answer is that you can't.
However what you can do is write an application that validates that your phone is in the state you expect but that too could be reverse engineered.
I have a Symbian based phone with a ARM Cortex-A8 processor (SonyEricsson Vivaz) and was thinking on how hard would it be to try and port the Android OS for it. Obviously Android runs on a myriad of devices with different hardware so I imagine it shouldn't be too hard to adapt it to SE hardware. Could some one give me a clue where to start or if this is even undertakable...
How much information do you have about the hardware in the phone ? Are you starting completely from scratch ?
Porting Android is not simple task. First thing is to have Linux running (preferably 2.6.32 for more compatibility with the latest releases of AOSP.
If you can find a kernel that can run on your phone, that's one big step. After that, you want make sure that the peripherals you want to use also have the right drivers : touch interface, LCD display, SD card, audio, video. The ones that are probably most difficult will be wifi, radio (GSM) and power management module.
If you get that far, you don't have that much to go anymore, a few more changes in the kernel needed for Android, be able to compile Android correctly file system, hook up a few things like buttons and correctly interface with the drivers mentioned above...
But overall, definitely not an easy task (IMHO).