{
    "mode": "info",
    "parameter": "ORG.FREEDESKTOP.PORTABLE1",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/info/ORG.FREEDESKTOP.PORTABLE1/json",
    "generated": "2026-07-07T04:35:28Z",
    "sections": {
        "NAME": {
            "content": "org.freedesktop.portable1 - The D-Bus interface of systemd-portabled\n",
            "subsections": []
        },
        "INTRODUCTION": {
            "content": "systemd-portabled.service(8) is a system service that may be used to\nattach, detach and inspect portable services. This page describes the\nD-Bus interface.\n",
            "subsections": []
        },
        "THE MANAGER OBJECT": {
            "content": "The service exposes the following interfaces on the Manager object on\nthe bus:\n\nnode /org/freedesktop/portable1 {\ninterface org.freedesktop.portable1.Manager {\nmethods:\nGetImage(in  s image,\nout o object);\nListImages(out a(ssbtttso) images);\nGetImageOSRelease(in  s image,\nout a{ss} osrelease);\nGetImageMetadata(in  s image,\nin  as matches,\nout s image,\nout ay osrelease,\nout a{say} units);\nGetImageMetadataWithExtensions(in  s image,\nin  as extensions,\nin  as matches,\nin  t flags,\nout s image,\nout ay osrelease,\nout a{say} extensions,\nout a{say} units);\nGetImageState(in  s image,\nout s state);\nAttachImage(in  s image,\nin  as matches,\nin  s profile,\nin  b runtime,\nin  s copymode,\nout a(sss) changes);\nAttachImageWithExtensions(in  s image,\nin  as extensions,\nin  as matches,\nin  s profile,\nin  s copymode,\nin  t flags,\nout a(sss) changes);\nDetachImage(in  s image,\nin  b runtime,\nout a(sss) changes);\nDetachImageWithExtensions(in  s image,\nin  as extensions,\nin  t flags,\nout a(sss) changes);\nReattachImage(in  s image,\nin  as matches,\nin  s profile,\nin  b runtime,\nin  s copymode,\nout a(sss) changesremoved,\nout a(sss) changesupdated);\nReattachImageWithExtensions(in  s image,\nin  as extensions,\nin  as matches,\nin  s profile,\nin  s copymode,\nin  t flags,\nout a(sss) changesremoved,\nout a(sss) changesupdated);\nRemoveImage(in  s image);\nMarkImageReadOnly(in  s image,\nin  b readonly);\nSetImageLimit(in  s image,\nin  t limit);\nSetPoolLimit(in  t limit);\nproperties:\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly s PoolPath = '...';\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t PoolUsage = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t PoolLimit = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly as Profiles = ['...', ...];\n};\ninterface org.freedesktop.DBus.Peer { ... };\ninterface org.freedesktop.DBus.Introspectable { ... };\ninterface org.freedesktop.DBus.Properties { ... };\n};\n\nMethods\nGetImage() may be used to get the image object path of the image with\nthe specified name.\n\nListImages() returns an array of all currently known images. The\nstructures in the array consist of the following fields: image name,\ntype, read-only flag, creation time, modification time, current disk\nspace, usage and image object path.\n\nGetImageOSRelease() retrieves the OS release information of an image.\nThis method returns an array of key value pairs read from the os-\nrelease(5) file in the image and is useful to identify the operating\nsystem used in a portable service.\n\nGetImageMetadata() retrieves metadata associated with an image. This\nmethod returns the image name, the image's os-release(5) content in the\nform of a (streamable) array of bytes, and a list of portable units\ncontained in the image, in the form of a string (unit name) and an\narray of bytes with the content.\n\nGetImageMetadataWithExtensions() retrieves metadata associated with an\nimage. This method is a superset of GetImageMetadata() with the\naddition of a list of extensions as input parameter, which were\noverlaid on top of the main image via AttachImageWithExtensions(). The\npath of each extension and an array of bytes with the content of the\nrespective extension-release file are returned, one such structure for\neach extension named in the input arguments.\n\nGetImageState() retrieves the image state as one of the following\nstrings:\n\no   detached\n\no   attached\n\no   attached-runtime\n\no   enabled\n\no   enabled-runtime\n\no   running\n\no   running-runtime\n\nAttachImage() attaches a portable image to the system. This method\ntakes an image path or name, a list of strings that will be used to\nsearch for unit files inside the image (partial or complete matches), a\nstring indicating which portable profile to use for the image (see\nProfiles property for a list of available profiles), a boolean\nindicating whether to attach the image only for the current boot\nsession, and a string representing the preferred copy mode (whether to\ncopy the image or to just symlink it) with the following possible\nvalues:\n\no   (null)\n\no   copy\n\no   symlink\n\nThis method returns the list of changes applied to the system (for\nexample, which unit was added and is now available as a system\nservice). Each change is represented as a triplet of strings: the type\nof change applied, the path on which it was applied, and the source (if\nany). The type of change applied will be one of the following possible\nvalues:\n\no   copy\n\no   symlink\n\no   write\n\no   mkdir\n\nNote that an image cannot be attached if a unit that it contains is\nalready present on the system.\n\nAttachImageWithExtensions() attaches a portable image to the system.\nThis method is a superset of AttachImage() with the addition of a list\nof extensions as input parameter, which will be overlaid on top of the\nmain image. When this method is used, detaching must be done by passing\nthe same arguments via the DetachImageWithExtensions() method. For more\ndetails on this functionality, see the MountImages= entry on\nsystemd.exec(5) and systemd-sysext(8). The flag parameter is currently\nunused and reserved for future purposes.\n\nDetachImage() detaches a portable image from the system. This method\ntakes an image path or name, and a boolean indicating whether the image\nto detach was attached only for the current boot session or\npersistently. This method returns the list of changes applied to the\nsystem (for example, which unit was removed and is no longer available\nas a system service). Each change is represented as a triplet of\nstrings: the type of change applied, the path on which it was applied,\nand the source (if any). The type of change applied will be one of the\nfollowing possible values:\n\no   unlink\n\nNote that an image cannot be detached if a unit that it contains is\nrunning.\n\nDetachImageWithExtensions() detaches a portable image from the system.\nThis method is a superset of DetachImage() with the addition of a list\nof extensions as input parameter, which were overlaid on top of the\nmain image via AttachImageWithExtensions(). The flag parameter is\ncurrently unused and reserved for future purposes.\n\nReattachImage() combines the effects of the AttachImage() method and\nthe DetachImage() method. The difference is that it is allowed to\nreattach an image while one or more of its units are running. The\nreattach operation will fail if no matching image is attached. The\ninput parameters match the AttachImage() method, and the return\nparameters are the combination of the return parameters of the\nDetachImage() method (first array, units that were removed) and the\nAttachImage() method (second array, units that were updated or added).\n\nReattachImageWithExtensions() reattaches a portable image to the\nsystem. This method is a superset of ReattachImage() with the addition\nof a list of extensions as input parameter, which will be overlaid on\ntop of the main image. For more details on this functionality, see the\nMountImages= entry on systemd.exec(5) and systemd-sysext(8). The flag\nparameter is currently unused and reserved for future purposes\n\nRemoveImage() removes the image with the specified name.\n\nMarkImageReadOnly() toggles the read-only flag of an image.\n\nSetPoolLimit() sets an overall quota limit on the pool of images.\n\nSetImageLimit() sets a per-image quota limit.\n\nThe AttachImageWithExtensions(), DetachImageWithExtensions() and\nReattachImageWithExtensions() methods take in options as flags instead\nof booleans to allow for extendability, defined as follows:\n\n#define SDSYSTEMDPORTABLERUNTIME  (UINT64C(1) << 0)\n\nProperties\nPoolPath specifies the file system path where images are written to.\n\nPoolUsage specifies the current usage size of the image pool in bytes.\n\nPoolLimit specifies the size limit of the image pool in bytes.\n\nProfiles specifies the available runtime profiles for portable\nservices.\n",
            "subsections": []
        },
        "THE IMAGE OBJECT": {
            "content": "The service exposes the following interfaces on the Image object on the\nbus:\n\nnode /org/freedesktop/portable1 {\ninterface org.freedesktop.portable1.Image {\nmethods:\nGetOSRelease(out a{ss} osrelease);\nGetMetadata(in  as matches,\nout s image,\nout ay osrelease,\nout a{say} units);\nGetMetadataWithExtensions(in  as extensions,\nin  as matches,\nin  t flags,\nout s image,\nout ay osrelease,\nout a{say} extensions,\nout a{say} units);\nGetState(out s state);\nAttach(in  as matches,\nin  s profile,\nin  b runtime,\nin  s copymode,\nout a(sss) changes);\nAttachWithExtensions(in  as extensions,\nin  as matches,\nin  s profile,\nin  s copymode,\nin  t flags,\nout a(sss) changes);\nDetach(in  b runtime,\nout a(sss) changes);\nDetachWithExtensions(in  as extensions,\nin  t flags,\nout a(sss) changes);\nReattach(in  as matches,\nin  s profile,\nin  b runtime,\nin  s copymode,\nout a(sss) changesremoved,\nout a(sss) changesupdated);\nReattacheWithExtensions(in  as extensions,\nin  as matches,\nin  s profile,\nin  s copymode,\nin  t flags,\nout a(sss) changesremoved,\nout a(sss) changesupdated);\nRemove();\nMarkReadOnly(in  b readonly);\nSetLimit(in  t limit);\nproperties:\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly s Name = '...';\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly s Path = '...';\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly s Type = '...';\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly b ReadOnly = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t CreationTimestamp = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t ModificationTimestamp = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t Usage = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t Limit = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t UsageExclusive = ...;\n@org.freedesktop.DBus.Property.EmitsChangedSignal(\"false\")\nreadonly t LimitExclusive = ...;\n};\ninterface org.freedesktop.DBus.Peer { ... };\ninterface org.freedesktop.DBus.Introspectable { ... };\ninterface org.freedesktop.DBus.Properties { ... };\n};\n\nMethods\nThe following methods implement the same operation as the respective\nmethods on the Manager object (see above). However, these methods\noperate on the image object and hence does not take an image name\nparameter. Invoking the methods directly on the Manager object has the\nadvantage of not requiring a GetImage() call to get the image object\nfor a specific image name. Calling the methods on the Manager object is\nhence a round trip optimization. List of methods:\n\no   GetOSRelease()\n\no   GetMetadata()\n\no   GetMetadataWithExtensions()\n\no   GetState()\n\no   Attach()\n\no   AttachWithExtensions()\n\no   Detach()\n\no   DetachWithExtensions()\n\no   Reattach()\n\no   ReattacheWithExtensions()\n\no   Remove()\n\no   MarkReadOnly()\n\no   SetLimit()\n\nProperties\nName specifies the image name.\n\nPath specifies the file system path where image is stored.\n\nType specifies the image type.\n\nReadOnly specifies whether the image is read-only.\n\nCreationTimestamp specifies the image creation timestamp.\n\nModificationTimestamp specifies the image modification timestamp.\n\nUsage specifies the image disk usage.\n\nLimit specifies the image disk usage limit.\n\nUsageExclusive specifies the image disk usage (exclusive).\n\nLimitExclusive specifies the image disk usage limit (exclusive).\n",
            "subsections": []
        },
        "VERSIONING": {
            "content": "These D-Bus interfaces follow the usual interface versioning\nguidelines[1].\n",
            "subsections": []
        },
        "NOTES": {
            "content": "1. the usual interface versioning guidelines\nhttp://0pointer.de/blog/projects/versioning-dbus.html\n\nsystemd 249                                       ORG.FREEDESKTOP.PORTABLE1(5)",
            "subsections": []
        }
    },
    "summary": "org.freedesktop.portable1 - The D-Bus interface of systemd-portabled",
    "flags": [],
    "examples": [],
    "see_also": []
}