From WebOS Internals
In order to provider 3G data services, the Palm Pre requires a set of about 60 to 100 parameters. This page describes the facilities used to store and tools used to modify these parameters.
In WebOS version 1, the carrier configuration is stored in an SQLite database called CarrierNetworkSettings.db. This file is stored in two places, in /usr/lib/luna/ and in /var/luna/data/. The page How to solve 3G data problems discusses these files in detail. The consist of two tables, called com_palm_data_carriernetworksettings_CarrierNetworkSettings and com_palm_data_carriernetworksettings_DataConnectionSettings. For each carrier, you need one CarrierNetworkSettings entry and multiple DataConnectionSettings entries, for mms, internet, wap, etc.
In WebOS version 2, the information is no longer stored in an SQLite database, but in a text file called /etc/carrierdb/carrierdb.json. This file can be edited directly on the Pre 2 (if the root filesystem is mounted read-write), changes take effect after a reboot.
The file contains a JSON string containing approximately 70 key-value pairs that directly relate to the fields of the CarrierNetworkSettings table in the WebOS 1 configuration. The key dataconnection is special, though: it is a hashed string about 1000 characters and probably contains the information that used to be present in the DataConnectionSettings table. Its format is not yet understood.
Adding carriers that are not supported by Palm to this database, the recommended way is to use the ADD_EXTRA_CARRIERS feature of Application:MetaDoctor.