Add adb persistence
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -1,5 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.adb.enable = true;
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
}
|
|
@@ -1,7 +1,26 @@
|
|||||||
{
|
{
|
||||||
username ? throw "username argument is required",
|
username ? throw "username argument is required",
|
||||||
}:
|
}:
|
||||||
{ ... }:
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
userConfig = config.users.users.${username};
|
||||||
|
hmConfig = config.home-manager.users.${username};
|
||||||
|
android-tools = pkgs.android-tools.overrideAttrs (oldAttrs: {
|
||||||
|
patches = oldAttrs.patches or [ ] ++ [ ./env-var-user-home.patch ];
|
||||||
|
});
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
services.udev.packages = with pkgs; [ android-udev-rules ];
|
||||||
|
environment.systemPackages = [ android-tools ];
|
||||||
|
services.gvfs.enable = true;
|
||||||
|
|
||||||
users.users.${username}.extraGroups = [ "adbusers" ];
|
users.users.${username}.extraGroups = [ "adbusers" ];
|
||||||
|
|
||||||
|
home-manager.users.${username}.home = {
|
||||||
|
sessionVariables.ANDROID_USER_HOME = "${hmConfig.xdg.dataHome}/android";
|
||||||
|
persistence."/persist${userConfig.home}".files = [
|
||||||
|
"${hmConfig.xdg.dataHome}/android/adbkey"
|
||||||
|
"${hmConfig.xdg.dataHome}/android/adbkey.pub"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,21 @@
|
|||||||
|
--- a/vendor/adb/adb_utils.cpp
|
||||||
|
+++ b/vendor/adb/adb_utils.cpp
|
||||||
|
@@ -308,8 +308,16 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string adb_get_android_dir_path() {
|
||||||
|
- std::string user_dir = adb_get_homedir_path();
|
||||||
|
- std::string android_dir = user_dir + OS_PATH_SEPARATOR + ".android";
|
||||||
|
+ const char* android_user_home = getenv("ANDROID_USER_HOME");
|
||||||
|
+ std::string android_dir;
|
||||||
|
+
|
||||||
|
+ if (android_user_home) {
|
||||||
|
+ android_dir = std::string(android_user_home);
|
||||||
|
+ } else {
|
||||||
|
+ std::string user_dir = adb_get_homedir_path();
|
||||||
|
+ android_dir = user_dir + OS_PATH_SEPARATOR + ".android";
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
struct stat buf;
|
||||||
|
if (stat(android_dir.c_str(), &buf) == -1) {
|
||||||
|
if (adb_mkdir(android_dir, 0750) == -1) {
|
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../common/system/configs/android
|
|
||||||
../common/system/configs/bluetooth
|
../common/system/configs/bluetooth
|
||||||
../common/system/configs/boot
|
../common/system/configs/boot
|
||||||
../common/system/configs/brightnessctl
|
../common/system/configs/brightnessctl
|
||||||
|
Reference in New Issue
Block a user