diff --git a/android/config.go b/android/config.go
index a62e786..eb1e647 100644
--- a/android/config.go
+++ b/android/config.go
@@ -1462,18 +1462,18 @@
 }
 
 // AfdoProfile returns fully qualified path associated to the given module name
-func (c *deviceConfig) AfdoProfile(name string) (string, error) {
+func (c *deviceConfig) AfdoProfile(name string) (*string, error) {
 	for _, afdoProfile := range c.config.productVariables.AfdoProfiles {
 		split := strings.Split(afdoProfile, ":")
 		if len(split) != 3 {
-			return "", fmt.Errorf("AFDO_PROFILES has invalid value: %s. "+
+			return nil, fmt.Errorf("AFDO_PROFILES has invalid value: %s. "+
 				"The expected format is <module>:<fully-qualified-path-to-fdo_profile>", afdoProfile)
 		}
 		if split[0] == name {
-			return strings.Join([]string{split[1], split[2]}, ":"), nil
+			return proptools.StringPtr(strings.Join([]string{split[1], split[2]}, ":")), nil
 		}
 	}
-	return "", nil
+	return nil, nil
 }
 
 func (c *deviceConfig) VendorSepolicyDirs() []string {
