Create a new class which will hold persisted information about how an app was installed that cannot be modified, even by the installer of record or an app with INSTALL_PACKAGES permission. Add a first field to hold the package name of the app that initiated the install session. Plumb this into SessionParams, PackageInstallerSession, InstallParams, InstallArgs, PackageSettings, PackageProto, ActiveInstallSession etc. Various minor refactorings along the way. Bug: 134746019 Test: atest -p services/core/java/com/android/server/pm Change-Id: I96d9b5034bc98af8c63088df2341e6d4a1fb1b6e
Conventions for the protos in this directory:
-
As in the rest of Android, use 4 spaces to indent instead of 2.
-
For protos based on Java files, use the same package as the Java file. For example,
com.android.server.thinginstead ofcom.android.server.thing.proto. -
If the proto describes the top level output of dumpsys, it should contain
Dump. This makes it easy to understand that the proto is the dumpsys output of a certain service, not the data structure of that service, e.g.WindowManagerServiceDumpProtovsWindowManagerServiceProto.- Inner messages whose containing messages have the
Protosuffix do not need to have aProtosuffix. E.g:
- Inner messages whose containing messages have the
message FooProto {
message Bar {
...
}
}
vs
message FooProto {
message BarProto {
...
}
}
-
If the proto represents the structure of an object, it should have
Protoas its suffix. Please also include the full package path of the original object as a comment to the proto message. -
Include units in the field names. For example,
screen_time_msvsscreen_time, orfile_size_bytesorfile_size_mebibytesvsfile_size. -
Leave field numbers 50,000 - 100,000 reserved for OEMs.