code: func InstallDefault(name string) error {
  	p := profileData{
  		Name: name,
  	}
  
  	// Figure out the daemon profile.
  	currentProfile, err := ioutil.ReadFile("/proc/self/attr/current")
  	if err != nil {
  		// If we couldn't get the daemon profile, assume we are running
  		// unconfined which is generally the default.
  		currentProfile = nil
  	}
  	daemonProfile := string(currentProfile)
  	// Normally profiles are suffixed by " (enforcing)" or similar. AppArmor
  	// profiles cannot contain spaces so this doesn't restrict daemon profile
  	// names.
  	if parts := strings.SplitN(daemonProfile, " ", 2); len(parts) >= 1 {
  		daemonProfile = parts[0]
  	}
  	if daemonProfile == "" {
  		daemonProfile = "unconfined"
  	}
  	p.DaemonProfile = daemonProfile
  
  	// Install to a temporary directory.
  	f, err := ioutil.TempFile("", name)
  	if err != nil {
  		return err
  	}
  	profilePath := f.Name()
  
  	defer f.Close()
  	defer os.Remove(profilePath)
  
  	if err := p.generateDefault(f); err != nil {
  		return err
  	}
  
  	return aaparser.LoadProfile(profilePath)
  }
docs: // InstallDefault generates a default profile in a temp directory determined by
  // os.TempDir(), then loads the profile into the kernel using 'apparmor_parser'.