Android: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (→‎Installing: formatting)
 
(101 intermediate revisions by 6 users not shown)
Line 3: Line 3:
== Android 4.3.1 (Jelly Bean) for XO-4 ==
== Android 4.3.1 (Jelly Bean) for XO-4 ==


OLPC is preparing an Android, Sugar and Gnome dual-boot system for the XO-4.
OLPC is preparing for a customer an Android, Sugar and Gnome dual-boot system for the [[XO-4|XO-4 Touch]]. This will allow children to switch between the operating systems by rebooting, so that educational content can be delivered in either format.


The build is based on our arm-3.5 kernel, with changes which may be
An early development release of an Android-only build is available.
It is yet to be optimised for performance. In particular, the
graphics are very slow.

The build is based on our arm-3.5 kernel, with changes which can be
found in the [http://dev.laptop.org/git/olpc-kernel/log/?h=arm-3.5-android arm-3.5-android] branch of our [http://dev.laptop.org/git/olpc-kernel olpc-kernel] repository.
found in the [http://dev.laptop.org/git/olpc-kernel/log/?h=arm-3.5-android arm-3.5-android] branch of our [http://dev.laptop.org/git/olpc-kernel olpc-kernel] repository.

Do not rely on this build for any critical data, in particular do not associate your regular Google account with this build if your Google account is critical to you.


=== Installing ===
=== Installing ===


* make a backup of anything you want to keep on the XO-4, because it will be erased by this test,
* make a [[backup]] of anything you want to keep on the XO-4, because it will be erased by this test
* download the ''.zd'' file according to whether your firmware supports symmetrical multi-processing ("SMP"). Firmware versions named as ''q7c##'' (where ## is two digits) support SMP, while all earlier versions do not.
* ensure the firmware is upgraded to Q7B37,

* determine the size of your eMMC internal storage; it will be either 4GB or 8GB, and is shown by the firmware just before the ok prompt,
{| class="wikitable"
* download the corresponding .zd file, from [http://build.laptop.org/android/2013-12-20/ the build directory],
! style="border-style: solid; border-width: 1px" | if your firmware supports SMP (ver ≥ q7c00)
* at the ok prompt, type this:
! style="border-style: solid; border-width: 1px" | if your firmware does ''NOT'' support SMP (ver < q7c00)
fs-update u:\a4g.zd
|-
|
* save the [http://dev.laptop.org/~ben/smp.zd smp.zd] file to a USB drive
* at the [[ok]] prompt, type this:
[[Firmware/Storage#fs-update|fs-update]] u:\smp.zd
|
* save the ''.zd'' file in [http://build.laptop.org/android/2014-09-01/ this build directory] to a USB drive
* at the [[ok]] prompt, type this:
[[Firmware/Storage#fs-update|fs-update]] u:\32014a4.zd
|-
| ''(limitation: SMP version is not dual-booting with Sugar)'' ||
|}

* when the installation completes, type this:
* when the installation completes, type this:
boot
boot

=== Booting ===

* hold no keys to boot Linux, as usual,
* hold the [[Cheat codes|O game key]] to boot Android,
* hold the [[Cheat codes|rocker down key]] to bring up the boot menu, then select either Linux or Android,

Note: the choice made at the menu is not saved. Previous builds did save the choice. This was removed because the saved state is undiscoverable, so there would have been forced power downs during boot because the child didn't remember what state the system was in, either because they forgot or the laptop was used by someone else.

=== Keyboard mapping ===

* rotate key, shows recent apps,
[[File:Keymap1.jpg‎]]
* O game key, volume up,
* X game key, volume down,
* Square game key, back,
* Tick game key, enter,
[[File:Keymap2.jpg‎]]
* f5, search,
* esc, back,
* esc+alt, home,
* esc+ctrl, menu,

Note: keyboard layout can be switched among different [[OLPC_Keyboard_layouts|OLPC keyboard layouts]];

* Android support following OLPC keyboard layouts:
[[OLPC English Keyboard|English (US international)]];
[[OLPC_Spanish_Keyboard|Spanish (Latin America)]];
* [[/SwitchKeyboard|How to switch keyboard layout in Android]]


=== Known problems ===
=== Known problems ===


* key events from a paired bluetooth keyboard are ignored, <trac>12784</trac>,
* very slow screen response due to graphics driver needing work, to the point of being impractical,
* not implemented; dual core SMP <trac>12297</trac>, and ambient light sensor,
* the power button may not be operational, or may not operate in the fashion that Android devices normally provide,
* does not coexist with olpc-update, it fails <!-- OSError: [Errno 21] Is a directory, in bitfrost rewrite_symlink called from trim_config, which is operating on /bootpart/boot/alt --> because {{code|/bootpart/boot/alt}} is present, but if this is removed and the update applied, the Android kernel and ramdisk will have to be reinstated manually,
* Bluetooth is not operational,
** status: wont fix, can add a Android kernel and ramdisk in olpc-os-builder if coexistence is required,
* USB may not be operational,
* when used with the 8686 wireless module, the bluetooth function is listed in settings, can be turned on, but turns itself off, <trac>12796</trac>,
* the touchpad is not implemented,
** status: won't fix, the module is no longer available.
* the ambient light sensor is not implemented,
* sometimes the first boot dialog hangs when the start button is pressed, <trac>12797</trac>,
* the e-book switch is not implemented,
** status: won't fix, not in our control.
* the microphone jack may not be operational,
See our trac [http://dev.laptop.org/report/49 milestone 13.2.0-android report] of problems to be fixed.
* the headphone hack may not be operational,
* the build does not coexist with Sugar and Gnome.


=== Test cases ===
Do not rely on this build for any critical data.

* boot,
* use power button for sleep and wake,
* use of e-book switch (close lid) for sleep,
* use of headphones to play music from USB drive in MP3 format,
* use of bluetooth to pair a headset,
* associate with a Raspberry Pi providing Khan Academy content [http://pi.mujica.org/ KA-Pi], access via Browser, play video, fullscreen, play to end,

== Subpages ==

* [[/Building|How to build Android for the XO-4]],
* [[/Kernel|How to build an Android kernel for the XO-4]],
* [[/Screenshots|How to take screenshots]],
* [[/Adb|How to connect via ADB]],
* [[/DeveloperOptions|How to enable developer options]]
* [[/PreInstalledAPK|How to add more pre-installed APKs]]
* [[/Security|How to sign the Android kernel and ramdisk with OLPC XO deployment keys]],
* [[/Sign|How to sign Android build with release keys]],
* [[/Status|Porting status of Android for XO-4]],
* [[/Lollipop(5.0)|Android 5.0 lollipop]],


== See Also ==
== See Also ==


* [http://lists.laptop.org/pipermail/devel/2013-December/038048.html Announcement on devel@ mailing list],
* [https://en.wikipedia.org/wiki/Android_(operating_system) Android (operating system)] on Wikipedia,
* [https://en.wikipedia.org/wiki/Android_(operating_system) Android (operating system)] on Wikipedia,

* [http://build.laptop.org/android/2013-12-20/BUILD How to build Android for the XO-4],
* [http://sugarizer.org/ Sugarizer] for online use,
* [http://sugarizer.org/org.olpc-france.sugarizer.apk org.olpc-france.sugarizer.apk] Sugarizer for offline use.

* [http://lists.laptop.org/pipermail/devel/2014-June/038498.html 2014-06-23] announcement on devel@ mailing list,

* [http://lists.laptop.org/pipermail/devel/2014-January/038072.html Mike Lee's review] of a previous release, with [http://www.flickr.com/photos/curiouslee/sets/72157639278723275/ photographs] and [http://youtu.be/i0fyv95znv8 videos]

* [http://dev.laptop.org/report/49 bug tracking]
* [http://dev.laptop.org/git/olpc-kernel/log/?h=arm-3.5-android Kernel patches for the XO-4 to enable Android].
* [http://dev.laptop.org/git/olpc-kernel/log/?h=arm-3.5-android Kernel patches for the XO-4 to enable Android].

Latest revision as of 20:58, 29 November 2017

Android is an operating system based on the Linux kernel, and designed primarily for touchscreen mobile devices such as smartphones and tablet computers.

Android 4.3.1 (Jelly Bean) for XO-4

OLPC is preparing for a customer an Android, Sugar and Gnome dual-boot system for the XO-4 Touch. This will allow children to switch between the operating systems by rebooting, so that educational content can be delivered in either format.

The build is based on our arm-3.5 kernel, with changes which may be found in the arm-3.5-android branch of our olpc-kernel repository.

Do not rely on this build for any critical data, in particular do not associate your regular Google account with this build if your Google account is critical to you.

Installing

  • make a backup of anything you want to keep on the XO-4, because it will be erased by this test
  • download the .zd file according to whether your firmware supports symmetrical multi-processing ("SMP"). Firmware versions named as q7c## (where ## is two digits) support SMP, while all earlier versions do not.
if your firmware supports SMP (ver ≥ q7c00) if your firmware does NOT support SMP (ver < q7c00)
  • save the smp.zd file to a USB drive
  • at the ok prompt, type this:
fs-update u:\smp.zd
fs-update u:\32014a4.zd
(limitation: SMP version is not dual-booting with Sugar)
  • when the installation completes, type this:
boot

Booting

  • hold no keys to boot Linux, as usual,
  • hold the O game key to boot Android,
  • hold the rocker down key to bring up the boot menu, then select either Linux or Android,

Note: the choice made at the menu is not saved. Previous builds did save the choice. This was removed because the saved state is undiscoverable, so there would have been forced power downs during boot because the child didn't remember what state the system was in, either because they forgot or the laptop was used by someone else.

Keyboard mapping

  • rotate key, shows recent apps,

Keymap1.jpg

  • O game key, volume up,
  • X game key, volume down,
  • Square game key, back,
  • Tick game key, enter,

Keymap2.jpg

  • f5, search,
  • esc, back,
  • esc+alt, home,
  • esc+ctrl, menu,

Note: keyboard layout can be switched among different OLPC keyboard layouts;

  • Android support following OLPC keyboard layouts:

English (US international); Spanish (Latin America);

Known problems

  • key events from a paired bluetooth keyboard are ignored, <trac>12784</trac>,
  • not implemented; dual core SMP <trac>12297</trac>, and ambient light sensor,
  • does not coexist with olpc-update, it fails because /bootpart/boot/alt is present, but if this is removed and the update applied, the Android kernel and ramdisk will have to be reinstated manually,
    • status: wont fix, can add a Android kernel and ramdisk in olpc-os-builder if coexistence is required,
  • when used with the 8686 wireless module, the bluetooth function is listed in settings, can be turned on, but turns itself off, <trac>12796</trac>,
    • status: won't fix, the module is no longer available.
  • sometimes the first boot dialog hangs when the start button is pressed, <trac>12797</trac>,
    • status: won't fix, not in our control.

See our trac milestone 13.2.0-android report of problems to be fixed.

Test cases

  • boot,
  • use power button for sleep and wake,
  • use of e-book switch (close lid) for sleep,
  • use of headphones to play music from USB drive in MP3 format,
  • use of bluetooth to pair a headset,
  • associate with a Raspberry Pi providing Khan Academy content KA-Pi, access via Browser, play video, fullscreen, play to end,

Subpages

See Also