Android: Difference between revisions

imported>Mickours
update for last stable
imported>MrVanDalo
a bit of restructoring and I add a link to my lineage os cloud build setup
Line 1: Line 1:
=== Connecting Android device ===
 
== adb setup ==
 
To enable <code>adb</code> in NixOS for unprivileged users
add these lines to your <code>configuration.nix</code>.
This is mandatory for all further interactions with your android device.
 
<syntaxhighlight lang=nix>
{
  programs.adb.enable = true;
  users.users.<your-user>.extraGroups = ["adbusers"];
}
</syntaxhighlight>
 
 
== Interaction with your Android device ==
 
=== adb shell on device ===
 
<syntaxhighlight lang=console>
<syntaxhighlight lang=console>
$ # For nixos < 19.03
$ # For nixos < 19.03
Line 8: Line 26:
</syntaxhighlight>
</syntaxhighlight>


Add these lines to your <code>configuration.nix</code> for enabling adb in NixOS for unprivileged users
<syntaxhighlight lang=nix>
{
  ...
  programs.adb.enable = true;
  users.users.<your-user>.extraGroups = ["adbusers"];
}
</syntaxhighlight>


=== Transfering files from/to an Android device ===
=== Transferring files from/to an Android device ===
 
There are two main methods for newer devices:
There are two main methods for newer devices:
* <code>adb push</code> and <code>adb pull</code>: see above.
* <code>adb push</code> and <code>adb pull</code>: see above.
* via [[MTP]], see [[MTP|the corresponding page]]
* via [[MTP]], see [[MTP|the corresponding page]]


=== Building Android apps using Nix ===
== Android Development ==


Some software (for example Tinc VPN) have Android client which can be built together with the NixOS version, in the same derivation, sharing the same configuration options.
=== Android Studio ===


...
To develop apps using [https://developer.android.com/studio/ Android Studio]


=== Android Studio on NixOS ===
<syntaxhighlight lang=console>
<syntaxhighlight lang=console>
$ nix-shell -p android-studio --run android-studio
$ nix-shell -p android-studio --run android-studio
Line 82: Line 92:
</syntaxhighlight>
</syntaxhighlight>


[https://nixos.org/nix-dev/2015-April/016881.html Source]
# [https://nixos.org/nix-dev/2015-April/016881.html more information on that snippet]
# [https://gist.github.com/Nadrieril/d006c0d9784ba7eff0b092796d78eb2a A shell.nix to build LineageOS]
# [https://github.com/ajs124/NixDroid NixDroid], building aosp roms (e.g. LineageOS) with nix. ( not very well documented and requires patches to nix )
# [https://github.com/mrVanDalo/LineagoaOS-build LineageOS build setup using terranix and hcloud], based on the [https://gist.github.com/Nadrieril/d006c0d9784ba7eff0b092796d78eb2a shell.nix to build LineageOS]. Useful if you are in a rush and don't have to much CPU power on your hand.


[https://gist.github.com/Nadrieril/d006c0d9784ba7eff0b092796d78eb2a More complete example with instructions, for LineageOS]
== Using the nixpkgs androidenv ==


There is also [https://github.com/ajs124/NixDroid NixDroid], to build Android completely with nix. It is however not very well documented and requires patches to nix, etc.
== Using the nixpkgs androidenv ==
User Sander van der Burg created two awesome blog posts as well as a number of test cases usable as examples on how to use the nixpkgs androidenv and the emulator provideded:
User Sander van der Burg created two awesome blog posts as well as a number of test cases usable as examples on how to use the nixpkgs androidenv and the emulator provideded:
# [https://sandervanderburg.blogspot.de/2012/11/building-android-applications-with-nix.html  Building Android applications with the Nix package manager ]
# [https://sandervanderburg.blogspot.de/2012/11/building-android-applications-with-nix.html  Building Android applications with the Nix package manager ]
# [https://sandervanderburg.blogspot.de/2014/02/reproducing-android-app-deployments-or.html  Reproducing Android app deployments (or playing Angry Birds on NixOS)]
# [https://sandervanderburg.blogspot.de/2014/02/reproducing-android-app-deployments-or.html  Reproducing Android app deployments (or playing Angry Birds on NixOS)]
# [https://github.com/svanderburg/nix-androidenvtests A set of androidenv test cases]
# [https://github.com/svanderburg/nix-androidenvtests A set of androidenv test cases]