What is Shashlik?

What is Shashlik

The goal of Shashlik is to provide a way to run Android applications on a standard Linux desktop as easily and simply as possible.

Under the hood

The easiest way to run an Android app correctly is to simply run Android. It’s a linux base that we can nest inside our session. OpenGL and graphics are all rendered on the host ensuring fast performance.

Shashlik provides an incredibly stripped down Android base which boots directly into the loaded app, but with a running activity manager and daemons so that intents still work correctly.

Building

Prerequisites

First download and install “repo”. A tool that makes it easier to work with multiple git repositories at once.

* Files… qemu has virtfs, android also has Fuse. Lots of options. We can also go with; Fake SD card, a fileProvider intent, or something else…dunno.

* Tidy up packaging. Maybe split manifests for Client and Host sides? Then packagers can build one easily, and I can fetch host isos easily.

Longer Future

We only need the VM because we need a kernel with binder.

If we can rewrite libbinder in userspace (it’s just a socket…how hard can it be?) then we can move the Shashlik world into simly being a container.

Graphics and devices can still work the same way proxying openGL through a socket between client and env base.

Contributing

Removing a module

The main thing we’re doing in Shashlik at the moment is stripping Android down.

There are 3 ways to remove a module:

Remove it from the manifest. If possible do this, as it saves downloading and parsing the makefile

add LOCAL_MODULE_OVERRIDES into a different module. shashlikd does this to replace systemui for example

Remove it from the PRODUCT_PACKAGES list in the shashlik product in build.

Ideally we want our delta with Android to be as small as possible with regards to packages and frameworks.

Some modules are subjective; For example the Camera app seems like a useless thing to include.
However some apps (Dulux paint app for example) will use a camera intent to get a photo; that requires the app running.

Merging changes

Open a pull request, standard github procedure.

RaviChandarana

Is there any chance we could see some screenshots? This seems like an excellent project!

leinir

Screenshots will be forthcoming! For now, have a gander at the presentation video from Akademy over on the News page Thank you very much for the kind words!

http://ryeingoddard.com Goddard

Awesome project…keep up the good work.

Neon Samurai

Really looking forward to this. Will there be a port for the ubuntu phone, to run apps from the google play store on it?

Will be the performances the same between Android device and app on Ubuntu Touch? (I hope at least, usable…)

Alex Elsayed

Any chance of these instructions getting corrected to actually work? Up to the envsetup.sh step it seems to go just fine, but there’s just a cascade of errors if you try to actually build:

– There’s no bootstrap.sh, so soong complains
– If you copy the one from soong (to the toplevel), it yells about build/soong not being there
– If you clone that into place, it demands build/blueprint
– If you satisfy that, it yells about not having go prebuilts
– If you grab those, it fails due to needing ninja prebuilts
– If you do that, it complains about missing Android.bp
– If you copy that from build/soong to the toplevel, it starts building…

Same issue here. Luckily the .deb package resolves the dependencies fine here. There are only a few to worry about, some 32 bit packages. If interested, just run ‘ar -x package.deb’ on the Debian package. Untar the control.tar.gz file to check it out. Maybe at some point I’ll try this again an a Digitial Ocean droplet, but the download size is massive (obviously). It’s a shame that he doesn’t provide the debian file / archive anywhere. I don’t expect the dev to upload that massive orig.tar.gz, but at least the debian tarball would be nice to see how it’s built.

Alex Elsayed

The problem isn’t with (system) dependencies – it’s that the Android buildsystem has changed significantly since whatever version these docs were written against, they’ve updated the repositories at least partially to deal with it, and they’ve completely failed to update the docs.

So regardless of whether the .deb package resolves the dependencies, the actual _code_ does not build.

In addition, I don’t think the debs were necessarily even built against the source that’s on github – I’m not finding any tags that even roughly correspond to the debs.

Michael DeGuzis

Which one of the repositories contains the 9.3 version tag (the latest I saw in the static deb repo)? If I start building this natively on Debian/SteamOS for my SteamOS-Tools project, I want to be able to watch the repo, or source the latest version tag / release. Is this possible?

flutterbrony

Awesome !
Hope you still working on it ^^
Did the sensors working with it ? (I only test on my desktop computer, but I’ll try on my Asus T100 ^^ If I can use it well, I’ll remove the dual boot with Android and Manjaro on it and only use Manjaro with sashlik on it ! ^^)

