Add adb persistence
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -1,7 +1,26 @@
|
||||
{
|
||||
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" ];
|
||||
|
||||
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) {
|
Reference in New Issue
Block a user