Page MenuHomeSolus

Improve support of Android Development on Solus
Closed, ResolvedPublic

Assigned To
Authored By
joebonrichie
Nov 4 2017, 12:03 PM
Referenced Files
None
Tokens
"Like" token, awarded by tuxayo."Yellow Medal" token, awarded by Snuggle."Piece of Eight" token, awarded by sborer."Like" token, awarded by ViperXvenom8888."Love" token, awarded by baimafeima."Love" token, awarded by aszrul."Love" token, awarded by der_eismann."Cup of Joe" token, awarded by Unknown Object (User)."Like" token, awarded by selfus."Like" token, awarded by Botanium."Love" token, awarded by Timalex.

Description

Goals
We want to be able to allow developers to build AOSP and forks such as LineageOS on Solus.
We also want regular folk to be able to use tools like adb and fastboot easily, to debug or flash their device without the need for fiddling with usbid's and needed the use of sudo.

Requirements

  1. Land missing dependencies
  2. ncurses - provide libtinfo.so symlink
  3. schedtool - ancient but required
  4. repo - non-essential, but it will reduce the complexity of the setup and simplify documentation.

Building:

  • LineageOS
  • AOSP
  1. Move android-tools from third party into core repository
  2. Find a maintainable and sane method to build android_platform_system_core
  3. Provide a comprehensive udev rules list so adb and fastboot work out of the box for most devices.
  1. Provide documentation on how to build AOSP
  2. Compile a list of needed build dependencies for a base Solus install which includes the use of system.devel and any others.
  3. Get the article in the help centre.

Event Timeline

joebonrichie changed the task status from Open to In Progress.Nov 4 2017, 12:03 PM
joebonrichie claimed this task.
joebonrichie triaged this task as Unbreak Now! priority.
joebonrichie created this task.
Unknown Object (User) awarded a token.Nov 5 2017, 2:40 AM

We are a team of 5 and we all use Solus for Android Development full-time. Let me know if I can help with testing or debugging.

@Botanium what sort of android development do you do? App development, building custom roms, etc...?

Is there anything missing from Solus which can help you and your team work better? Missing packages I haven't mentioned, anything from the platform-sdk tools apart from adb and fastboot?

Let me know!

Could T3832 also be relevant? I think some recoveries and ROMs already support f2fs.

@joebonrichie We are doing app development. We just started a while ago. We have faced many issues but we are finding work around. I find the required apps and make package requests for them.
Some of the issues we are facing are:

    • the limited directory size of /tmp . We have to increase the /tmp size through /etc/fstab. I think this is not related to Android Studio but it is still bothering us when we are trying to create AVD and download the images.
  • We are facing some issues with the AVD and libstdc++.so.6. We are fixing these with this link
  • Some times the emulator freezes the system and it is very slow. We are forced to use Android device for testing.

@Botanium I'm doing android app development on Solus, everything works just perfect.

@niihelium I will do a clean installation and observe all the issues and get back to you guys.
Can I know how many GB of RAM do you have? and what is the /tmp size on your machine?

Is /tmp just not a regular folder that can grow as needed?

@tristan957 this is what I assumed. In fact I reformatted my machine and after installing Android Studio, I faced same issue when I created AVD.

systemd creates /tmp in a tmpfs meaning a ramdrive -> the size depends on the quantity of RAM your computer has.

You can disabled this and define your /tmp in /etc/fstab

I got 8GB on my computer and I have to add a line with 10GB for /tmp. Then only I could install the system images for Android. I wish we didn't have to make this change to /etc/fstab.

You can try systemctl mask tmp.mount

@kyrios123 I just tried that command. Thanks a lot for helping.

JoshStrobl lowered the priority of this task from Unbreak Now! to High.Nov 25 2017, 3:03 AM

@kyrios123 I just tried that command. Thanks a lot for helping.

Just a quick idea : perhaps a good alternative would be to make a patch to use /var/tmp instead to /tmp

Unknown Object (User) added a subscriber: Unknown Object (User).Dec 5 2017, 2:38 PM

Would be great to have udev rules work out of the box for OnePlus and Samsung devices. As I unfortunately also have a Xiaomi device would it be possible to include this note from https://github.com/M0Rf30/android-udev-rules#installation
Some devices (particularly MediaTek and Xiaomi) additionally require an entry in $HOME/.android/adb_usb.ini

In reference to T150: If android-tools are moved to the repository, would adb and fastboot stay bundled together under the android-tools name or be separated?

Hello

I noticed "Compile a list of needed build dependencies for a base Solus install which includes the use of system.devel and any others." is checked. I just wanted to ask, where is the list of needed build dependencies?

Thanks

@ViperXvenom8888 You can find the build dependencies in the help centre, let me know if any are missing https://solus-project.com/articles/software/building-android/en/

@baimafeima Yeah i think I'll call it android-tools still but I may make use of patterns to provide android-tools-adb and android-tools-fastboot the utilities are very small though so I don't mind bundling them together too much.

Also yeah there is plenty of places to find a comprehensive udev rule list so it shouldn't be too much of a problem. The biggest problem is building android-tools separately from the rest of AOSP, debian for example provides it's own Makefiles to build it.

@joebonrichie I think a distinction between android-tools-adb and android-tools-fastboot solves this quite neatly as the "bundled use case" remains clear but would still allow for separate installation and hence more control over the programme.

I really want to start my Development on Solus. I am not sure the state of Android tools on Solus. Last time I checked I had lots of issues starting with emulator and loading time.

I'm building Android_x86_64 as we speak and it seems that Mako package is needed as a dependency, I'm going to go through what i had to install after the build is done. Once the list is put together can we update the article for the list of prerequisites for building Android on Solus OS? do these dependencies hold true for other versions of android? The only repo i have on my rig is x86 to test against.

Other prerequisites,
mako mtools syslinux libstdc++-32bit

Unknown Object (User) removed a subscriber: Unknown Object (User).Jan 28 2019, 1:33 AM

@EvolutionMod i think those x86 specific, thanks for the help. I'll update the documentation.

joebonrichie lowered the priority of this task from High to Low.Jul 12 2019, 2:03 PM
joebonrichie updated the task description. (Show Details)

@joebonrichie:

Where are we on this from your perspective? What's the logical next step?

joebonrichie updated the task description. (Show Details)

Listing as resolved for now. Things are more or less in pretty good shape. I would open a new issue if there is still any problems.