name1234

You really force users of your website to use smooth scroll? What the hell is wrong with you?

geek42

the android repo is too huge

Bodor Csaba

so the repo is 26.6 Gigabytes. And the compilation fails instantly with the message “make: *** No rule to make target ‘prebuilts/build-tools/linux-x86/bin/ckati’, needed by ‘out/build-aosp_arm.ninja’. Stop.”

In this stage, you should start this page with something like “this is our repo, but it does not compile, don’t waste your time and bandwidth”.

It would be nice to see a fedora rpm release.

alysdexia

It wouldn’t be nescient; you’d be.

Bodor Csaba

wow you answer after 7 months to a constructive comment, and the answer is not even making sense

Bryan vine

Trying to compile on Raspberry Pi 3 now…. probably won’t work.

MJ Skowronek

So is this project still alive? I don’t see any progress or formal announcements since it’s initial launch. I’m very interested in seeing this project continue, because I use Linux as my primary desktop OS and it would be great if I could simply run Android Apps on my Linux tablet rather than having to dual boot to Android or run an emulator. For the record, I haven’t gotten Shashlik to work, nor have I had any success with ARChon on Chrome. I have had success with booting AndroidX86 and running GenyMotion through VirtualBox. With regard to Shashlik, it installs, it installs apps (FlappyBird was installed), but fails to load the application upon launch (though it does show the back, home, and tasks buttons. I’m running Xubuntu Xenial (16.04LTS). Thanks! (crossing fingers that the developers are still working on this)

alysdexia

its, dolt

https://eliasojala.me Elias Ojala

Genymotion is available for Linux.

Rogi Blatus

The very start of the page might mention 26.5GB d/l! Important stuff.

Hey, great idea for a project. I’m sure I can’t conceive of how involved this is / was, and hope that it is still going. I was not prepared for the large download, and the comments about not being able to start apps, below, are not encouraging. The step-by-step guide to installation seemed spot on though

I do hope this project continues and succeeds, best of luck, I hope to look back soon. I’ve come up with lots of ideas about how useful this sort of native app environment could become.

/..

http://kokizzu.com Kiswono Prayogo

thank you for mentioning the size *__*)

Ole Johansen

WE WANT MORE!!!

RDzeko

I’ve installed shashlik on my puppy linux, i’ve done a lot of change to it sources and even change the python script directly, but still no progress, the apk installed but unfortunately it can’t run, when i clicked the app nothing happened, i’ve done the same in bash typed the command and i’ve fail, did someone done the same, and if there’s it would be nice if you give me some sources, modules, libs, or anything to make this happen thanks

HeidiHoNeighbor

Has this actually worked on anyone’s Linux box, ever?

Mohamed Bellalouna

Anyone succeeded in installing on openssue leap 42.2 ?

Jamie Norvell

I F@CK’n hate ubuntu !!!
everything about this system is completely retarded totally inefficient & will NOT SUFFICE !!!
please tell me how to rid myself of this hideous program ?

Honestly I cannot stand another moment of such useless software its TORTURE !
Seriously though a slab of slate & a piece of chalk is way better SOS PLEASE HELP !!!

Galambos Máté

sudo dd if=/dev/zero of=/dev/sda bs=16M

jheliskh

Maximum Trolling

Galambos Máté

Well, this command does get rid of his Ubuntu installation, as he asked. And, if he’s got a piece of chalk, he’s all set.

infoquest media

i like how linux founders want linux to be used, but they dont want to see any
paid proprietairy software on it ?
does that make any sense

Spariant4

Do text-input apps function under shashlik, like the various android onscreen keyboards? Can inputs and gestures be recieved by the host system?

munchausen

I’m interested in how this works under the hood. In particular, for the situation where the host and guest architectures are the same, could you use QEMU KVM and Virgil for 3D? Would this make things simpler?

Rasta Eyes

Hi, I have a problem, shashlik don’t open any apk, the bottom buttons typicals of android see it, but the apk don’t charge, plz SOS thx

Ben Hur Nascimento

You guys should create a shellscript for instalation…

David Gunter

repo init [blah-blah-blah-whatever] –depth=1

All downloads using repo tend to be huge. Trim the fat with that last part, you don’t need the whole git history.