diff --git a/services/binary/tidy/impl_test.go b/services/binary/tidy/impl_test.go
index 9fbd5c6..9a80966 100644
--- a/services/binary/tidy/impl_test.go
+++ b/services/binary/tidy/impl_test.go
@@ -163,6 +163,11 @@
 			application.Envelope{},
 			fmt.Errorf("no applications.Match(darwin-amd64)"),
 		},
+		// applications.Match(android-arm)
+		appd.MatchResult{
+			application.Envelope{},
+			fmt.Errorf("no applications.Match(android-arm)"),
+		},
 		// applications/applicationd.Match(linux-amd64)
 		appd.MatchResult{
 			application.Envelope{
@@ -191,6 +196,11 @@
 			},
 			nil,
 		},
+		// applications/applicationd.Match(android-arm)
+		appd.MatchResult{
+			application.Envelope{},
+			fmt.Errorf("no applications/applicationd.Match(android-arm)"),
+		},
 		// applications/applicationd/0.Match(linux-amd64)
 		appd.MatchResult{
 			application.Envelope{
@@ -219,6 +229,11 @@
 			},
 			nil,
 		},
+		// applications/applicationd/0.Match(android-arm)
+		appd.MatchResult{
+			application.Envelope{},
+			fmt.Errorf("no applications/applicationd/0.Match(android-arm)"),
+		},
 		// applications/binaryd.Match(linux-amd64)
 		appd.MatchResult{
 			application.Envelope{
@@ -253,6 +268,11 @@
 			},
 			nil,
 		},
+		// applications/binaryd.Match(android-arm)
+		appd.MatchResult{
+			application.Envelope{},
+			fmt.Errorf("no applications/binaryd.Match(android-arm)"),
+		},
 		// applications/binaryd/1.Match(linux-amd64)
 		appd.MatchResult{
 			application.Envelope{
@@ -287,6 +307,11 @@
 			},
 			nil,
 		},
