What is meant by System.img in Android? What is the purpose of using it?
It's the Android file system, which means all the support files that Android needs, the applications, but also the framework, the Dalvik VM, initialization scripts and so on.
Another part of the file system would be the userdata.img which is mostly empty when you compile the framework.
It is not the OS, that would be either a plain zImage or boot.img (and recovery.img for to boot in recovery mode).
This is the actual system image. It's the OS ... kind of. Look here at point four.
EDIT: To be more precise the system image along with the kernel image are the forming the OS. The system image alone is one part of the OS.
Related
1-I have rooted my tablet(android 5.1.1).
2-I have installed some apps as System app...
3-I need to take a backup of my entire android os, including data_user and system apps, all together.
is it possible to take an image of android os including every things?
At first, use mount or cat /proc/mtd command to identify your block devices. And then copy all image to file:
cat /dev/mtd/mtd16ro > /sdcard/my_system_image.bin
/dev/mtd/mtd16ro - system partition at my tablet (your may be different)
/sdcard/my_system_image.bin - your image at your sdcard
I have android studio installed on my windows operating system 64 bit 4 gb Ram but now i want to work in linux(ubuntu 12.04)which is installed on the same windows 7 (no separate partition)where the android studio is installed so will it cause any harm to my windows operating system or any performance issues.Searched a lot about it on google but no clues.Any suggestions are highly welcome.
If you're using Dual Boot then it shouldn't slow down your system at all. Although it won't make sense to have Android Studio installed in Windows when you have it at your Linux since you might get confused on which OS you saved which project. It won't slow down your system because your Windows OS only "sees" the HD Partition for Windows, the same is the case for your Linux Partition.
That being said, Linux can only see and touch the resources in the HD allotted for Linux. And since you won't be able to run the two OS at the same time, you won't have RAM problems (which is a problem with Virtual Machines).
Also, if I am not mistaken, when you dual boot, strictly speaking, you are partitioning your Hard Drive. When you go check Windows' Drive C, it's no longer 500GB (or whatever the total size of your HD is).
This is more commonly done by placing the Linux system inside a virtual machine on the Windows system.
Many universities establish uniform Linux environments for their students this way. If you conduct a search, you may find prefabricated examples of this publicly available.
As described, it does not sound like the Linux would boot. Some sort of storage separation is required to define the operating system. If one is placed inside the other as described, it will simply be a directory held in local storage. To use it as the operating system, the CPU will need to be able to find it at boot without the help of the other system, thus the multiple partitions.
Emulated systems, like Cygwin or MinGW, will work within the context of another operating system, but they are built for that purpose. They are simulated systems with a common collection of typical commands. That gives a similar programming experience, but it doesn't fulfill the definition of an operating system because it doesn't cover CPU activity.
Virtual machines will bridge this gap by taking emulators a step further. They will simulate the CPU activity, frequently I/O controls (e.g. own MAC address for the VM under control of the VM). Virtual machines won't need a sepatate partition.
If the two Android installs are separated by one being inside a VM and the other being on the main Windows: there's no immediate reason why they would not work. If you ran the Android emulators in both, it's obvious that the one in the VM would be slower. It might be unbearably slow. There may be some competition for I/O when you start hooking up phones to the hardware. So, as a practical matter, it could get bogged down for developing simultaneously this way. Meanwhile, if the IDE fits within the VM with Linux, it could run.
Steps to solve your problem in a single intel core i3 processor with ram size 4 gb and harddisk of 1 tb is that ,
1>> just duel boot system :- here in these step you must duel boot your system with linux and window both you can found easy tutorials for doing that thing .
2>>install jdk on both of system
3>>just set path for java in both of system in linux it is not required .
4>>Now you go to https://developer.android.com/studio/index.html.and download latest version of stdio in both of partition .
5>>Now you can create android apps in both of system
I am using Windows (I don't know how to do it... I don't have linux, so I can't do it myself) and I need help, to convert this file (Alcatel) - http://sourceforge.net/projects/alcatel/files/OT_5020D_20130606.tar.xz/download into a flashable image. If anyone can help me, or can compile it, I will be glad.
P.S. This is the content of that ZIP file - http://i.imgur.com/H9Qmbdx.png (my PHONE'S system files are lost, and can't do anything, just frozen on startup ALCATEL message screen. ALCATEL support told me to compile the flashable image from the link I provided above.)
If the only problem is that you cannot install Linux as your main operating system, put the Linux into virtual machine and do the work there.
You can use some free virtual machine like Oracle Virtual Box, for instance that only takes minutes to set up. You will get the internal IP address, visible from your workstation only, that is enough for your task. You can use usual SSH and SFTP to communicate with it and the virtual machine itself will provide shell access for the initial setup. If necessary, it is also possible to configure such a virtual machine to connect the outside Internet.
As said from my comment, you can try flashing the custom recovery on to the phone first http://theunlockr.com/2013/12/23/flash-custom-recovery-alcatel-one-touch-mpop-ot-5020x/
With the custom recovery, you can try to flash the zip file that you extracted from the .tar.xz file. If you are unable to flash the zip file, I suggest you to download a CyanogenMod zip file from here http://forum.xda-developers.com/general/general/rom-mod-alcatel-5020-t3060346/post59584683#post59584683 and see what is inside. And then you tailor your zip file's structure accordingly.
Btw, your zip file is not a kernel. From the size, I believe it should be the entire ROM. Kernel should be less than 10MB AFAIK.
Your file above is likely your android operating system, not your kernel. I recently flash a new kernel to my Samsung Galaxy Centura, it was less than 20mb. I don't know what you did to your phone, but you may not need to do anything with the kernel. You said your system files were missing, so if you could get someone to convert you file to a flashable zip then you could probably fix your phone.
What you essentially need is a ROM image for your phone model. I guess building it from sources is the hardest way to get it, and probably will take a lot of time for you to figure out how to do it properly(like weeks,and there is big chance to kill your phone for good by flashing bad ROM). So I suggest to find already compiled ROM for your phone with stock or some custom firmware (I suggest to check if there is CyanogenMod port for your phone) and flash this.
Is there a way to modify the Android emulator? For example, can we somehow intercept user inputs to the emulator and interpret them differently? Also, is there existing tools to do dynamic binary rewrite inside the emulator or qemu?
The emulator is emulating the hardware. You can do dynamic binary rewrites inside the emulator in exactly the same as on a device (for example, using LD_PRELOAD for native, or by changing the loader), or not at all. There is nothing that the fact it is an emulator helps you with, as there are too many layers between the emulator (hardware) and the abstraction you are trying to change. In the middle, you have the kernel, binary loader, dalvik virtual machine etc.
User input might be easier, but, again, it seems to me it will be easier to change the open source framework code that processes the input, rather than the emulator itself.
Shachar
I bought a very weak netbook that comes preinstalled with android 2.0 which
I want to replace with another linux distro like puppy or damnSmallLinux.
the netbook has no bios menu with "boot from SD card" option so that and when I inserted an SD card or USB key with grub/lilo it still didn't bot from it.
I wasn't able to find no key sequence to enter android debugging mode so that I don't have root for the android system.
is there an android-internal way to specify boot from another media?
is there a "das-uboot" way to force android boot from another device?
thanks!
I'm not familiar with netbooks running android so here's my experience with embedded devices.
To my best knowledge there is no "android-internal" way. Android takes over after u-boot and rarely(read never) does it modify to u-boot environment partition.
To cut the long story short it's nearly impossible and it's too much effort for nothing.
Also for starters You'll need a debug serial console attached to the board or an ADB shell. It's just guess work without a shell.
For a general algorithm:
get a shell working
Get to know the system( cpu type, partition table, ...)
Now just research what you can do with the things you know.
Or the 'all or nothing' - reverse engineer the firmware upgrade and the firmware images and try to boot with your own.
Long story:
For sd_card boot you have 2 options:
use the bootloaders on the board and load the kernel and the rootfs from the sdcard
boot from sd_card
Load kernel and fs from sd_card:
There is no general u-boot way to change the boot device without changing the u-boot environment . The u-boot environment most of the time resides in a nand partition.
There may be some way coded by the manufacturer, which may be guessed by the offline firmware upgrade procedure. This is probably your best bet for a quick solution.
Try to reverse engineer that.
Boot From sd_card:
Most platforms have SYSCONFIG registers or hardware pins, operated by jumpers on development platforms and mostly hardwired on production ones.
SYSCONFIG controls the boot devices. It can be configured for NAND only or SD_CARD only, etc...
If the system is indeed configured to load from an sd_card there are a few more problems:
Some of the times the SD card has to be formated in a specific way(for ex: http://www.omappedia.org/wiki/SD_Configuration ).
Other times the first stage loader has to be signed. And it's hard figuring out what the first stage bootloader is (x-loader, or something other) and the signing part is kind of tricky :)
you have to know the exact platform configuration to build u-boot and x-loader