+		// applications/binaryd/1.Match(android-arm)
+		appd.MatchResult{
+			application.Envelope{},
+			fmt.Errorf("no applications/binaryd/1.Match(android-arm)"),
+		},
 	)
 
 	if err := v23cmd.ParseAndRunForTest(cmdBinaryTidy, ctx, env, []string{applicationName, binaryName}); err != nil {
@@ -333,22 +358,27 @@
 		appd.MatchStimulus{Name: "Match", Suffix: "applications", Profiles: []string{"linux-386"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications", Profiles: []string{"linux-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications", Profiles: []string{"darwin-amd64"}},
+		appd.MatchStimulus{Name: "Match", Suffix: "applications", Profiles: []string{"android-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd", Profiles: []string{"linux-amd64"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd", Profiles: []string{"linux-386"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd", Profiles: []string{"linux-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd", Profiles: []string{"darwin-amd64"}},
+		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd", Profiles: []string{"android-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd/0", Profiles: []string{"linux-amd64"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd/0", Profiles: []string{"linux-386"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd/0", Profiles: []string{"linux-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd/0", Profiles: []string{"darwin-amd64"}},
+		appd.MatchStimulus{Name: "Match", Suffix: "applications/applicationd/0", Profiles: []string{"android-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd", Profiles: []string{"linux-amd64"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd", Profiles: []string{"linux-386"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd", Profiles: []string{"linux-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd", Profiles: []string{"darwin-amd64"}},
+		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd", Profiles: []string{"android-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd/1", Profiles: []string{"linux-amd64"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd/1", Profiles: []string{"linux-386"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd/1", Profiles: []string{"linux-arm"}},
 		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd/1", Profiles: []string{"darwin-amd64"}},
+		appd.MatchStimulus{Name: "Match", Suffix: "applications/binaryd/1", Profiles: []string{"android-arm"}},
 	}; !reflect.DeepEqual(expected, got) {
 		t.Errorf("apptape invalid call sequence. Got %#v, want %#v", got, expected)
 	}
diff --git a/services/device/deviced/internal/impl/device_service.go b/services/device/deviced/internal/impl/device_service.go
index 76a1a7f..6ee780b 100644
--- a/services/device/deviced/internal/impl/device_service.go
+++ b/services/device/deviced/internal/impl/device_service.go
@@ -416,7 +416,7 @@
 	}
 	stderrLog, stdoutLog := filepath.Join(logs, "STDERR"), filepath.Join(logs, "STDOUT")
 
-	output := "#!/bin/bash\n"
+	output := "#!" + ShellPath + "\n"
 	output += "if [ -z \"$DEVICE_MANAGER_DONT_REDIRECT_STDOUT_STDERR\" ]; then\n"
 	output += fmt.Sprintf("  TIMESTAMP=$(%s)\n", DateCommand)
 	output += fmt.Sprintf("  exec > %s-$TIMESTAMP 2> %s-$TIMESTAMP\n", stdoutLog, stderrLog)
diff --git a/services/device/deviced/internal/impl/helper_manager.go b/services/device/deviced/internal/impl/helper_manager.go
index 2d65694..4d635d2 100644
--- a/services/device/deviced/internal/impl/helper_manager.go
+++ b/services/device/deviced/internal/impl/helper_manager.go
@@ -26,16 +26,21 @@
 var suidHelper *suidHelperState
 
 func InitSuidHelper(ctx *context.T, helperPath string) {
-	if suidHelper != nil || helperPath == "" {
+	if suidHelper != nil {
 		return
 	}
+	if helperPath == "" {
+		ctx.Panicf("suidhelper path needs to be specified")
+	}
 
-	u, err := user.Current()
-	if err != nil {
-		ctx.Panicf("devicemanager has no current user: %v", err)
+	var userName string
+	if user, _ := user.Current(); user != nil && len(user.Username) > 0 {
+		userName = user.Username
+	} else {
+		userName = "anonymous"
 	}
 	suidHelper = &suidHelperState{
-		dmUser:     u.Username,
+		dmUser:     userName,
 		helperPath: helperPath,
 	}
 }
diff --git a/services/device/deviced/internal/impl/impl_test.go b/services/device/deviced/internal/impl/impl_test.go
index 81fdeba..b210344 100644
--- a/services/device/deviced/internal/impl/impl_test.go
+++ b/services/device/deviced/internal/impl/impl_test.go
@@ -53,7 +53,7 @@
 // of how device manager implementation sets up its updated versions.
 func generateDeviceManagerScript(t *testing.T, root string, args, env []string) string {
 	env = impl.VanadiumEnvironment(env)
-	output := "#!/bin/bash\n"
+	output := "#!" + impl.ShellPath + "\n"
 	output += strings.Join(config.QuoteEnv(env), " ") + " exec "
 	output += strings.Join(args, " ")
 	if err := os.MkdirAll(filepath.Join(root, "factory"), 0755); err != nil {
diff --git a/services/device/deviced/internal/impl/profile.go b/services/device/deviced/internal/impl/profile.go
index 9908666..5c978b1 100644
--- a/services/device/deviced/internal/impl/profile.go
+++ b/services/device/deviced/internal/impl/profile.go
@@ -40,6 +40,8 @@
 		result.Format = build.FormatElf
 	case build.OperatingSystemWindows:
 		result.Format = build.FormatPe
+	case build.OperatingSystemAndroid:
+		result.Format = build.FormatElf
 	default:
 		return nil, errors.New("Unsupported operating system: " + os.String())
 	}
@@ -91,6 +93,8 @@
 		// TODO(jsimsa): Implement.
 	case "windows":
 		// TODO(jsimsa): Implement.
+	case "android":
+		// TODO(caprita): Implement.
 	default:
 		return nil, errors.New("Unsupported operating system: " + runtime.GOOS)
 	}
diff --git a/services/device/deviced/internal/impl/shell_android.go b/services/device/deviced/internal/impl/shell_android.go
new file mode 100644
index 0000000..f45cf69
--- /dev/null
+++ b/services/device/deviced/internal/impl/shell_android.go
@@ -0,0 +1,10 @@
+// Copyright 2015 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package impl
+
+const (
+	ShellPath   = "/system/bin/sh"
+	DateCommand = "/system/bin/date +%s.$RANDOM"
+)
diff --git a/services/device/deviced/internal/impl/shell_darwin.go b/services/device/deviced/internal/impl/shell_darwin.go
index fc0d92a..e1b54a9 100644
--- a/services/device/deviced/internal/impl/shell_darwin.go
+++ b/services/device/deviced/internal/impl/shell_darwin.go
@@ -5,5 +5,6 @@
 package impl
 
 const (
+	ShellPath   = "/bin/bash"
 	DateCommand = "/bin/date +%s.$RANDOM"
 )
diff --git a/services/device/deviced/internal/impl/shell_linux.go b/services/device/deviced/internal/impl/shell_linux.go
index 8e02672..3b81a07 100644
--- a/services/device/deviced/internal/impl/shell_linux.go
+++ b/services/device/deviced/internal/impl/shell_linux.go
@@ -2,8 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build linux,!android
+
 package impl
 
 const (
+	ShellPath   = "/bin/bash"
 	DateCommand = "/bin/date +%s%N"
 )
diff --git a/services/device/deviced/internal/impl/utiltest/helpers.go b/services/device/deviced/internal/impl/utiltest/helpers.go
index b8e855e..d66576a 100644
--- a/services/device/deviced/internal/impl/utiltest/helpers.go
+++ b/services/device/deviced/internal/impl/utiltest/helpers.go
@@ -498,7 +498,7 @@
 // GenerateSuidHelperScript builds a script to execute the test target as
 // a suidhelper instance and returns the path to the script.
 func GenerateSuidHelperScript(t *testing.T, root string) string {
-	output := "#!/bin/bash\n"
+	output := "#!" + impl.ShellPath + "\n"
 	output += "V23_SUIDHELPER_TEST=1"
 	output += " "
 	output += "exec " + os.Args[0] + " -minuid=1 -test.run=TestSuidHelper \"$@\""
@@ -519,8 +519,8 @@
 // GenerateAgentScript creates a simple script that acts as the security agent
 // for tests.  It blackholes arguments meant for the agent.
 func GenerateAgentScript(t *testing.T, root string) string {
-	output := `
-#!/bin/bash
+	output := "#!" + impl.ShellPath + "\n" +
+		`
 ARGS=$*
 for ARG in ${ARGS[@]}; do
   if [[ ${ARG} = -- ]]; then
diff --git a/services/device/deviced/internal/installer/device_installer.go b/services/device/deviced/internal/installer/device_installer.go
index fbdc36b..282dc51 100644
--- a/services/device/deviced/internal/installer/device_installer.go
+++ b/services/device/deviced/internal/installer/device_installer.go
@@ -218,7 +218,7 @@
 	}
 	stdoutLog, stderrLog := filepath.Join(logs, "STDOUT"), filepath.Join(logs, "STDERR")
 	// TODO(caprita): Switch all our generated bash scripts to use templates.
-	output := "#!/bin/bash\n"
+	output := "#!" + impl.ShellPath + "\n"
 	output += "if [ -z \"$DEVICE_MANAGER_DONT_REDIRECT_STDOUT_STDERR\" ]; then\n"
 	output += fmt.Sprintf("  TIMESTAMP=$(%s)\n", impl.DateCommand)
 	output += fmt.Sprintf("  exec > %s-$TIMESTAMP 2> %s-$TIMESTAMP\n", stdoutLog, stderrLog)
diff --git a/services/device/internal/suid/args.go b/services/device/internal/suid/args.go
index d9ab2fb..8ba2eeb 100644
--- a/services/device/internal/suid/args.go
+++ b/services/device/internal/suid/args.go
@@ -166,34 +166,37 @@
 		return nil
 	}
 
-	username := *flagUsername
-	if username == "" {
-		return verror.New(errUserNameMissing, nil)
-	}
+	if *flagDryrun {
+		wp.uid, wp.gid = -1, -1
+	} else {
+		username := *flagUsername
+		if username == "" {
+			return verror.New(errUserNameMissing, nil)
+		}
 
-	usr, err := user.Lookup(username)
-	if err != nil {
-		return verror.New(errUnknownUser, nil, username)
-	}
+		usr, err := user.Lookup(username)
+		if err != nil {
+			return verror.New(errUnknownUser, nil, username)
+		}
 
-	uid, err := strconv.ParseInt(usr.Uid, 0, 32)
-	if err != nil {
-		return verror.New(errInvalidUID, nil, usr.Uid)
-	}
-	gid, err := strconv.ParseInt(usr.Gid, 0, 32)
-	if err != nil {
-		return verror.New(errInvalidGID, nil, usr.Gid)
-	}
-	warnMissingSuidPrivs(int(uid))
+		uid, err := strconv.ParseInt(usr.Uid, 0, 32)
+		if err != nil {
+			return verror.New(errInvalidUID, nil, usr.Uid)
+		}
+		gid, err := strconv.ParseInt(usr.Gid, 0, 32)
+		if err != nil {
+			return verror.New(errInvalidGID, nil, usr.Gid)
+		}
+		warnMissingSuidPrivs(int(uid))
 
-	// Uids less than 501 can be special so we forbid running as them.
-	if uid < *flagMinimumUid {
-		return verror.New(errUIDTooLow, nil,
-			uid, *flagMinimumUid)
+		// Uids less than 501 can be special so we forbid running as them.
+		if uid < *flagMinimumUid {
+			return verror.New(errUIDTooLow, nil,
+				uid, *flagMinimumUid)
+		}
+		wp.uid = int(uid)
+		wp.gid = int(gid)
 	}
-	wp.uid = int(uid)
-	wp.gid = int(gid)
-
 	wp.dryrun = *flagDryrun
 
 	// At this point, all flags allowed by --chown have been processed
diff --git a/services/device/internal/suid/args_test.go b/services/device/internal/suid/args_test.go
index d910b51..b7ae0a8 100644
--- a/services/device/internal/suid/args_test.go
+++ b/services/device/internal/suid/args_test.go
@@ -103,8 +103,8 @@
 			[]string{"A=B"},
 			"",
 			WorkParameters{
-				uid:       testUid,
-				gid:       testGid,
+				uid:       -1,
+				gid:       -1,
 				workspace: "",
 				agentsock: "",
 				logDir:    "",
@@ -167,8 +167,8 @@
 			[]string{"A=B"},
 			"",
 			WorkParameters{
-				uid:       testUid,
-				gid:       testGid,
+				uid:       -1,
+				gid:       -1,
 				workspace: "/hello",
 				agentsock: "/tmp/2981298123/s",
 				logDir:    "/logging",
diff --git a/services/internal/profiles/listprofiles.go b/services/internal/profiles/listprofiles.go
index 6542bbe..66b6eb5 100644
--- a/services/internal/profiles/listprofiles.go
+++ b/services/internal/profiles/listprofiles.go
@@ -56,6 +56,13 @@
 			Os:          build.OperatingSystemDarwin,
 			Format:      build.FormatMach,
 		},
+		{
+			Label:       "android-arm",
+			Description: "",
+			Arch:        build.ArchitectureArm,
+			Os:          build.OperatingSystemAndroid,
+			Format:      build.FormatElf,
+		},
 	}, nil
 
 	// TODO(jsimsa): This function assumes the existence of a profile
